[jboss-svn-commits] JBL Code SVN: r16990 - in labs/jbosstm/workspace/adinn: XTSGF and 341 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 3 14:46:33 EST 2007


Author: adinn
Date: 2007-12-03 14:46:30 -0500 (Mon, 03 Dec 2007)
New Revision: 16990

Added:
   labs/jbosstm/workspace/adinn/XTSGF/
   labs/jbosstm/workspace/adinn/XTSGF/README.txt
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/lib/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdmin.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdminMBean.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/startup/
   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/task/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/Task.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskWorker.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/BodyHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HandlerRegistry.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HeaderHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorChain.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/MessageContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapBody.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFault.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFaultType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessage.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessageLogging.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapRegistry.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapServiceEndpointProvider.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/BaseXMLStreamWriter.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamReader.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamWriter.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/EmptyLocation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/NamespaceContextImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamReader.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamWriter.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/LoggingFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/SoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/policy/ClientPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/ActivatedObjectProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/BaseProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/Callback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/logging/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap11Details.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap12Details.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapBodyMessage.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapDetails.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapFaultMessage.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapMessageBase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapNotUnderstoodType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapParser.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapUtils.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyAttributeSupport.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentAnyAttributeSupport.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentSupport.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyElement.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementConsumer.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementContent.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/NamedElement.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ParsingSupport.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/TextElement.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/URI.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/TransportSoapClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClientInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpContentTypeFilter.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpServiceMultiplexorServlet.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpUtils.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownContentType.html
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownService.html
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/ClassLoaderHelper.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/Enumerated.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InsertionOrderSet.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InvalidEnumerationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/QNameHelper.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/StreamHelper.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/TransportTimer.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedQNameType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedURIType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/EndpointReferenceType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferenceParametersType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferencePropertiesType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/RelationshipType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ServiceNameType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/client/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/client/BaseWSAddrClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ActionHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/AddressingContextHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FaultToHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FromHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/MessageIDHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/RelationshipHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ReplyToHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ToHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/policy/AddressingPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/processor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/processor/BaseWSAddrResponseProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingElementContent.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedAnyType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedQNameType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedURIType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedUnsignedLongType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/EndpointReferenceType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/MetadataType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ProblemActionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ReferenceParametersType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/RelatesToType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/client/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/client/WSAddr2005Client.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ActionHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingContextHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingHeaderHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingInterceptorHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FaultToHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FromHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/HandlerAddressingContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/MessageIDHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/RelationshipHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ReplyToHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ToHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/policy/AddressingPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/processor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/processor/BaseWSAddr2005ResponseProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ws-addr.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifier.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/policy/ArjunaPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/AttributedUnsignedIntType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContextType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationRequesterClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationCoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationRequesterClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/ActivationRequesterSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CoordinationContextHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextResponseHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterResponseHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegistrationRequesterSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationCoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationRequesterPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/CoordinationContextPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationCoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationRequesterPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationRequesterInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationRequesterInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/AlreadyRegisteredException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapper.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidCreateParametersException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidProtocolException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidStateException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/NoActivityException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/Registrar.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapper.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageId.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_application.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/qa/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/qa/junit/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestContextFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestRegistrar.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestUtil.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceExceptionTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/EnduranceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceExceptionTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationRequesterCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationRequesterCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestSuite.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ThreadedEnduranceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/lib/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/logging/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCancelHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCloseHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCompleteHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCancelledHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantClosedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCompletedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantFaultedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationCoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationParticipantPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorInitialisation.java
   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/wsat/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEvents.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Outcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEvents.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/PrepareResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ReplayResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/State.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Vote.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorCommitHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorRollbackHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorAbortedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorCommittedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorAbortedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorCommittedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorPreparedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReadOnlyHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReplayHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantCommitHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantPrepareHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantRollbackHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionCoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionInitiatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/ParticipantPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEvents.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEvents.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionIdentifierType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEvents.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEvents.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/State.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StatusType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCancelledHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorClosedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompensatedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompletedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorExitHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorGetStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCancelHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCloseHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompensateHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompleteHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantExitedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantFaultedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantGetStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCancelledHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorClosedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompensatedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompletedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorExitHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorGetStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCancelHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCloseHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCompensateHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantExitedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantFaultedHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantGetStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantSoapFaultHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantStatusHandler.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionCoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionParticipantPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionCoordinatorPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionParticipantPolicy.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Aborted.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Cancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Durable2PCParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/FaultedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Participant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/PersistableParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Prepared.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/ReadOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Status.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/SystemException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/TransactionRolledBackException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/UnknownTransactionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Volatile2PCParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Vote.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/WrongStateException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngine.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngine.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/SystemCommunicationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStub.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/docs/Protocol.ppt
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_application.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/qa/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/qa/junit/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestAbortedVoteParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBAPMParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessActivityTerminator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionCompletionCoordinatorParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestPreparedVoteParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestReadOnlyVoteParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBAPMParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessActivityTerminator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionCompletionCoordinatorParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionBusinessActivityTerminator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionCompletionCoordinatorParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionBusinessActivityTerminator.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionCompletionCoordinatorParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUtil.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBAPMParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerCoordinatorTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerParticipantTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessActivityTerminatorServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionParticipantTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionCoordinatorTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionParticipantTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionCoordinatorTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionParticipantTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionInitiatorCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerCoordinatorCallback.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestSuite.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCCoordinatorTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCParticipantTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCServiceTestCase.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivity.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivityFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHandle.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHierarchy.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/HLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/Outcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/OutcomeManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/Environment.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/GlobalId.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/CompletionStatus.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Failure.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/FailureOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Success.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Unknown.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/Context.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/ContextManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContextFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/corba/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/corba/IIOPContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/soap/SOAPContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActiveChildException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActivityFailedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSError.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidActivityException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidHLSException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidParentException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidSecurityOptionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidTimeoutException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NestingNotAllowedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoActivityException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoPermissionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ProtocolViolationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemCommunicationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WSASException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WrongStateException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/logging/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Active.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completed.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completing.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Created.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/NoActivity.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Status.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Unknown.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/utils/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/utils/Configuration.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/ActivityManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/UserActivityImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHandleImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHierarchyImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityReaper.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/CompositeOutcomeImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/HLSManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperElement.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperThread.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/Initialiser.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/arjunacore/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/arjunacore/GlobalIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/DeploymentContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/corba/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/corba/IIOPContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/soap/SOAPContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/HLSWrapper.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/XMLUtils.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Context.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Hierarchy.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NestedActivity.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NullEnd.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Resume.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StartEnd.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StatusCheck.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Suspend.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Timeout.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoSOAPContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/FailureHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context1.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context2.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Service.java
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/config/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/config/wsas.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/WSAS.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/example.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/README
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/Context.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/
   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/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinatorFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/api/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/api/UserCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorId.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorXSD.java
   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/Qualifier.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/BegunFailedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/DuplicateParticipantException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/InvalidParticipantException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/NoCoordinatorException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolAlreadyRegisteredException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolNotRegisteredException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnexpectedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnknownProtocolImplementationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnsupportedQualifierException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/logging/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Coordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/CoordinatorManagerService.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Message.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Participant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/common/Priorities.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/AfterCompletion.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/BeforeCompletion.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/ForgetHeuristic.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedOnePhaseCommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedPrepare.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelOnePhaseCommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelPrepare.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/Vote.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteReadOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XACommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAEnd.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAForget.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAPrepare.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARecover.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARollback.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAStart.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAOutcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAPrepareOutcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XARecoverOutcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/status/XAStatus.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/CoordinatorManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/UserCoordinatorFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/CoordinatorManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/UserCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/CoordinationResult.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/TwoPhaseResult.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CompensateFailedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorCancelledException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorConfirmedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/hls/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/hls/SagasHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/outcomes/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/outcomes/CoordinationOutcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/Participant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/ParticipantWithComplete.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/CancelOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelled.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelling.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closed.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closing.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensated.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensating.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/CoordinatorManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/UserCoordinatorFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/CoordinatorManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/UserCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/CoordinationResult.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/TwoPhaseResult.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorCancelledException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorConfirmedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/DuplicateSynchronizationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicCancelException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicConfirmException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicHazardException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicMixedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/InvalidSynchronizationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantCancelledException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantConfirmedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/hls/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/hls/TwoPhaseHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/outcomes/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/outcomes/CoordinationOutcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Participant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Synchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/CancelOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelled.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelling.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirmed.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirming.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicHazard.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicMixed.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Prepared.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Preparing.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/Vote.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteReadOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/TransactionManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/UserTransactionFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/hls/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/hls/JTAHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/outcomes/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/outcomes/XAOutcome.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/status/XAStatus.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistry.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/status/Coordinating.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/CoordinationXML.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/DomUtil.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/common/Schema.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/ContextFactoryImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/RegistrarImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/DeploymentContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/JTAContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/CleanupSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTAParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTASynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/ContextFactoryImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/RegistrarImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/ArjunaContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/DeploymentContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/CleanupSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/UserCoordinatorImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/exceptions/ProtocolLocationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/CoordinatorManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ACCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ArjunaCoreHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/CoordinatorIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantRecord.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantWrapper.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/SynchronizationRecord.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/context/soap/ArjunaContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/CoordinatorIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/JTAHLS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/XAResourceImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/context/soap/JTAContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/BaseTransactionImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorControl.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/JTAHLSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/TransactionManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/UserTransactionImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/context/soap/JTAContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ACCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorControl.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorServiceImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ParticipantRecord.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/SagasHLSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/context/soap/ArjunaContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ACCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorServiceImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/SynchronizationRecord.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/TwoPhaseHLSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/context/soap/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/context/soap/ArjunaContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/Initializer.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/ProtocolEntry.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/DocComparitor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/ProtocolLocator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAResource.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/FailureParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/JTASynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel1.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel2.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel3.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Context.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested1.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested2.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested3.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested4.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested5.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested6.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested7.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested8.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/NullParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel1.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel2.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel3.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel4.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel5.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginCommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginRollback.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/ParticipantSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/Suspend.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendResume.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscTranslateContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ContextOutput.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ParticipantSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/StartEnd.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/Suspend.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendConfirm.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendResume.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscNestedContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscTranslateContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/xml/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/xml/SchemaName.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/ArjunaCoreHLS.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLS.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLSImple.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/SagasHLSImple.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/TwoPhaseHLSImple.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSBAHLS.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSCF.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context-example.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/example.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BAParticipantManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/Durable2PCCoordinator.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TxContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivity.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivityFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransactionFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelper.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/Environment.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/SOAPUtil.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/deploy/
   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/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicCommitException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicHazardException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicMixedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/SystemException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownParticipantException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownTransactionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/WrongStateException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreement.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/PhaseZeroParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/TwoPhaseParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Aborted.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Prepared.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/ReadOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Vote.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManagerFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransactionFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Environment.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TransactionXSD.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TxId.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Vote.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteCommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteReadOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteRollback.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateParticipantException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateSynchronizationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicCommitException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicHazardException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicMixedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicRollbackException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidParticipantException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidSynchronizationException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidTransactionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/NoTransactionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionCommittedException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionRolledBackException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/UnknownTransactionException.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/logging/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Participant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Synchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committed.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committing.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/NoTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollbackOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RolledBack.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollingBack.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHandle.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHierarchy.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/DeploymentContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/coordinator/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/coordinator/TxState.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/ContextManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalContextFactoryImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalRegistrarImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/TransactionManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/UserTransactionImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/DurableTwoPhaseCommitParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/VolatileTwoPhaseCommitParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/ContextManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/DeploymentContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BAParticipantManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BusinessActivityManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/ContextManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalContextFactoryImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalRegistrarImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/UserBusinessActivityImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/TerminationCoordinatorImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/ContextManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/util/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/util/PersistableParticipantHelper.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/common/arjunacore/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/common/arjunacore/TxIdImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/TwoPhaseTxManager.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/UserTwoPhaseTx.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/ParticipantAction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/SynchronizationAction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHandleImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHierarchyImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Cancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Close.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Compensate.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/ConfirmWithComplete.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Exit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCancel.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiClose.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCompensate.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInCommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInPrepare.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitRollbackInPrepare.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/MultiParticipants.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NestedTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullCommitTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullRollbackTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/PrintTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ResumeNullTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/RollbackExceptionInRollback.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SingleParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendCommitTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendNullTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeCommitTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeParticipants.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeSingleParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SynchronizationParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ThreadedTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipantWithComplete.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoDurableParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoVolatileParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureBusinessParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullCommitTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedCommit.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedRollback.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackOnly.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackTransaction.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SingleParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SynchronizationParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoParticipant.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoSynchronization.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/client-config.wsdd
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/deploy.wsdd
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/undeploy.wsdd
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/TwoPhaseTxManager.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/UserTwoPhaseTx.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/WSCF.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/tests.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/wstx_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/README.txt
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/glue-config.xml
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/webMethods-web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml
   labs/jbosstm/workspace/adinn/XTSGF/copyright.txt
   labs/jbosstm/workspace/adinn/XTSGF/demo/
   labs/jbosstm/workspace/adinn/XTSGF/demo/BUILDING
   labs/jbosstm/workspace/adinn/XTSGF/demo/build.bat
   labs/jbosstm/workspace/adinn/XTSGF/demo/build.sh
   labs/jbosstm/workspace/adinn/XTSGF/demo/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/client-web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/context-handlers.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/webservices.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceAT.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceBA.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceAT.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceBA.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceAT.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceBA.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/build.sh
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/application.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-services.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceAT.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceBA.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceAT.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceBA.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceAT.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceBA.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/glue-config.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.MessageFactory
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.SOAPConnectionFactory
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/about.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/atomictransaction.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/businessactivity.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/deploying.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/JBoss_DivOfRH_RGB.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/arjuna_strapline.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/header_grid.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/icon_email.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/icon_printer.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/menu_spacer.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/search_bg.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/spacer.jpg
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/trans_spacer.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/includes/
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/includes/trailmap_navigation.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/index.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/installcontent.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/sourcecode.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/styles.css
   labs/jbosstm/workspace/adinn/XTSGF/demo/docs/wherenext.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/about.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/atomictransaction.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/businessactivity.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/deploying.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/JBoss_DivOfRH_RGB.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/arjuna_strapline.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/header_grid.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/icon_email.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/icon_printer.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/menu_spacer.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/search_bg.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/spacer.jpg
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/trans_spacer.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/index.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/installcontent.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/sourcecode.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/styles.css
   labs/jbosstm/workspace/adinn/XTSGF/demo/html/wherenext.html
   labs/jbosstm/workspace/adinn/XTSGF/demo/jboss.properties
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/client/
   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/restaurant/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantServiceBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceATService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceBAService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantManager.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantAT.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceAT.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantView.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiManager.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantAT.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceAT.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiView.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreManager.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantAT.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceAT.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreView.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiServiceBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceATService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceBAService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreServiceBA.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceATService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceBAService.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/a_nav_6699cc.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/arjuna_logo.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/bl_corner_10.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/bl_navcorner_20.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/br_corner_10.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/br_navcorner_20.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tl_corner_10.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tl_navcorner_20.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tr_corner_10.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tr_navcorner_20.gif
   labs/jbosstm/workspace/adinn/XTSGF/demo/web/index.jsp
   labs/jbosstm/workspace/adinn/XTSGF/demo/weblogic.properties
   labs/jbosstm/workspace/adinn/XTSGF/demo/webmethods.properties
   labs/jbosstm/workspace/adinn/XTSGF/demo/xsl/
   labs/jbosstm/workspace/adinn/XTSGF/demo/xsl/ATL_LookAndFeel.xsl
   labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml
   labs/jbosstm/workspace/adinn/XTSGF/docs/
   labs/jbosstm/workspace/adinn/XTSGF/docs/ProgrammersGuide.doc
   labs/jbosstm/workspace/adinn/XTSGF/docs/ProgrammersGuide.pdf
   labs/jbosstm/workspace/adinn/XTSGF/ext/
   labs/jbosstm/workspace/adinn/XTSGF/ext/glue.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/jaxrpc.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/jaxws-2_1-mrel2-api.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/junit.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/saaj-api.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/servlet.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/stax-api-1.0.jar
   labs/jbosstm/workspace/adinn/XTSGF/ext/wstx-asl-2.0.3.jar
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-noframe.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BAParticipantManager.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManager.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManagerFactory.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/Durable2PCCoordinator.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManager.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManagerFactory.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TxContext.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivity.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivityFactory.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransaction.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransactionFactory.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/CoordinationContextHelper.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/Environment.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/SOAPUtil.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/WSTXInitialisation.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicCommitException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicHazardException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicMixedException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/SystemException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownParticipantException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownTransactionException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/WrongStateException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreement.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/PhaseZeroParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/TwoPhaseParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Aborted.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Prepared.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/ReadOnly.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Vote.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ActivationCoordinator.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/AlreadyRegisteredException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactory.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactoryMapper.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidCreateParametersException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidProtocolException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidStateException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/NoActivityException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/Registrar.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrarMapper.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrationCoordinator.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/MessageId.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Aborted.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BAParticipantManager.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessActivityTerminator.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Cancel.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/CompletionCoordinatorParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Durable2PCParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/FaultedException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Participant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/PersistableParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Prepared.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/ReadOnly.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Status.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/SystemException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/TransactionRolledBackException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/UnknownTransactionException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Volatile2PCParticipant.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Vote.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/WrongStateException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/TransactionInitialisation.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorEngine.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantEngine.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessActivityTerminatorStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/CompletionStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Durable2PCStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/ParticipantStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/SystemCommunicationException.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Volatile2PCStub.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/constant-values.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/deprecated-list.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/help-doc.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/index-all.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/index.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-frame.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-summary.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-tree.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/package-list
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/resources/
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/resources/inherit.gif
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/serialized-form.html
   labs/jbosstm/workspace/adinn/XTSGF/htdocs/stylesheet.css
   labs/jbosstm/workspace/adinn/XTSGF/sar/
   labs/jbosstm/workspace/adinn/XTSGF/sar/META-INF/
   labs/jbosstm/workspace/adinn/XTSGF/sar/META-INF/jboss-service.xml
   labs/jbosstm/workspace/adinn/XTSGF/sar/WEB-INF/
   labs/jbosstm/workspace/adinn/XTSGF/sar/WEB-INF/web.xml
   labs/jbosstm/workspace/adinn/XTSGF/sar/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/sar/jbossxts.xml
   labs/jbosstm/workspace/adinn/XTSGF/sar/src/
   labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/
   labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/
   labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/
   labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSService.java
   labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSServiceMBean.java
   labs/jbosstm/workspace/adinn/XTSGF/third_party_licenses.txt
Log:
version of XTS and demo which can be delpoyed on Glassfish with JaxWS under the demo but not yet under XTS

Added: labs/jbosstm/workspace/adinn/XTSGF/README.txt
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/README.txt	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/README.txt	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+#
+
+Tis is a version of the XTS tree (svn r16728) modified to run under
+Glassfish 2.0 release (v2-b58g).
+
+Code changes to the XTS core merely include modifications to the
+initialisation code so that the four sets of listeners/servlets
+associated with the four XTS web apps (WS-C, WS-T, WSTX and WSCF) are
+executed in the corrected order. This was necessary because Glassfish
+does not guarantee to initialise each web app in the order defined in
+the application.xml deployment descriptor.
+
+This version still uses the home-grown soap stack to implement the
+various XTS services (WS-COOR, WS-AT, WS-BA, ARJ-TERMINATION). A later
+version will transplant to JaxWS.
+
+The XTS core build script (build.xml) has been modified to locate the
+ArjunaCore etc source/lib tree usng an environment setting. In order
+to build the XTS core you need to set JTA_HOME in your environment
+then in directory XTSGF execute
+
+  ant build
+
+Of course this assumes that you have already built the JTA libraries
+in $JTA_HOME.
+
+All other code/config changes have been made in the XTS demo code. The
+3 demo services have been re-implemented using JaxWS and the basic
+client modified to invoke them via JaxWS. Some of the names of
+services, endpoints etc have been modified to fit in with the code
+gneerated by the Glassfish 'wsimport' wsdl 2 java code generator and
+various of the dd config files have been changed or deleted. Also,
+some of the wsdl and deployment descriptors have had long-standing
+errors cleaned up e.g. name sin DTDs have been returned to the
+required standard format (Glassfish is *very* picky).
+
+The demo build script has been modified to compile against the
+Glassfish javaee and jaxws lib jars. IN order to build the demo you
+need to set GF_HOME to the root of the Glassfish distribution (the dir
+which contains lib) then in XTSGF/demo execute
+
+  bash build.sh jboss distribution
+
+and in XTSGF/xts-install/demo execute
+
+  bash build.sh jboss clean build
+
+After building use the Glassfish console to deploy
+
+  XTSGF/xts-install/demo/build/xts-demo.ear
+
+and execute the client from
+
+  http://localhost:8080/xts-demo/
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,219 @@
+<!--
+  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.          -->
+<!--                                                                        -->
+<!--                      Web service - Coordination                        -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<project name="WebServicesCoordination" default="dev-webapps" basedir=".">
+
+    <!-- ================================================================== -->
+
+    <property name="deploy.dir"              value="deploy"/>
+    <property name="hostname" value="localhost"/>
+    <property name="port" value="8080"/>
+
+    <!-- ================================================================== -->
+
+    <property name="build.dir"               value="build"/>
+    <property name="dev.src.dir"             value="dev/src"/>
+    <property name="dev.dd.dir"              value="dev/dd"/>
+    <property name="tests.src.dir"           value="tests/src"/>
+    <property name="tests.dd.dir"            value="tests/dd"/>
+    <property name="build.dev.classes.dir"   value="${build.dir}/dev/classes"/>
+    <property name="build.dev.lib.dir"       value="${build.dir}/dev/lib"/>
+    <property name="build.dev.dd.dir"        value="${build.dir}/dev/dd"/>
+    <property name="build.dev.webapps.dir"   value="${build.dir}/dev/webapps"/>
+    <property name="build.tests.classes.dir" value="${build.dir}/tests/classes"/>
+    <property name="build.tests.lib.dir"     value="${build.dir}/tests/lib"/>
+    <property name="build.tests.dd.dir"      value="${build.dir}/tests/dd"/>
+    <property name="build.tests.webapps.dir" value="${build.dir}/tests/webapps"/>
+
+    <property name="com.arjuna.buildsystem.dir" location="../../antbuildsystem"/>
+    <property name="com.arjuna.jta.install" location="../../install"/>
+
+    <property name="com.arjuna.buildsystem.lib" location="${com.arjuna.buildsystem.dir}/build/lib"/>
+    <property name="com.arjuna.jta.install.lib" location="${com.arjuna.jta.install}/lib"/>
+    <property name="com.arjuna.jta.install.ext" location="${com.arjuna.jta.install.lib}/ext"/>
+    <property name="com.arjuna.xts.ext" location="../ext"/>
+
+    <property name="com.arjuna.buildsystem.lib.jars" value="buildsystem.jar"/>
+
+    <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.compile.jars" value="servlet.jar saaj-api.jar"/>
+
+    <property name="tests.libs" value="junit.jar"/>
+
+    <property name="javac.debug"             value="on"/>
+    <property name="javac.optimize"          value="off"/>
+
+    <path id="lib.ext.path">
+        <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars} ${jta.ext.compile.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}"/>
+        <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars}"/>
+    </path>
+
+    <path id="tests.lib.path">
+        <fileset dir="${com.arjuna.xts.ext}" includes="${tests.libs}"/>
+    </path>
+
+	<!-- name of the resource bundle -->
+    <property name="com.arjuna.mwlabs.wsc.resourcebundle"
+	      value="wsc_msg_en_US.properties"/>
+    <!-- Define classpath builder task -->
+    <path id="com.arjuna.buildsystem.classpath">
+        <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
+    </path>
+    <property name="com.arjuna.buildsystem.classpath" refid="com.arjuna.buildsystem.classpath"/>
+	<taskdef name="classpath-builder" classname="com.hp.mw.buildsystem.ant.ClasspathBuilder" classpathref="com.arjuna.buildsystem.classpath"/>
+	<!-- class path behaviour -->
+	<property name="build.sysclasspath" value="last"/>
+	<property name="com.arjuna.mwlabs.classpathbuilderfilename" location="buildsystem.classpath"/>
+
+    <target name="clean">
+        <delete dir="${build.dir}"/>
+        <delete>
+            <fileset dir="." includes="**/*.bak" defaultexcludes="no"/>
+            <fileset dir="." includes="**/*~"    defaultexcludes="no"/>
+            <fileset dir="." includes="**/#*#"   defaultexcludes="no"/>
+            <fileset dir="." includes="**/.#*"   defaultexcludes="no"/>
+        </delete>
+    </target>
+
+    <target name="init" depends="clean,init-dir"/>
+
+    <target name="init-dir">
+        <mkdir dir="${build.dir}"/>
+        <mkdir dir="${build.dev.classes.dir}"/>
+        <mkdir dir="${build.dev.lib.dir}"/>
+        <mkdir dir="${build.dev.dd.dir}"/>
+        <mkdir dir="${build.dev.webapps.dir}"/>
+        <mkdir dir="${build.tests.classes.dir}"/>
+        <mkdir dir="${build.tests.lib.dir}"/>
+        <mkdir dir="${build.tests.dd.dir}"/>
+        <mkdir dir="${build.tests.webapps.dir}"/>
+    </target>
+
+    <target name="dev-compile" depends="init">
+        <javac destdir="${build.dev.classes.dir}" debug="${javac.debug}" optimize="${javac.optimize}">
+            <classpath>
+                <path refid="lib.ext.path"/>
+            </classpath>
+            <src path="${dev.src.dir}"/>
+        </javac>
+    	<copy todir="${build.dev.classes.dir}">
+    		<fileset dir="${dev.src.dir}" excludes="**/*.java"/>
+    	</copy>
+    </target>
+
+    <target name="dev-resourcebundle">
+        <echo message="Generating WS-C Bundle"/>
+
+        <classpath-builder filename="${com.arjuna.mwlabs.classpathbuilderfilename}" inproperty="build.classpath"/>
+
+        <javadoc    sourcepath="${dev.src.dir}"
+                    packagenames="com.arjuna.*"
+                    failonerror="yes"
+                    private="yes"
+                    defaultexcludes="yes"
+                    classpath="${build.classpath}">
+
+             <doclet name="com.hp.mw.buildsystem.doclet.resbundledoclet.ResourceBundleDoclet">
+                <path>
+                    <pathelement path="${com.arjuna.buildsystem.classpath}"/>
+                </path>
+                <param name="-basedir" value="${basedir}/${build.dev.classes.dir}"/>
+                <param name="-resourcebundle" value="${com.arjuna.mwlabs.wsc.resourcebundle}"/>
+             </doclet>
+        </javadoc>
+    </target>
+
+    <target name="dev-jars" depends="dev-compile, dev-resourcebundle" >
+        <jar jarfile="${build.dev.lib.dir}/ws-c.jar">
+            <fileset dir="${build.dev.classes.dir}"/>
+            <manifest>
+                <attribute name="Class-Path" value="${jta.ext.jars} ${xts.ext.jars} ${jta.lib.jars} ${jta.ext.jars}"/>
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="dev-webapps" depends="dev-jars" >
+        <copy file="${dev.dd.dir}/ws-c_web-app.xml" tofile="${build.dev.dd.dir}/web-app.xml">
+            <filterset>
+                <filter token="hostname" value="${hostname}"/>
+                <filter token="port" value="${port}"/>
+            </filterset>
+        </copy>
+        <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>
+    </target>
+
+    <target name="tests-compile" depends="dev-webapps">
+        <javac destdir="${build.tests.classes.dir}" debug="${javac.debug}" optimize="${javac.optimize}">
+            <classpath>
+                <pathelement path="${build.dev.lib.dir}/ws-c.jar"/>
+                <path refid="tests.lib.path"/>
+                <path refid="lib.ext.path"/>
+            </classpath>
+            <src path="${tests.src.dir}"/>
+        </javac>
+    </target>
+
+    <target name="tests-webapps" depends="tests-compile" >
+        <copy file="${tests.dd.dir}/ws-c-tests_web-app.xml" tofile="${build.tests.dd.dir}/web-app.xml">
+            <filterset>
+                <filter token="hostname" value="${hostname}"/>
+                <filter token="port" value="${port}"/>
+            </filterset>
+        </copy>
+        <war warfile="${build.tests.webapps.dir}/ws-c-tests.war" webxml="${build.tests.dd.dir}/web-app.xml">
+            <manifest>
+                <attribute name="Class-Path" value="ws-c.jar ${tests.libs}"/>
+            </manifest>
+            <classes dir="${build.tests.classes.dir}"/>
+        </war>
+        <ear earfile="${build.tests.webapps.dir}/ws-c-tests.ear" appxml="${tests.dd.dir}/ws-c-tests_application.xml">
+            <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars}"/>
+            <fileset dir="${com.arjuna.xts.ext}" includes="${xts.ext.jars} ${tests.libs}"/>
+            <fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
+            <fileset dir="${build.dev.lib.dir}" includes="ws-c.jar"/>
+            <fileset dir="${build.tests.webapps.dir}" includes="ws-c-tests.war"/>
+        </ear>
+    </target>
+
+    <target name="tests-deploy" depends="tests-webapps, tests-undeploy">
+        <copy file="${build.tests.webapps.dir}/ws-c-tests.ear" tofile="${deploy.dir}/ws-c-tests.ear"/>
+    </target>
+
+    <target name="tests-undeploy">
+        <delete file="${deploy.dir}/ws-c-tests.ear"/>
+    </target>
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<!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</display-name>
+
+    <description>Arjuna Web Services and WS-Coordination</description>
+
+    <!--  Initialise the Task Manager -->
+    <context-param>
+        <param-name>TaskManager.minWorkerCount</param-name>
+        <param-value>0</param-value>
+    </context-param>
+    <context-param>
+        <param-name>TaskManager.maxWorkerCount</param-name>
+        <param-value>10</param-value>
+    </context-param>
+    <listener>
+        <listener-class>com.arjuna.services.framework.admin.TaskManagerInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationRequesterInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationRequesterInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C  -->
+    <listener>
+        <listener-class>com.arjuna.wsc.messaging.deploy.CoordinationInitialisation</listener-class>
+    </listener>
+
+    <!--  Initialise the HTTP Client -->
+    <listener>
+        <listener-class>com.arjuna.webservices.transport.http.HttpClientInitialisation</listener-class>
+    </listener>
+    
+    <servlet>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <servlet-class>com.arjuna.webservices.transport.http.HttpServiceMultiplexorServlet</servlet-class>
+        <!--
+          The BaseHttpURI and BaseHttpsURI parameters specify the default values
+          used to generate the service URIs without reference to an incoming
+          request.
+         -->
+        <init-param>
+            <param-name>BaseHttpURI</param-name>
+            <param-value>http://@hostname@:@port@/xts/soap/</param-value>
+        </init-param>
+        <!--
+        <init-param>
+            <param-name>BaseHttpsURI</param-name>
+            <param-value>https://@hostname@:@port@/xts/soap/</param-value>
+        </init-param>
+        <init-param>
+            <param-name>LogPackets</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        -->
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+	<!-- servlet mappings -->
+    <servlet-mapping>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <url-pattern>/soap/*</url-pattern>
+    </servlet-mapping>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdmin.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdmin.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdmin.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,89 @@
+/*
+ * 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.services.framework.admin ;
+
+import com.arjuna.services.framework.task.TaskManager;
+
+/**
+ * The task manager administration MBean.
+ * @author kevin
+ */
+public class TaskManagerAdmin implements TaskManagerAdminMBean
+{
+    /**
+     * Set the minimum worker count for the pool.
+     * 
+     * @param minimumWorkerCount The minimum worker count.
+     */
+    public void setMinimumWorkerCount(final int minimumWorkerCount)
+    {
+        TaskManager.getManager().setMinimumWorkerCount(minimumWorkerCount) ;
+    }
+
+    /**
+     * Get the minimum worker count for the pool.
+     * 
+     * @return The minimum worker count.
+     */
+    public int getMinimumWorkerCount()
+    {
+        return TaskManager.getManager().getMinimumWorkerCount() ;
+    }
+
+    /**
+     * Set the maximum worker count for the pool.
+     * 
+     * @param maximumWorkerCount The maximum worker count.
+     */
+    public void setMaximumWorkerCount(final int maximumWorkerCount)
+    {
+        TaskManager.getManager().setMaximumWorkerCount(maximumWorkerCount) ;
+    }
+
+    /**
+     * Get the maximum worker count for the pool.
+     * 
+     * @return The maximum worker count.
+     */
+    public int getMaximumWorkerCount()
+    {
+        return TaskManager.getManager().getMaximumWorkerCount() ;
+    }
+
+    /**
+     * Get the current worker count for the pool.
+     * 
+     * @return The current worker count.
+     */
+    public int getWorkerCount()
+    {
+        return TaskManager.getManager().getWorkerCount() ;
+    }
+
+    /**
+     * Close all threads and reset the task list. This method waits until all
+     * threads have finished before returning.
+     */
+    public void shutdown()
+    {
+        TaskManager.getManager().shutdown() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdminMBean.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdminMBean.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerAdminMBean.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.services.framework.admin ;
+
+/**
+ * The task manager administration MBean interface.
+ * @author kevin
+ */
+public interface TaskManagerAdminMBean
+{
+    /**
+     * Set the minimum worker count for the pool.
+     * 
+     * @param minimumWorkerCount The minimum worker count.
+     */
+    public abstract void setMinimumWorkerCount(final int minimumWorkerCount) ;
+
+    /**
+     * Get the minimum worker count for the pool.
+     * 
+     * @return The minimum worker count.
+     */
+    public abstract int getMinimumWorkerCount() ;
+
+    /**
+     * Set the maximum worker count for the pool.
+     * 
+     * @param maximumWorkerCount The maximum worker count.
+     */
+    public abstract void setMaximumWorkerCount(final int maximumWorkerCount) ;
+
+    /**
+     * Get the maximum worker count for the pool.
+     * 
+     * @return The maximum worker count.
+     */
+    public abstract int getMaximumWorkerCount() ;
+
+    /**
+     * Get the current worker count for the pool.
+     * 
+     * @return The current worker count.
+     */
+    public abstract int getWorkerCount() ;
+
+    /**
+     * Close all threads and reset the task list. This method waits until all
+     * threads have finished before returning.
+     */
+    public abstract void shutdown() ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/admin/TaskManagerInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+/*
+ * 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.services.framework.admin;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * Context listener used to initialise the Task Manager.
+ * @author kevin
+ */
+public class TaskManagerInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The sevlet context event.
+     * @message com.arjuna.services.framework.admin.TaskManagerInitialisation_1 [com.arjuna.services.framework.admin.TaskManagerInitialisation_1] -
+     *      Invalid minimum worker count.
+     * @message com.arjuna.services.framework.admin.TaskManagerInitialisation_2 [com.arjuna.services.framework.admin.TaskManagerInitialisation_2] -
+     *      Invalid maximum worker count.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        final ServletContext servletContext = servletContextEvent.getServletContext() ;
+        final String minWorkerCountParam = servletContext.getInitParameter("TaskManager.minWorkerCount") ;
+        final String maxWorkerCountParam = servletContext.getInitParameter("TaskManager.maxWorkerCount") ;
+        
+        final TaskManager taskManager = TaskManager.getManager() ;
+        if (minWorkerCountParam != null)
+        {
+            try
+            {
+                final int minWorkerCount = Integer.parseInt(minWorkerCountParam) ;
+                taskManager.setMinimumWorkerCount(minWorkerCount) ;
+            }
+            catch (final NumberFormatException nfe)
+            {
+                WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.admin.TaskManagerInitialisation_1") ;
+            }
+        }
+        if (maxWorkerCountParam != null)
+        {
+            try
+            {
+                final int maxWorkerCount = Integer.parseInt(maxWorkerCountParam) ;
+                taskManager.setMaximumWorkerCount(maxWorkerCount) ;
+            }
+            catch (final NumberFormatException nfe)
+            {
+                WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.admin.TaskManagerInitialisation_2") ;
+            }
+        }
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+        TaskManager.getManager().shutdown() ;
+    }
+}

Added: 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	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/startup/Sequencer.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,131 @@
+package com.arjuna.services.framework.startup;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * A manager which allows each of the XTS applications to register startup callbacks to be run in the correct
+ * order even if the applications are started out of order.
+ * User: adinn
+ * Date: Nov 30, 2007
+ * Time: 4:05:13 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class Sequencer {
+    // public API
+
+    /*
+     * indices for sequence of web apps we need to ensure start in the correct order
+     */
+
+    /**
+     * WS-C initialises first
+     */
+    public static final int WEBAPP_WSC = 0;
+
+    /**
+     * WS-T initialises second
+     */
+    public static final int WEBAPP_WST = 1;
+
+    /**
+     * WSCF intiialises third
+     */
+    public static final int WEBAPP_WSCF = 2;
+
+    /**
+     * WSTCX initialises last
+     */
+    public static final int WEBAPP_WSTX = 3;
+
+    /**
+     * there are only four startup apps in the XTS implementation
+     */
+    public static final int WEBAPP_MAX = 4;
+
+    /**
+     * append a startup callback to the end of the liost registered for a particular XTS web app
+     * @param callback a callback to add to the list for a given web app
+     * @param webapp one of the foue possible webapp ids defined by this class
+     */
+    public static final void register(Callback callback, int webapp)
+    {
+        // insert the callback into the appropriate list
+        if (callbacks == null) {
+            callbacks = new ArrayList[WEBAPP_MAX];
+            closed = new boolean[WEBAPP_MAX];
+            for (int i = 0; i < WEBAPP_MAX; i++) {
+                callbacks[i] = new ArrayList<Callback>();
+                closed[i] = false;
+            }
+        }
+        callbacks[webapp].add(callback);
+    }
+
+    /**
+     * notify end of callback registration for a specific web app
+     * @param webapp
+     */
+    public static final void close(int webapp)
+    {
+        closed[webapp] = true;
+        closedCount++;
+        if (closedCount == WEBAPP_MAX) {
+            runCallbacks();
+        }
+    }
+
+    /**
+     * callback class specialised by client web apps to execute startup code
+     */
+    public static abstract class Callback
+    {
+        /**
+         * register this callback when it is created
+         * @param webapp the web app with which this callback is associated
+         */
+        public Callback(int webapp)
+        {
+            register(this, webapp);
+        }
+
+        /**
+         * callback method invoked per callback in registration order per web app in web app order
+         */
+        public abstract void run();
+    }
+
+    // private implementation
+
+    /**
+     * array of lists to hold callbacks registered per web app
+     */
+    private static List<Callback>[] callbacks = null;
+
+    /**
+     * array of flags per web app initially false and set to trrue when a web app has registered all its callbacks
+     */
+    private static boolean[] closed;
+
+    /**
+     * counter incremented each time a callback list is closed. callback processing is triggered when this reaches the
+     * web app count
+     */
+    private static int closedCount = 0;
+
+    private static void runCallbacks()
+    {
+        if (callbacks == null) {
+            return;
+        }
+
+        for (int i = 0; i < WEBAPP_MAX; i++) {
+            Iterator<Callback> iter = callbacks[i].iterator();
+            while (iter.hasNext()) {
+                Callback cb = iter.next();
+                cb.run();
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/Task.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/Task.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/Task.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,34 @@
+/*
+ * 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.services.framework.task ;
+
+/**
+ * The task interface for tasks scheduled by the task manager.
+ * 
+ * @author kevin
+ */
+public interface Task
+{
+    /**
+     * Execute the task.
+     */
+    public void executeTask() ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,509 @@
+/*
+ * 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.services.framework.task ;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Set;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * This class manages the client side of the task manager
+ * 
+ * @author kevin
+ */
+public class TaskManager
+{
+    /**
+     * The singleton.
+     */
+    private static final TaskManager MANAGER = new TaskManager() ;
+
+    /**
+     * The default maximum worker count.
+     */
+    private static final int DEFAULT_MAXIMUM_THREAD_COUNT = 10 ;
+
+    /**
+     * The default minimum worker count.
+     */
+    private static final int DEFAULT_MINIMUM_THREAD_COUNT = 0 ;
+
+    /**
+     * The minimum worker pool count.
+     */
+    private int minimumWorkerCount = DEFAULT_MINIMUM_THREAD_COUNT ;
+
+    /**
+     * The maximum worker pool count.
+     */
+    private int maximumWorkerCount = DEFAULT_MAXIMUM_THREAD_COUNT ;
+
+    /**
+     * The set of already allocated workers.
+     */
+    private Set workerPool = new HashSet() ;
+
+    /**
+     * The current list of tasks.
+     */
+    private LinkedList taskList = new LinkedList() ;
+
+    /**
+     * The counter used for naming the threads.
+     */
+    private int taskCount ;
+
+    /**
+     * The number of worker waiting.
+     */
+    private int waitingCount ;
+
+    /**
+     * A flag indicating that shutdown is in progress.
+     */
+    private boolean shutdown ;
+
+    /**
+     * Get the singleton controlling the tasks.
+     * 
+     * @return The task manager.
+     */
+    public static TaskManager getManager()
+    {
+        return MANAGER ;
+    }
+
+    /**
+     * Private to prevent initialisation.
+     */
+    private TaskManager()
+    {
+    }
+
+    /**
+     * Queue the task for execution.
+     * 
+     * @param task The task to be executed.
+     * @return true if the task was queued, false otherwise.
+     * 
+     * @message com.arjuna.services.framework.task.TaskManager.queueTask_1 [com.arjuna.services.framework.task.TaskManager.queueTask_1] -
+     *      Shutdown in progress, ignoring task
+     * @message com.arjuna.services.framework.task.TaskManager.queueTask_2 [com.arjuna.services.framework.task.TaskManager.queueTask_2] -
+     *      queueTask: notifying waiting workers ({0})
+     * @message com.arjuna.services.framework.task.TaskManager.queueTask_3 [com.arjuna.services.framework.task.TaskManager.queueTask_3] -
+     *      queueTask: creating worker
+     * @message com.arjuna.services.framework.task.TaskManager.queueTask_4 [com.arjuna.services.framework.task.TaskManager.queueTask_4] -
+     *      queueTask: queueing task for execution
+     */
+    public boolean queueTask(final Task task)
+    {
+        final boolean debugEnabled = WSCLogger.arjLoggerI18N.isDebugEnabled() ;
+        synchronized(workerPool)
+        {
+            if (shutdown)
+            {
+                if (debugEnabled)
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.queueTask_1") ;
+                }
+                return false ;
+            }
+        }
+
+        final boolean notify ;
+        synchronized(taskList)
+        {
+            taskList.addLast(task) ;
+            notify = (waitingCount > 0) ;
+            if (notify)
+            {
+                if (debugEnabled)
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.queueTask_2",
+                            new Object[] {new Integer(waitingCount)}) ;
+                }
+                taskList.notify() ;
+            }
+        }
+
+        final boolean create ;
+        synchronized(workerPool)
+        {
+            create = ((workerPool.size() < minimumWorkerCount) ||
+                    ((workerPool.size() < maximumWorkerCount) && !notify)) ;
+        }
+
+        if (create)
+        {
+            if (debugEnabled)
+            {
+                WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.queueTask_3") ;
+            }
+            createWorker() ;
+        }
+        else if (debugEnabled)
+        {
+            WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.queueTask_4") ;
+        }
+        
+        return true ;
+    }
+
+    /**
+     * Set the minimum worker count for the pool.
+     * 
+     * @param minimumWorkerCount The minimum worker count.
+     *
+     * @message com.arjuna.services.framework.task.TaskManager.setMinimumWorkerCount_1 [com.arjuna.services.framework.task.TaskManager.setMinimumWorkerCount_1] -
+     *      shutdown in progress, ignoring set minimum worker count
+     * @message com.arjuna.services.framework.task.TaskManager.setMinimumWorkerCount_2 [com.arjuna.services.framework.task.TaskManager.setMinimumWorkerCount_2] -
+     *      setMinimumWorkerCount: {0}
+     */
+    public void setMinimumWorkerCount(final int minimumWorkerCount)
+    {
+        final boolean debugEnabled = WSCLogger.arjLoggerI18N.isDebugEnabled() ;
+        synchronized(workerPool)
+        {
+            if (shutdown)
+            {
+                if (debugEnabled)
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.setMinimumWorkerCount_1") ;
+                }
+                return ;
+            }
+            this.minimumWorkerCount = (minimumWorkerCount < 0 ? DEFAULT_MINIMUM_THREAD_COUNT
+                    : minimumWorkerCount) ;
+            if (this.minimumWorkerCount > maximumWorkerCount)
+            {
+                maximumWorkerCount = this.minimumWorkerCount ;
+            }
+
+            if (debugEnabled)
+            {
+                WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.setMinimumWorkerCount_2") ;
+            }
+        }
+
+        while(true)
+        {
+            final boolean create ;
+            synchronized(workerPool)
+            {
+                create = (workerPool.size() < this.minimumWorkerCount) ;
+            }
+
+            if (create)
+            {
+                createWorker() ;
+            }
+            else
+            {
+                break ;
+            }
+        }
+    }
+
+    /**
+     * Get the minimum worker count for the pool.
+     * 
+     * @return The minimum worker count.
+     */
+    public int getMinimumWorkerCount()
+    {
+        synchronized(workerPool)
+        {
+            return minimumWorkerCount ;
+        }
+    }
+
+    /**
+     * Set the maximum worker count for the pool.
+     * 
+     * @param maximumWorkerCount The maximum worker count.
+     * @message com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_1 [com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_1] -
+     *      shutdown in progress, ignoring set maximum worker count
+     * @message com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_2 [com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_2] -
+     *      setMaximumWorkerCount: {0}
+     * @message com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_3 [com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_3] -
+     *      setMaximumWorkerCount: reducing pool size from {0} to {1}
+     */
+    public void setMaximumWorkerCount(final int maximumWorkerCount)
+    {
+        final boolean debugEnabled = WSCLogger.arjLoggerI18N.isDebugEnabled() ;
+        synchronized(workerPool)
+        {
+            if (shutdown)
+            {
+                if (debugEnabled)
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_1") ;
+                }
+                return ;
+            }
+            this.maximumWorkerCount = (maximumWorkerCount < 0 ? DEFAULT_MAXIMUM_THREAD_COUNT
+                    : maximumWorkerCount) ;
+            if (minimumWorkerCount > this.maximumWorkerCount)
+            {
+                minimumWorkerCount = this.maximumWorkerCount ;
+            }
+
+            if (debugEnabled)
+            {
+                WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_2",
+                        new Object[] {new Integer(this.maximumWorkerCount)}) ;
+            }
+
+            synchronized(taskList)
+            {
+                if ((workerPool.size() > this.maximumWorkerCount)
+                        && (waitingCount > 0))
+                {
+                    if (debugEnabled)
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.setMaximumWorkerCount_3",
+                                new Object[] {new Integer(workerPool.size()), new Integer(this.maximumWorkerCount)}) ;
+                    }
+                    taskList.notify() ;
+                }
+            }
+        }
+    }
+
+    /**
+     * Get the maximum worker count for the pool.
+     * 
+     * @return The maximum worker count.
+     */
+    public int getMaximumWorkerCount()
+    {
+        synchronized(workerPool)
+        {
+            return maximumWorkerCount ;
+        }
+    }
+
+    /**
+     * Get the current worker count for the pool.
+     * 
+     * @return The current worker count.
+     */
+    public int getWorkerCount()
+    {
+        synchronized(workerPool)
+        {
+            return workerPool.size() ;
+        }
+    }
+
+    /**
+     * Close all threads and reset the task list. This method waits until all
+     * threads have finished before returning.
+     * @message com.arjuna.services.framework.task.TaskManager.shutdown_1 [com.arjuna.services.framework.task.TaskManager.shutdown_1] -
+     *      Shutdown already in progress
+     */
+    public void shutdown()
+    {
+        final boolean debugEnabled = WSCLogger.arjLoggerI18N.isDebugEnabled() ;
+
+        synchronized(workerPool)
+        {
+            if (shutdown)
+            {
+                if (debugEnabled)
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.shutdown_1") ;
+                }
+            }
+            else
+            {
+                setMaximumWorkerCount(0) ;
+                shutdown = true ;
+            }
+        }
+
+        while(true)
+        {
+            final Thread waitThread ;
+            synchronized(workerPool)
+            {
+                final Iterator workerPoolIter = workerPool.iterator() ;
+                if (workerPoolIter.hasNext())
+                {
+                    waitThread = (Thread) workerPoolIter.next() ;
+                }
+                else
+                {
+                    waitThread = null ;
+                }
+            }
+
+            if (waitThread == null)
+            {
+                break ;
+            }
+            else
+            {
+                try
+                {
+                    waitThread.join() ;
+                }
+                catch (final InterruptedException ie)
+                {
+                } // Ignore
+            }
+        }
+
+        synchronized(workerPool)
+        {
+            if (shutdown)
+            {
+                taskList.clear() ;
+                shutdown = false ;
+            }
+        }
+    }
+
+    /**
+     * Get another task from the pool.
+     * 
+     * @return The next task from the pool or null if finished.
+     * 
+     * @message com.arjuna.services.framework.task.TaskManager.getTask_1 [com.arjuna.services.framework.task.TaskManager.getTask_1] -
+     *      getTask: releasing thread
+     * @message com.arjuna.services.framework.task.TaskManager.getTask_2 [com.arjuna.services.framework.task.TaskManager.getTask_2] -
+     *      getTask: notifying waiting thread about excess count {0}
+     * @message com.arjuna.services.framework.task.TaskManager.getTask_3 [com.arjuna.services.framework.task.TaskManager.getTask_3] -
+     *      getTask: returning task
+     * @message com.arjuna.services.framework.task.TaskManager.getTask_4 [com.arjuna.services.framework.task.TaskManager.getTask_4] -
+     *      getTask: waiting for task
+     * @message com.arjuna.services.framework.task.TaskManager.getTask_5 [com.arjuna.services.framework.task.TaskManager.getTask_5] -
+     *      getTask: interrupted
+     */
+    Task getTask()
+    {
+        final boolean debugEnabled = WSCLogger.arjLoggerI18N.isDebugEnabled() ;
+
+        while(true)
+        {
+            final boolean remove ;
+            synchronized(workerPool)
+            {
+                final int excessCount = workerPool.size() - maximumWorkerCount ;
+                if (excessCount > 0)
+                {
+                    if (debugEnabled)
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.getTask_1") ;
+                    }
+                    synchronized(taskList)
+                    {
+                        if ((excessCount > 1) && (waitingCount > 0))
+                        {
+                            if (debugEnabled)
+                            {
+                                WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.getTask_2",
+                                        new Object[] {new Integer(excessCount)}) ;
+                            }
+                            taskList.notify() ;
+                        }
+                    }
+                    remove = true ;
+                }
+                else
+                {
+                    remove = false ;
+                }
+            }
+
+            if (remove)
+            {
+                final Thread currentThread = Thread.currentThread() ;
+                synchronized(workerPool)
+                {
+                    workerPool.remove(currentThread) ;
+                }
+                return null ;
+            }
+
+            synchronized(taskList)
+            {
+                final int numTasks = taskList.size() ;
+                if (numTasks > 0)
+                {
+                    final Task task = (Task) taskList.removeFirst() ;
+                    if ((numTasks > 1) && (waitingCount > 0))
+                    {
+                        taskList.notify() ;
+                    }
+                    if (debugEnabled)
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.getTask_3") ;
+                    }
+                    return task ;
+                }
+                waitingCount++ ;
+                if (debugEnabled)
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.getTask_4") ;
+                }
+                try
+                {
+                    taskList.wait() ;
+                }
+                catch (final InterruptedException ie)
+                {
+                    if (debugEnabled)
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.services.framework.task.TaskManager.getTask_5") ;
+                    }
+                }
+                finally
+                {
+                    waitingCount-- ;
+                }
+            }
+        }
+    }
+
+    /**
+     * Create and register a task worker.
+     */
+    private void createWorker()
+    {
+        final TaskWorker taskWorker = new TaskWorker(this) ;
+        final String name ;
+        synchronized(workerPool)
+        {
+            name = "TaskWorker-" + ++taskCount ;
+        }
+        final Thread thread = new Thread(taskWorker, name) ;
+        thread.setDaemon(true) ;
+        synchronized(workerPool)
+        {
+            workerPool.add(thread) ;
+        }
+        thread.start() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskWorker.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskWorker.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/task/TaskWorker.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.services.framework.task ;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * Class responsible for executing tasks.
+ * 
+ * @author kevin
+ */
+public class TaskWorker implements Runnable
+{
+    /**
+     * The associated task manager.
+     */
+    private final TaskManager taskManager ;
+
+    /**
+     * Construct the task worker.
+     * 
+     * @param taskManager The task manager.
+     */
+    TaskWorker(final TaskManager taskManager)
+    {
+        this.taskManager = taskManager ;
+    }
+
+    /**
+     * Execute the tasks.
+     * @message com.arjuna.services.framework.task.TaskWorker.run_1 [com.arjuna.services.framework.task.TaskWorker.run_1] -
+     *      Unhandled error executing task
+     */
+    public void run()
+    {
+        while(true)
+        {
+            final Task task = taskManager.getTask() ;
+
+            if (task == null)
+            {
+                break ;
+            }
+
+            try
+            {
+                task.executeTask() ;
+            }
+            catch (final Throwable th)
+            {
+                WSCLogger.arjLoggerI18N.error("com.arjuna.services.framework.task.TaskWorker.run_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/BodyHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/BodyHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/BodyHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Interface for body handlers.
+ * @author kevin
+ */
+public interface BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails,
+        final MessageContext context, final MessageContext responseContext,
+        final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HandlerRegistry.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HandlerRegistry.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HandlerRegistry.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,174 @@
+/*
+ * 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 java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.util.InsertionOrderSet;
+
+/**
+ * The handler registry for a service.
+ * @author kevin
+ */
+public class HandlerRegistry
+{
+    /**
+     * The header handlers for the service.
+     */
+    private final Map headerHandlers = new HashMap() ;
+    /**
+     * The unmodifiable version of the header handlers.
+     */
+    private final Map unmodifiableHeaderHandlers = Collections.unmodifiableMap(headerHandlers) ;
+    /**
+     * The body handlers for the service.
+     */
+    private final Map bodyHandlers = new HashMap() ;
+    /**
+     * The handler for SOAP faults.
+     */
+    private BodyHandler faultHandler ;
+    /**
+     * The interceptor handlers for the service.
+     */
+    private final Set interceptorHandlers = new InsertionOrderSet() ;
+    /**
+     * The unmodifiable version of the interceptor handlers.
+     */
+    private final Set unmodifiableInterceptorHandlers = Collections.unmodifiableSet(interceptorHandlers) ;
+    
+    /**
+     * Register the header handler against the specified qualified name.
+     * @param headerName The qualified name of the header.
+     * @param handler The header handler.
+     */
+    public void registerHeaderHandler(final QName headerName, final HeaderHandler handler)
+    {
+        headerHandlers.put(headerName, handler) ;
+    }
+
+    /**
+     * Remove the header handler for the specified qualified name.
+     * @param headerName The qualified name of the header.
+     */
+    public void removeHeaderHandler(final QName headerName)
+    {
+        headerHandlers.remove(headerName) ;
+    }
+
+    /**
+     * Get the header handler associated with the specified header name.
+     * @param headerName The name of the header.
+     * @return The header handler or null if not recognised.
+     */
+    public HeaderHandler getHeaderHandler(final QName headerName)
+    {
+        return (HeaderHandler)headerHandlers.get(headerName) ;
+    }
+    
+    /**
+     * Get the header handler map.
+     * @return The header handler map.
+     */
+    public Map getHeaderHandlers()
+    {
+        return unmodifiableHeaderHandlers ;
+    }
+    
+    /**
+     * Register the body handler against the specified qualified name.
+     * @param bodyName The qualified name of the body.
+     * @param handler The body handler.
+     */
+    public void registerBodyHandler(final QName bodyName, final BodyHandler handler)
+    {
+        bodyHandlers.put(bodyName, handler) ;
+    }
+    
+    /**
+     * Remove the body handler for the specified qualified name.
+     * @param bodyName The qualified name of the body.
+     */
+    public void removeBodyHandler(final QName bodyName)
+    {
+        bodyHandlers.remove(bodyName) ;
+    }
+
+    /**
+     * Get the body handler associated with the specified body name.
+     * @param bodyName The name of the body.
+     * @return The body handler or null if not recognised.
+     */
+    public BodyHandler getBodyHandler(final QName bodyName)
+    {
+        return (BodyHandler)bodyHandlers.get(bodyName) ;
+    }
+    
+    /**
+     * Register a handler to process SOAP faults.
+     * @param faultHandler The fault handler.
+     */
+    public void registerFaultHandler(final BodyHandler faultHandler)
+    {
+        this.faultHandler = faultHandler ;
+    }
+    
+    /**
+     * Get the fault handler.
+     * @return The fault handler.
+     */
+    public BodyHandler getFaultHandler()
+    {
+        return faultHandler ;
+    }
+    
+    /**
+     * Register the specified interceptor handler
+     * @param interceptorHandler The interceptor handler.
+     */
+    public void registerInterceptorHandler(final InterceptorHandler interceptorHandler)
+    {
+        interceptorHandlers.add(interceptorHandler) ;
+    }
+    
+    /**
+     * Remove the specified interceptor handler
+     * @param interceptorHandler The interceptor handler.
+     */
+    public void removeInterceptorHandler(final InterceptorHandler interceptorHandler)
+    {
+        interceptorHandlers.remove(interceptorHandler) ;
+    }
+    
+    /**
+     * Get the interceptor handlers.
+     * @return the interceptor handlers.
+     */
+    public Set getInterceptorHandlers()
+    {
+        return unmodifiableInterceptorHandlers ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HeaderHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HeaderHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/HeaderHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Interface for header handlers.
+ * @author kevin
+ */
+public interface HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault ;
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException ;
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault ;
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorChain.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorChain.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorChain.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Interface for the interceptor chain.
+ * @author kevin
+ */
+public interface InterceptorChain
+{
+    /**
+     * Invoke the next interceptor in the chain.
+     * @param soapService The SOAP service being called.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invokeNext(final SoapService soapService,
+        final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action,
+        final XMLStreamReader in)
+        throws XMLStreamException, SoapFault ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/InterceptorHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Interface for interceptors handlers.
+ * @author kevin
+ */
+public interface InterceptorHandler
+{
+    /**
+     * Invoke the interceptor.
+     * @param chain The interceptor chain.
+     * @param soapService The SOAP service being called.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final InterceptorChain chain, final SoapService soapService,
+        final SoapDetails soapDetails, final MessageContext context, final MessageContext responseContext,
+        final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/MessageContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/MessageContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/MessageContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,98 @@
+/*
+ * 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 java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The context of a SOAP message.
+ * @author kevin
+ */
+public class MessageContext
+{
+    /**
+     * The properties associated with the current context.
+     */
+    private Map properties ;
+    /**
+     * The message scheme.
+     */
+    private String scheme ;
+    
+    /**
+     * The default constructor.
+     */
+    public MessageContext()
+    {
+    }
+    
+    /**
+     * Set the property in the message context. 
+     * @param key The property key.
+     * @param value The property value.
+     */
+    public void setProperty(final Object key, final Object value)
+    {
+        getPropertyMap().put(key, value) ;
+    }
+    
+    /**
+     * Get the property from the message context
+     * @param key The property key.
+     * @return The property value or null if not set.
+     */
+    public Object getProperty(final Object key)
+    {
+        return (properties == null ? null : properties.get(key)) ;
+    }
+    
+    /**
+     * Get the message scheme.
+     * @return The message scheme.
+     */
+    public String getScheme()
+    {
+        return scheme ;
+    }
+    
+    /**
+     * Set the message scheme.
+     * @param scheme The message scheme.
+     */
+    public void setScheme(final String scheme)
+    {
+        this.scheme = scheme ;
+    }
+    
+    /**
+     * Get the property map.
+     * @return The property map.
+     */
+    private Map getPropertyMap()
+    {
+        if (properties == null)
+        {
+            properties = new HashMap() ;
+        }
+        return properties ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapBody.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapBody.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapBody.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices;
+
+import com.arjuna.webservices.stax.NamedElement;
+
+/**
+ * Class representing a SOAP body
+ * @author kevin
+ */
+public class SoapBody
+{
+    /**
+     * The SOAP body contents.
+     */
+    private NamedElement contents ;
+    /**
+     * The associated action.
+     */
+    private String action ;
+    
+    /**
+     * Default constructor. 
+     */
+    public SoapBody()
+    {
+    }
+    
+    /**
+     * Construct a SOAP body with the specified contents and action.
+     * @param contents The SOAP body contents.
+     */
+    public SoapBody(final NamedElement contents)
+    {
+        this(contents, null) ;
+    }
+    
+    /**
+     * Construct a SOAP body with the specified contents and action.
+     * @param contents The SOAP body contents.
+     * @param action The SOAP body action.
+     */
+    public SoapBody(final NamedElement contents, final String action)
+    {
+        this.contents = contents ;
+        this.action = action ;
+    }
+    
+    /**
+     * Get the SOAP body contents.
+     * @return The SOAP body contents.
+     */
+    public NamedElement getContents()
+    {
+        return contents ;
+    }
+    
+    /**
+     * Set the SOAP body contents.
+     * @param contents The SOAP body contents.
+     */
+    public void setContents(final NamedElement contents)
+    {
+        this.contents = contents ;
+    }
+    
+    /**
+     * Get the body action.
+     * @return The body action.
+     */
+    public String getAction()
+    {
+        return action ;
+    }
+    
+    /**
+     * Set the body action.
+     * @param action The body action.
+     */
+    public void setAction(final String action)
+    {
+        this.action = action ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices;
+
+import java.io.IOException;
+
+
+/**
+ * Interface for soap client processors.
+ * @author kevin
+ */
+public interface SoapClient
+{
+    /**
+     * Invoke a request on a service.
+     * @param request The request object.
+     * @param url The destination URL.
+     * @return The response object.
+     * @throws SoapFault For errors processing the request.
+     * @throws IOException for processing errors.
+     */
+    public SoapMessage invoke(final SoapMessage request, final String url)
+        throws SoapFault, IOException ;
+    
+    /**
+     * Invoke a one way request on a service.
+     * @param request The request object.
+     * @param url The destination URL.
+     * @throws SoapFault For errors processing the request.
+     * @throws IOException for processing errors.
+     */
+    public void invokeOneWay(final SoapMessage request, final String url)
+        throws SoapFault, IOException ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFault.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFault.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFault.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,413 @@
+/*
+ * 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 java.io.PrintWriter;
+import java.io.StringWriter;
+
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.stax.TextElement;
+
+/**
+ * Class representing a SOAP Fault
+ * @author kevin
+ */
+public class SoapFault extends Exception
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+    private static final long serialVersionUID = -5256882376188382002L ;
+    
+    /**
+     * The SOAP fault type.
+     */
+    private SoapFaultType soapFaultType ;
+    /**
+     * The SOAP fault subcode.
+     */
+    private QName subcode ;
+    /**
+     * The SOAP fault sub subcode.
+     */
+    private QName subSubcode ;
+    /**
+     * The SOAP fault reason.
+     */
+    private String reason ;
+    /**
+     * The SOAP fault node ;
+     */
+    private String node ;
+    /**
+     * The SOAP fault role.
+     */
+    private String role ;
+    /**
+     * The detail element.
+     */
+    private NamedElement detail ;
+    /**
+     * The header elements.
+     */
+    private NamedElement[] headerElements ;
+    /**
+     * The header fault flag.
+     */
+    private boolean headerFault ;
+    /**
+     * The associated action.
+     */
+    private String action ;
+    
+    /**
+     * Default constructor. 
+     */
+    public SoapFault()
+    {
+    }
+    
+    /**
+     * Construct a SOAP fault based on a throwable.
+     * @param th The throwable.
+     */
+    public SoapFault(final Throwable th)
+    {
+        this(SoapFaultType.FAULT_RECEIVER, null, th.toString(),
+            new NamedElement(null, new TextElement(generateStackTrace(th))), null) ;
+    }
+    
+    /**
+     * Construct a SOAP header fault based on a throwable.
+     * @param th The throwable.
+     * @param headerElements The header elements.
+     */
+    public SoapFault(final Throwable th, final NamedElement[] headerElements)
+    {
+        this(SoapFaultType.FAULT_RECEIVER, null, th.toString(),
+            null, headerElements) ;
+    }
+    
+    /**
+     * Create a custom SOAP fault.
+     * @param soapFaultType the soap fault type.
+     * @param subcode The fault subcode.
+     * @param reason The fault reason.
+     */
+    public SoapFault(final SoapFaultType soapFaultType, final QName subcode, final String reason)
+    {
+        this(soapFaultType, subcode, reason, null, null) ;
+    }
+    
+    /**
+     * Create a custom SOAP fault.
+     * @param soapFaultType the soap fault type.
+     * @param subcode The fault subcode.
+     * @param reason The fault reason.
+     * @param headerElements The header elements.
+     */
+    public SoapFault(final SoapFaultType soapFaultType, final QName subcode, final String reason, final NamedElement[] headerElements)
+    {
+        this(soapFaultType, subcode, reason, null, headerElements) ;
+    }
+    
+    /**
+     * Create a custom SOAP fault.
+     * @param soapFaultType the soap fault type.
+     * @param subcode The fault subcode.
+     * @param reason The fault reason.
+     * @param detail The fault detail.
+     */
+    public SoapFault(final SoapFaultType soapFaultType, final QName subcode, final String reason, final NamedElement detail)
+    {
+        this(soapFaultType, subcode, reason, detail, null) ;
+    }
+    
+    /**
+     * Create a custom SOAP fault.
+     * @param soapFaultType the soap fault type.
+     * @param reason The fault reason.
+     */
+    public SoapFault(final SoapFaultType soapFaultType, final String reason)
+    {
+        this(soapFaultType, null, reason, null, null) ;
+    }
+    
+    /**
+     * Create a custom SOAP fault.
+     * @param soapFaultType the soap fault type.
+     * @param reason The fault reason.
+     * @param detail The fault detail.
+     */
+    public SoapFault(final SoapFaultType soapFaultType,
+        final String reason, final NamedElement detail)
+    {
+        this(soapFaultType, null, reason, detail, null) ;
+    }
+    
+    /**
+     * Create a custom SOAP fault.
+     * @param soapFaultType the soap fault type.
+     * @param subcode The fault subcode.
+     * @param reason The fault reason.
+     * @param detail The fault detail.
+     * @param headerElements The fault header elements.
+     */
+    public SoapFault(final SoapFaultType soapFaultType, final QName subcode,
+        final String reason, final NamedElement detail, final NamedElement[] headerElements)
+    {
+        this.soapFaultType = soapFaultType ;
+        this.subcode = subcode ;
+        this.reason = reason ;
+        this.detail = detail ;
+        this.headerElements = headerElements ;
+    }
+    
+    /**
+     * Get the SOAP fault type.
+     * @return The SOAP fault type.
+     */
+    public SoapFaultType getSoapFaultType()
+    {
+        return soapFaultType ;
+    }
+    
+    /**
+     * Set the SOAP fault type.
+     * @param soapFaultType The SOAP fault type.
+     */
+    public void setSoapFaultType(final SoapFaultType soapFaultType)
+    {
+        this.soapFaultType = soapFaultType ;
+    }
+    
+    /**
+     * Get the SOAP fault subcode.
+     * @return The SOAP fault subcode.
+     */
+    public QName getSubcode()
+    {
+        return subcode ;
+    }
+    
+    /**
+     * Set the SOAP fault subcode.
+     * @param subcode The SOAP fault subcode.
+     */
+    public void setSubcode(final QName subcode)
+    {
+        this.subcode = subcode ;
+    }
+    
+    /**
+     * Get the SOAP fault sub subcode.
+     * @return The SOAP fault sub subcode.
+     */
+    public QName getSubSubcode()
+    {
+        return subSubcode ;
+    }
+    
+    /**
+     * Set the SOAP fault sub subcode.
+     * @param subSubcode The SOAP fault sub subcode.
+     */
+    public void setSubSubcode(final QName subSubcode)
+    {
+        this.subSubcode = subSubcode ;
+    }
+    
+    /**
+     * Get the SOAP fault reason.
+     * @return The SOAP fault reason.
+     */
+    public String getReason()
+    {
+        return reason ;
+    }
+    
+    /**
+     * Set the SOAP fault reason.
+     * @param reason The SOAP fault reason.
+     */
+    public void setReason(final String reason)
+    {
+        this.reason = reason ;
+    }
+    
+    /**
+     * Get the SOAP fault node.
+     * @return The SOAP fault node.
+     */
+    public String getNode()
+    {
+        return node ;
+    }
+    
+    /**
+     * Set the SOAP fault node.
+     * @param node The SOAP fault node.
+     */
+    public void setNode(final String node)
+    {
+        this.node = node ;
+    }
+    
+    /**
+     * Get the SOAP fault role.
+     * @return The SOAP fault role.
+     */
+    public String getRole()
+    {
+        return role ;
+    }
+    
+    /**
+     * Set the SOAP fault role.
+     * @param role The SOAP fault role.
+     */
+    public void setRole(final String role)
+    {
+        this.role = role ;
+    }
+    
+    /**
+     * Get the SOAP fault detail.
+     * @return The SOAP fault detail.
+     */
+    public NamedElement getDetail()
+    {
+        return detail ;
+    }
+    
+    /**
+     * Set the SOAP fault detail.
+     * @param detail The SOAP fault detail.
+     */
+    public void setDetail(final NamedElement detail)
+    {
+        this.detail = detail ;
+    }
+    
+    /**
+     * Get the SOAP fault header elements.
+     * @return The SOAP fault header elements.
+     */
+    public NamedElement[] getHeaderElements()
+    {
+        return headerElements ;
+    }
+    
+    /**
+     * Set the SOAP fault header elements.
+     * @param headerElements The SOAP fault header elements.
+     */
+    public void setHeaderElements(final NamedElement[] headerElements)
+    {
+        this.headerElements = headerElements ;
+    }
+    
+    /**
+     * Is this a fault from a SOAP header?
+     * @return true if generated by a SOAP header, false otherwise.
+     */
+    public boolean isHeaderFault()
+    {
+        return headerFault ;
+    }
+
+    /**
+     * Set the header fault flag.
+     * @param headerFault true if generated by a SOAP header, false otherwise.
+     */
+    public void setHeaderFault(final boolean headerFault)
+    {
+        this.headerFault = headerFault ;
+    }
+    
+    /**
+     * Get the fault action.
+     * @return The fault action.
+     */
+    public String getAction()
+    {
+        return action ;
+    }
+    
+    /**
+     * Set the fault action.
+     * @param action The fault action.
+     */
+    public void setAction(final String action)
+    {
+        this.action = action ;
+    }
+    
+    /**
+     * Get a message describing this fault.
+     * @return The fault message.
+     */
+    public String getMessage()
+    {
+        final StringBuffer buffer = new StringBuffer(soapFaultType.getValue()) ;
+        if (subcode != null)
+        {
+            buffer.append('[') ;
+            buffer.append(subcode) ;
+            if (subSubcode != null)
+            {
+                buffer.append(':') ;
+                buffer.append(subSubcode) ;
+            }
+            buffer.append(']') ;
+        }
+        if (reason != null)
+        {
+            buffer.append('[') ;
+            buffer.append(reason) ;
+            buffer.append(']') ;
+        }
+        return buffer.toString() ;
+    }
+    
+    /**
+     * Generate a stack trace from a throwable.
+     * @param th The throwable.
+     * @return The stack trace.
+     */
+    private static String generateStackTrace(final Throwable th)
+    {
+        final StringWriter writer = new StringWriter() ;
+        final PrintWriter pw = new PrintWriter(writer) ;
+        th.printStackTrace(pw) ;
+        if (!pw.checkError())
+        {
+            pw.close() ;
+            return writer.toString() ;
+        }
+        else
+        {
+            return null ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFaultType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFaultType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapFaultType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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;
+
+import java.text.MessageFormat;
+import java.util.Map;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.util.Enumerated;
+import com.arjuna.webservices.util.InvalidEnumerationException;
+
+/**
+ * Class representing the soap fault type.
+ * @author kevin
+ */
+public class SoapFaultType extends Enumerated
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+    private static final long serialVersionUID = 6597369531649776751L ;
+    
+    /**
+     * The version mismatch type.
+     */
+    public static final SoapFaultType FAULT_VERSION_MISMATCH = new SoapFaultType("VersionMismatch") ;
+    /**
+     * The must understand type.
+     */
+    public static final SoapFaultType FAULT_MUST_UNDERSTAND = new SoapFaultType("MustUnderstand") ;
+    /**
+     * The data encoding unknown type.
+     */
+    public static final SoapFaultType FAULT_DATA_ENCODING_UNKNOWN = new SoapFaultType("DataEncodingUnknown") ;
+    /**
+     * The sender type.
+     */
+    public static final SoapFaultType FAULT_SENDER = new SoapFaultType("Sender") ;
+    /**
+     * The receiver type.
+     */
+    public static final SoapFaultType FAULT_RECEIVER = new SoapFaultType("Receiver") ;
+    
+    /**
+     * The map of enumerations.
+     */
+    private static final Map ENUM_MAP = generateMap(new Enumerated[] {
+        FAULT_VERSION_MISMATCH, FAULT_MUST_UNDERSTAND, FAULT_DATA_ENCODING_UNKNOWN,
+        FAULT_SENDER, FAULT_RECEIVER
+    }) ;
+    
+    /**
+     * Construct the state enumeration with the specified value.
+     * @param localName The localName of the state enumeration.
+     */
+    private SoapFaultType(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 InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toState((String)value) ;
+    }
+    
+    /**
+     * Return the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the value is not valid.
+     * @message com.arjuna.webservices.SoapFaultType_1 [com.arjuna.webservices.SoapFaultType_1] - Invalid fault type enumeration: {0}
+     */
+    public static SoapFaultType toState(final String value)
+        throws InvalidEnumerationException
+    {
+        final Object state = ENUM_MAP.get(value) ;
+        if (state == null)
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.SoapFaultType_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (SoapFaultType)state ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessage.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessage.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessage.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Interface representing a SOAP response.
+ * @author kevin
+ */
+public interface SoapMessage
+{
+    /**
+     * Does the response represent a fault?
+     * @return true if a fault, false otherwise.
+     */
+    public boolean isFault() ;
+    /**
+     * Get the action URI for the response.
+     * @return The action URI for the response.
+     */
+    public String getAction() ;
+    
+    /**
+     * Output the response to the output stream.
+     * @param writer The output writer.
+     * @throws IOException If errors occur during output.
+     */
+    public void output(final Writer writer)
+        throws IOException ;
+    
+    /**
+     * Get the SOAP details associated with the message.
+     * @return The SOAP details.
+     */
+    public SoapDetails getSoapDetails() ;
+    
+    /**
+     * Get the SOAP service associated with the message.
+     * @return The SOAP service or null if not known.
+     */
+    public SoapService getSoapService() ;
+    
+    /**
+     * Get the message context associated with this message.
+     * @return The message context or null if not known.
+     */
+    public MessageContext getMessageContext() ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessageLogging.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessageLogging.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapMessageLogging.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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 java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Class providing SOAP message logging.
+ * @author kevin
+ */
+public class SoapMessageLogging
+{
+    /**
+     * The thread local message log.
+     */
+    private static final ThreadLocal MESSAGE_LOG = new ThreadLocal() ;
+    /**
+     * The thread local message log enabled flag.
+     */
+    private static final ThreadLocal MESSAGE_LOG_ENABLED = new ThreadLocal() {
+        protected Object initialValue() { return Boolean.FALSE; }
+    };
+    
+    /**
+     * Clear the log for the current thread.
+     */
+    public static void clearThreadLog()
+    {
+        MESSAGE_LOG.set(null) ;
+    }
+    
+    /**
+     * Get the thread log.
+     * @return The thread log.
+     */
+    public static String[] getThreadLog()
+    {
+        final Object value = MESSAGE_LOG.get() ;
+        if (value == null)
+        {
+            return null ;
+        }
+        final List list = (List)value ;
+        return (String[]) list.toArray(new String[list.size()]) ;
+    }
+    
+    /**
+     * Append a message to the thread log.
+     * @param message The thread message to append.
+     */
+    public static void appendThreadLog(final String message)
+    {
+        final Object value = MESSAGE_LOG.get() ;
+        final List list ;
+        if (value == null)
+        {
+            list = new ArrayList() ;
+            MESSAGE_LOG.set(list) ;
+        }
+        else
+        {
+            list = (List)value ;
+        }
+        list.add(message) ;
+    }
+    
+    /**
+     * Is the thread logging enabled?
+     * @return true if enabled, false otherwise.
+     */
+    public static boolean isThreadLogEnabled()
+    {
+        return ((Boolean)MESSAGE_LOG_ENABLED.get()).booleanValue() ;
+    }
+    
+    /**
+     * Set the thread log enable flag.
+     * @param isEnabled True if enabled, false otherwise.
+     */
+    public static void setThreadLogEnabled(final boolean isEnabled)
+    {
+        MESSAGE_LOG_ENABLED.set(isEnabled ? Boolean.TRUE : Boolean.FALSE) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices;
+
+import java.io.IOException;
+import java.io.Reader;
+
+/**
+ * Interface for soap version processors.
+ * @author kevin
+ */
+public interface SoapProcessor
+{
+    /**
+     * Process the input stream and generate a response.
+     * @param messageContext The message context for the request.
+     * @param responseMessageContext The message context for the response.
+     * @param action The transport SOAP action.
+     * @param reader The input reader.
+     * @return The SOAP response.
+     * @throws IOException For errors reading the input stream.
+     */
+    public SoapMessage process(final MessageContext messageContext, final MessageContext responseMessageContext,
+        final String action, final Reader reader)
+        throws IOException ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapRegistry.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapRegistry.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapRegistry.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,247 @@
+/*
+ * 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 java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * The registry of SOAP service providers, SOAP services and SOAP clients .
+ * @author kevin
+ */
+public class SoapRegistry
+{
+    /**
+     * The registry singleton.
+     */
+    private static final SoapRegistry REGISTRY = new SoapRegistry() ;
+    
+    /**
+     * The SOAP service provider registry.
+     */
+    private final Map soapServiceProviderRegistry = new TreeMap() ;
+    /**
+     * The SOAP service registry.
+     */
+    private final Map soapServiceRegistry = new TreeMap() ;
+    /**
+     * The SOAP client registry.
+     */
+    private final Map soapClientRegistry = new TreeMap() ;
+    
+    /**
+     * Get the service registry.
+     * @return The service registry.
+     */
+    public static SoapRegistry getRegistry()
+    {
+        return REGISTRY ;
+    }
+    
+    /**
+     * Register the specified service.
+     * @param scheme The service scheme.
+     * @param provider The service provider.
+     */
+    public void registerSoapServiceProvider(final String scheme, final SoapServiceEndpointProvider provider)
+    {
+        synchronized(soapServiceProviderRegistry)
+        {
+            soapServiceProviderRegistry.put(scheme, provider) ;
+        }
+    }
+    
+    /**
+     * Remove the specified service.
+     * @param scheme The service scheme.
+     */
+    public void removeSoapServiceProvider(final String scheme)
+    {
+        synchronized(soapServiceProviderRegistry)
+        {
+            soapServiceProviderRegistry.remove(scheme) ;
+        }
+    }
+    
+    /**
+     * Register the specified client.
+     * @param scheme The client scheme.
+     * @param client The client.
+     */
+    public void registerSoapClient(final String scheme, final SoapClient client)
+    {
+        synchronized(soapClientRegistry)
+        {
+            soapClientRegistry.put(scheme, client) ;
+        }
+    }
+
+    /**
+     * Get the SOAP client for the specified scheme.
+     * @param scheme The addressing scheme.
+     * @return The SOAP client or null if not known.
+     */
+    public SoapClient getSoapClient(final String scheme)
+    {
+        synchronized(soapClientRegistry)
+        {
+            return (SoapClient)soapClientRegistry.get(scheme) ;
+        }
+    }
+    
+    /**
+     * Remove the specified client.
+     * @param scheme The client scheme.
+     */
+    public void removeSoapClient(final String scheme)
+    {
+        synchronized(soapClientRegistry)
+        {
+            soapClientRegistry.remove(scheme) ;
+        }
+    }
+    
+    /**
+     * Register the specified service.
+     * @param serviceName The unique name of the service.
+     * @param soapService The service instance.
+     */
+    public void registerSoapService(final String serviceName, final SoapService soapService)
+    {
+        synchronized(soapServiceRegistry)
+        {
+            soapServiceRegistry.put(serviceName, soapService) ;
+        }
+    }
+
+    /**
+     * Get the SOAP service for the specified service.
+     * @param serviceName The name of the service.
+     * @return The SOAP service or null if not known.
+     */
+    public SoapService getSoapService(final String serviceName)
+    {
+        synchronized(soapServiceRegistry)
+        {
+            return (SoapService)soapServiceRegistry.get(serviceName) ;
+        }
+    }
+    
+    /**
+     * Remove the specified service.
+     * @param serviceName The unique name of the service.
+     */
+    public void removeSoapService(final String serviceName)
+    {
+        synchronized(soapServiceRegistry)
+        {
+            soapServiceRegistry.remove(serviceName) ;
+        }
+    }
+    
+    /**
+     * Get the service URI.
+     * @param scheme The addressing scheme.
+     * @param serviceName The service name.
+     * @return The service URI or null if not registered.
+     */
+    public String getServiceURI(final String scheme, final String serviceName)
+    {
+        final SoapServiceEndpointProvider soapServiceProvider ;
+        synchronized(soapServiceRegistry)
+        {
+            soapServiceProvider = (SoapServiceEndpointProvider)soapServiceProviderRegistry.get(scheme) ;
+        }
+        if (soapServiceProvider != null)
+        {
+            return soapServiceProvider.getServiceURI(scheme, serviceName) ;
+        }
+        return null ;
+    }
+    
+    /**
+     * Get the service URI.
+     * @param serviceName The service name.
+     * @return The service URI or null if not registered.
+     */
+    public String getServiceURI(final String serviceName)
+    {
+        synchronized(soapServiceRegistry)
+        {
+            final Iterator entryIter = soapServiceProviderRegistry.entrySet().iterator() ;
+            while(entryIter.hasNext())
+            {
+                final Map.Entry entry = (Map.Entry)entryIter.next() ;
+                final String entryScheme = (String)entry.getKey() ;
+                final SoapServiceEndpointProvider soapServiceProvider = (SoapServiceEndpointProvider)entry.getValue() ;
+                final String uri = soapServiceProvider.getServiceURI(entryScheme, serviceName) ;
+                if (uri != null)
+                {
+                    return uri ;
+                }
+            }
+        }
+        return null ;
+    }
+    
+    /**
+     * Get the service URI.
+     * @param messageContext The message context.
+     * @param serviceName The service name.
+     * @return The service URI or null if not registered.
+     */
+    public String getServiceURI(final MessageContext messageContext, final String serviceName)
+    {
+        final String scheme = messageContext.getScheme() ;
+        final SoapServiceEndpointProvider soapServiceProvider ;
+        synchronized(soapServiceRegistry)
+        {
+            soapServiceProvider = (SoapServiceEndpointProvider)soapServiceProviderRegistry.get(scheme) ;
+        }
+        if (soapServiceProvider != null)
+        {
+            return soapServiceProvider.getServiceURI(messageContext, serviceName) ;
+        }
+        else
+        {
+            return null ;
+        }
+    }
+    
+    /**
+     * Get the scheme from a URL.
+     * @param url The URL.
+     * @return The scheme.
+     */
+    public String getScheme(final String url)
+    {
+        final int separatorIndex = url.indexOf(':') ;
+        if (separatorIndex >= 0)
+        {
+            return url.substring(0, separatorIndex) ;
+        }
+        else
+        {
+            return url ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,147 @@
+/*
+ * 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 java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.soap.Soap11Details;
+import com.arjuna.webservices.soap.Soap12Details;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.soap.SoapParser;
+import com.arjuna.webservices.soap.SoapProcessorImpl;
+
+/**
+ * Class responsible for handling SOAP services.
+ * @author kevin
+ */
+public class SoapService
+{
+    /**
+     * The soap 1.1 processor.
+     */
+    private final SoapProcessor soap11Processor = new SoapProcessorImpl(this, new Soap11Details()) ;
+    /**
+     * The soap 1.2 processor.
+     */
+    private final SoapProcessor soap12Processor = new SoapProcessorImpl(this, new Soap12Details()) ;
+    
+    /**
+     * The registry of handlers associated with this service.
+     */
+    private final HandlerRegistry handlerRegistry ;
+    
+    /**
+     * Initialise the SOAP service.
+     * @param handlerRegistry The handler registry for this service.
+     */
+    public SoapService(final HandlerRegistry handlerRegistry)
+    {
+        this.handlerRegistry = handlerRegistry ;
+    }
+
+    /**
+     * Get the header handler associated with the specified header name.
+     * @param headerName The name of the header.
+     * @return The header handler or null if not recognised.
+     */
+    public HeaderHandler getHeaderHandler(final QName headerName)
+    {
+        return handlerRegistry.getHeaderHandler(headerName) ;
+    }
+    
+    /**
+     * Get the header handlers.
+     * @return The header handlers.
+     */
+    public Map getHeaderHandlers()
+    {
+        return handlerRegistry.getHeaderHandlers() ;
+    }
+
+    /**
+     * Get the body handler associated with the specified body name.
+     * @param bodyName The name of the body.
+     * @return The body handler or null if not recognised.
+     */
+    public BodyHandler getBodyHandler(final QName bodyName)
+    {
+        return handlerRegistry.getBodyHandler(bodyName) ;
+    }
+
+    /**
+     * Get the fault handler for the service.
+     * @return The fault handler for the service.
+     */
+    public BodyHandler getFaultHandler()
+    {
+        return handlerRegistry.getFaultHandler() ;
+    }
+    
+    /**
+     * Get the interceptor handlers.
+     * @return The interceptor handlers.
+     */
+    public Set getInterceptorHandlers()
+    {
+        return handlerRegistry.getInterceptorHandlers() ;
+    }
+
+    /**
+     * Return the SOAP 1.1 processor.
+     * @return The SOAP 1.1 processor.
+     */
+    public SoapProcessor getSOAP11Processor()
+    {
+        return soap11Processor ;
+    }
+
+    /**
+     * Return the SOAP 1.2 processor.
+     * @return The SOAP 1.2 processor.
+     */
+    public SoapProcessor getSOAP12Processor()
+    {
+        return soap12Processor ;
+    }
+
+    /**
+     * Handle the processing of the SOAP request.
+     * @param messageContext The current message context.
+     * @param messageResponseContext The current message response context.
+     * @param action The transport SOAP action.
+     * @param streamReader The XML stream reader.
+     * @param soapDetails The SOAP details.
+     * @return The SOAP response.
+     * @throws XMLStreamException For XML parsing errors.
+     * @throws SoapFault For SOAP processing errors.
+     */
+    public SoapBody parse(final MessageContext messageContext, final MessageContext messageResponseContext,
+        final String action, final XMLStreamReader streamReader, final SoapDetails soapDetails)
+        throws XMLStreamException, SoapFault
+    {
+        return SoapParser.parse(messageContext, messageResponseContext, action, streamReader, this, soapDetails) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapServiceEndpointProvider.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapServiceEndpointProvider.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/SoapServiceEndpointProvider.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,45 @@
+/*
+ * 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;
+
+/**
+ * The interface for a SOAP service endpoint provider.
+ * @author kevin
+ */
+public interface SoapServiceEndpointProvider
+{
+    /**
+     * Get the URI of a service supported by this endpoint provider.
+     * @param messageContext The message context.
+     * @param serviceName The service name.
+     * @return The service URI or null if not known.
+     */
+    public String getServiceURI(final MessageContext messageContext,
+        final String serviceName) ;
+    
+    /**
+     * Get the URI of a service supported by this endpoint provider.
+     * @param scheme The addressing scheme of the endpoint provider.
+     * @param serviceName The service name.
+     * @return The service URI or null if not known.
+     */
+    public String getServiceURI(final String scheme, final String serviceName) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/BaseXMLStreamWriter.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/BaseXMLStreamWriter.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/BaseXMLStreamWriter.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,250 @@
+/*
+ * 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.adapters;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * The base XMLStreamWriter.
+ * @author kevin
+ * 
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_1 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_1] - setNamespaceContext unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_2 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_2] - writeComment unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_3 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_3] - writeProcessingInstruction unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_4 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_4] - writeProcessingInstruction unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_5 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_5] - writeEntityRef unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_6 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_6] - writeDTD unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_7 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_7] - writeStartDocument unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_8 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_8] - writeStartDocument unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_9 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_9] - writeStartDocument unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_10 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_10] - writeEndDocument unsupported
+ * @message com.arjuna.webservices.adapters.BaseXMLStreamWriter_11 [com.arjuna.webservices.adapters.BaseXMLStreamWriter_11] - close unsupported
+ */
+public abstract class BaseXMLStreamWriter implements XMLStreamWriter
+{
+    /**
+     * The current namespace context.
+     */
+    private NamespaceContextImpl currentNamespaceContext = new NamespaceContextImpl() ;
+
+    /**
+     * Get the uri associated with the prefix.
+     * @param prefix The prefix.
+     * @return The prefix URI.
+     */
+    public String getPrefix(final String prefix)
+        throws XMLStreamException
+    {
+        return currentNamespaceContext.getPrefix(prefix) ;
+    }
+
+    /**
+     * Set the prefix.
+     * @param prefix The prefix.
+     * @param uri The uri.
+     */
+    public void setPrefix(final String prefix, final String uri)
+        throws XMLStreamException
+    {
+        currentNamespaceContext.setPrefix(prefix, uri) ;
+    }
+
+    /**
+     * Set the default namespace.
+     * @param uri The default namespace uri.
+     */
+    public void setDefaultNamespace(final String uri)
+        throws XMLStreamException
+    {
+        currentNamespaceContext.setDefaultNamespace(uri) ;
+    }
+
+    /**
+     * Get the current namespace context.
+     * @return The namespace context.
+     */
+    public NamespaceContext getNamespaceContext()
+    {
+        return currentNamespaceContext ;
+    }
+    
+    /**
+     * Set the namespace context.
+     * @param namespaceContext The namespace context.
+     */
+    public void setNamespaceContext(final NamespaceContext namespaceContext)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_1")) ;
+    }
+    
+    /**
+     * Push the current namespace context.
+     */
+    protected void pushNamespaceContext()
+    {
+        currentNamespaceContext = new NamespaceContextImpl(currentNamespaceContext) ;
+    }
+    
+    /**
+     * Pop the current namespace context.
+     */
+    protected void popNamespaceContext()
+    {
+        currentNamespaceContext = currentNamespaceContext.getParent() ;
+    }
+    
+    /**
+     * Write an XML comment to the stream.
+     * @param comment The XML comment to write.
+     */
+    public void writeComment(final String comment)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_2")) ;
+    }
+
+    /**
+     * Write a Processing Instruction to the stream.
+     * @param target The Processing Instruction target.
+     */
+    public void writeProcessingInstruction(final String target)
+            throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_3")) ;
+    }
+
+    /**
+     * Write a Processing Instruction to the stream.
+     * @param target The Processing Instruction target.
+     * @param data The Processing Instruction data.
+     */
+    public void writeProcessingInstruction(final String target, final String data)
+            throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_4")) ;
+    }
+
+    /**
+     * Write an Entity Reference to the stream.
+     * @param name The entity reference name.
+     */
+    public void writeEntityRef(final String name)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_5")) ;
+    }
+
+    /**
+     * Write a DTD.
+     * @param dtd The DTD.
+     */
+    public void writeDTD(final String dtd)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_6")) ;    }
+
+    /**
+     * Write the XML encoding.
+     */
+    public void writeStartDocument()
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_7")) ;
+    }
+
+    /**
+     * Write the XML encoding.
+     * @param version The XML version.
+     */
+    public void writeStartDocument(final String version)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_8")) ;
+    }
+
+    /**
+     * Write the XML encoding.
+     * @param encoding The XML encoding.
+     * @param version The XML version.
+     */
+    public void writeStartDocument(final String encoding, final String version)
+            throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_9")) ;
+    }
+
+    /**
+     * Write an end document.
+     */
+    public void writeEndDocument()
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_10")) ;
+    }
+
+    /**
+     * Get the value of the specified property.
+     * @param name The property name.
+     * @return The property value.
+     */
+    public Object getProperty(final String name)
+        throws IllegalArgumentException
+    {
+        return null ;
+    }
+
+    /**
+     * Close the writer.
+     */
+    public void close()
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.BaseXMLStreamWriter_11")) ;
+    }
+
+    /**
+     * Flush the writer.
+     */
+    public void flush()
+        throws XMLStreamException
+    {
+        // Do nothing
+    }
+
+    /**
+     * Normalise the namespace.
+     * @param namespace The namespace.
+     * @return The normalised namespace.
+     */
+    protected String normaliseNamespace(final String namespace)
+    {
+        if ((namespace == null) || (namespace.length() > 0))
+        {
+            return namespace ;
+        }
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamReader.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamReader.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamReader.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,725 @@
+/*
+ * 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.adapters;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.Text;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+
+/**
+ * XMLStreamReader for reading from a DOM tree.
+ * @author kevin
+ * 
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_1 [com.arjuna.webservices.adapters.DOMXMLStreamReader_1] - End of stream
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_2 [com.arjuna.webservices.adapters.DOMXMLStreamReader_2] - Unexpected child node: {0}
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_3 [com.arjuna.webservices.adapters.DOMXMLStreamReader_3] - Unexpected type: [0}
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_4 [com.arjuna.webservices.adapters.DOMXMLStreamReader_4] - Unexpected type: {0}
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_5 [com.arjuna.webservices.adapters.DOMXMLStreamReader_5] - Unexpected event type
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_6 [com.arjuna.webservices.adapters.DOMXMLStreamReader_6] - Unsupported operation
+ * @message com.arjuna.webservices.adapters.DOMXMLStreamReader_7 [com.arjuna.webservices.adapters.DOMXMLStreamReader_7] - Unsupported operation
+ */
+public class DOMXMLStreamReader implements XMLStreamReader
+{
+    /**
+     * The empty location.
+     */
+    private static final Location EMPTY_LOCATION = new EmptyLocation() ;
+    
+    /**
+     * The header element.
+     */
+    private final Element headerElement ;
+    /**
+     * The current node.
+     */
+    private Node currentNode ;
+    /**
+     * The current type ;
+     */
+    private int type ;
+    /**
+     * The namespace context.
+     */
+    private NamespaceContextImpl namespaceContext ;
+    /**
+     * The attributes for the current element.
+     */
+    private Attr[] attributes ;
+    
+    /**
+     * Construct the DOM XMLStreamReader.
+     * @param headerElement The header element.
+     */
+    public DOMXMLStreamReader(final Element headerElement)
+    {
+        this.headerElement = headerElement ;
+        startElement(headerElement) ;
+    }
+
+    /**
+     * Get the next parsing event.
+     * @return The integer code corresponding to the parse event.
+     */
+    public int next()
+        throws XMLStreamException
+    {
+        // just returns start, end, characters, CData
+        if ((currentNode == headerElement) && (type == END_ELEMENT))
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_1")) ;
+        }
+        else if (type == START_ELEMENT)
+        {
+            if (currentNode.hasChildNodes())
+            {
+                final Node child = currentNode.getFirstChild() ;
+                processChild(child) ;
+            }
+            else
+            {
+                type = END_ELEMENT ;
+            }
+            return type ;
+        }
+        else if ((type == CHARACTERS) || (type == CDATA) || (type == END_ELEMENT))
+        {
+            if (type == END_ELEMENT)
+            {
+                namespaceContext = namespaceContext.getParent() ;
+            }
+            final Node sibling = currentNode.getNextSibling() ;
+            if (sibling != null)
+            {
+                processChild(sibling) ;
+            }
+            else
+            {
+                type = END_ELEMENT ;
+                currentNode = currentNode.getParentNode() ;
+            }
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_3") ;
+            final String message = MessageFormat.format(pattern, new Object[] {new Integer(type)}) ;
+            throw new XMLStreamException(message) ;
+        }
+        return type ;
+    }
+
+    /**
+     * Get the next tag event.
+     * @return The integer code corresponding to the parse event.
+     */
+    public int nextTag()
+        throws XMLStreamException
+    {
+        final int nextType = next() ;
+        if ((nextType != START_ELEMENT) && (nextType != END_ELEMENT))
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_4") ;
+            final String message = MessageFormat.format(pattern, new Object[] {new Integer(nextType)}) ;
+            throw new XMLStreamException(message) ;
+        }
+        return nextType ;
+    }
+
+    /**
+     * Get the current event type.
+     * @param The current event type.
+     */
+    public int getEventType()
+    {
+        return type ;
+    }
+
+    /**
+     * Returns true if there is another parsing event.
+     * @return true if there is another parsing event, false otherwise.
+     */
+    public boolean hasNext()
+        throws XMLStreamException
+    {
+        return ((currentNode != headerElement) || (type != END_ELEMENT)) ;
+    }
+
+    /**
+     * Does the current event have a qualified name?
+     * @return true if a qualified name, false otherwise.
+     */
+    public boolean hasName()
+    {
+        return ((type == START_ELEMENT) || (type == END_ELEMENT)) ;
+    }
+
+    /**
+     * Returns the qualified name of the start/end element event.
+     * @return the tag qualified name.
+     */
+    public QName getName()
+    {
+        if (hasName())
+        {
+            return qualifiedName(currentNode) ;
+        }
+        return null ;
+    }
+
+    /**
+     * Returns the local name of the start/end element or entity reference event.
+     * @return the local name.
+     */
+    public String getLocalName()
+    {
+        return (hasName() ? ((Element)currentNode).getLocalName() : null) ;
+    }
+
+    /**
+     * Get the prefix of the current event or null.
+     * @return the prefix.
+     */
+    public String getPrefix()
+    {
+        return (hasName() ? ((Element)currentNode).getPrefix() : null) ;
+    }
+
+    /**
+     * Get the namespace URI of the current event.
+     * @return the namespace URI.
+     */
+    public String getNamespaceURI()
+    {
+        return (hasName() ? ((Element)currentNode).getNamespaceURI() : null) ;
+    }
+
+    /**
+     * Test the current event type.
+     * @param type The event type.
+     * @param namespaceURI The namespace URI.
+     * @param localName The local name.
+     */
+    public void require(final int type, final String namespaceURI, final String localName)
+        throws XMLStreamException
+    {
+        if ((type != this.type) || (hasName() && !(testEquals(namespaceURI, getNamespaceURI()) && testEquals(localName, getLocalName()))))
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_5")) ;
+        }
+    }
+
+    /**
+     * Is the current event a start tag?
+     * @return true if a start tag, false otherwise.
+     */
+    public boolean isStartElement()
+    {
+        return (type == START_ELEMENT) ;
+    }
+
+    /**
+     * Is the current event an end tag?
+     * @return true if an end tag, false otherwise.
+     */
+    public boolean isEndElement()
+    {
+        return (type == END_ELEMENT) ;
+    }
+
+    /**
+     * Is the current event a character event?
+     * @return true if a character event, false otherwise.
+     */
+    public boolean isCharacters()
+    {
+        return ((type == CHARACTERS) || (type == CDATA)) ;
+    }
+
+    /**
+     * Is the current event a whitespace event?
+     * @return true if a whitespace event, false otherwise.
+     */
+    public boolean isWhiteSpace()
+    {
+        return false ;
+    }
+
+    /**
+     * Get the number of attributes on the element.
+     * @return the number of attributes.
+     */
+    public int getAttributeCount()
+    {
+        if (hasName())
+        {
+            return (attributes == null ? 0 : attributes.length) ;
+        }
+        return 0 ;
+    }
+
+    /**
+     * Get the qualified name of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute qualified name.
+     */
+    public QName getAttributeName(final int index)
+    {
+        final Node node = getAttribute(index) ;
+        return (node == null ? null : qualifiedName(node)) ;
+    }
+
+    /**
+     * Get the namespace of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute namespace.
+     */
+    public String getAttributeNamespace(final int index)
+    {
+        final Node node = getAttribute(index) ;
+        return (node == null ? null : node.getNamespaceURI()) ;
+    }
+
+    /**
+     * Get the local name of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute local name.
+     */
+    public String getAttributeLocalName(final int index)
+    {
+        final Node node = getAttribute(index) ;
+        if (node != null)
+        {
+            final String localName = node.getLocalName() ;
+            return (localName == null ? node.getNodeName() : localName) ;
+        }
+        return null ;
+    }
+
+    /**
+     * Get the prefix of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute prefix.
+     */
+    public String getAttributePrefix(final int index)
+    {
+        final Node node = getAttribute(index) ;
+        return (node == null ? null : node.getPrefix()) ;
+    }
+
+    /**
+     * Get the type of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute type.
+     */
+    public String getAttributeType(final int index)
+    {
+        return null ;
+    }
+
+    /**
+     * Get the value of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute value.
+     */
+    public String getAttributeValue(final int index)
+    {
+        final Node node = getAttribute(index) ;
+        return (node == null ? null : node.getNodeValue()) ;
+    }
+
+    /**
+     * Get the value of the specified attribute.
+     * @param namespaceURI The namespace URI of the attribute.
+     * @param localName The local name of the attribute.
+     * @return The attribute value.
+     */
+    public String getAttributeValue(final String namespaceURI, final String localName)
+    {
+        if (hasName())
+        {
+            final Element currentElement = (Element)currentNode ;
+            final Attr attr = currentElement.getAttributeNodeNS(namespaceURI, localName) ;
+            return attr.getValue() ;
+        }
+        return null ;
+    }
+    
+    /**
+     * Was this attribute created by default?
+     * @return true if created by default, false otherwise.
+     */
+    public boolean isAttributeSpecified(final int index)
+    {
+        return false ;
+    }
+
+    /**
+     * Get the number of namespaces declared on this star/end element.
+     */
+    public int getNamespaceCount()
+    {
+        return namespaceContext.getNamespaceCount() ;
+    }
+
+    /**
+     * Get the prefix for the specified namespace declaration.
+     * @param index The namespace declaration index.
+     */
+    public String getNamespacePrefix(final int index)
+    {
+        return namespaceContext.getPrefix(index) ;
+    }
+
+    /**
+     * Get the URI for the specified namespace declaration.
+     * @param index The namespace declaration index.
+     */
+    public String getNamespaceURI(final int index)
+    {
+        return namespaceContext.getNamespaceURI(index) ;
+    }
+
+    /**
+     * Get the URI for the namespace prefix.
+     * @param prefix The namespace prefix.
+     */
+    public String getNamespaceURI(final String prefix)
+    {
+        return namespaceContext.getNamespaceURI(prefix) ;
+    }
+
+    /**
+     * Does the current event have text?
+     * @return true if the current event has text, false otherwise.
+     */
+    public boolean hasText()
+    {
+        return ((type == CHARACTERS) || (type == CDATA)) ;
+    }
+
+    /**
+     * Get the current event as a string.
+     * @return The current event as a string.
+     */
+    public String getText()
+    {
+        if (hasText())
+        {
+            return ((Text)currentNode).getData() ;
+        }
+        return null ;
+    }
+
+    /**
+     * Get the characters from the current event.
+     * @return The characters from the current event.
+     */
+    public char[] getTextCharacters()
+    {
+        if (hasText())
+        {
+            return ((Text)currentNode).getData().toCharArray() ;
+        }
+        return null ;
+    }
+
+    /**
+     * Get the characters from the current event.
+     * @param sourceStart The start index of the source.
+     * @param target The target array.
+     * @param targetStart The start index of the target.
+     * @param length The maximum length of the target.
+     * @return The number of characters copied.
+     */
+    public int getTextCharacters(final int sourceStart, final char[] target, final int targetStart, final int length)
+            throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_6")) ;
+    }
+
+    /**
+     * Get the index of the first character.
+     * @return the index of the first character.
+     */
+    public int getTextStart()
+    {
+        return 0 ;
+    }
+
+    /**
+     * Get the length of the text.
+     * @return the length of the text.
+     */
+    public int getTextLength()
+    {
+        if (hasText())
+        {
+            return ((Text)currentNode).getData().length() ;
+        }
+        return 0 ;
+    }
+
+    /**
+     * Get the content of a text only element.
+     * @return The text content.
+     */
+    public String getElementText()
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_7")) ;
+    }
+
+    /**
+     * Get the current namespace context.
+     * @return the namespace context.
+     */
+    public NamespaceContext getNamespaceContext()
+    {
+        return namespaceContext ;
+    }
+
+    /**
+     * Return the input encoding.
+     * @return the input encoding or null.
+     */
+    public String getEncoding()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the location.
+     * @return the location.
+     */
+    public Location getLocation()
+    {
+        return EMPTY_LOCATION ;
+    }
+
+    /**
+     * Get the XML version.
+     * @return the XML version or null if not declared.
+     */
+    public String getVersion()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the standalone from the XML declaration.
+     * @return true if standalone, false otherwise.
+     */
+    public boolean isStandalone()
+    {
+        return true ;
+    }
+
+    /**
+     * Was standalone set in the document?
+     * @return true if set, false otherwise.
+     */
+    public boolean standaloneSet()
+    {
+        return false ;
+    }
+
+    /**
+     * Return the character encoding.
+     * @return the character encoding or null.
+     */
+    public String getCharacterEncodingScheme()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the target of a processing instruction.
+     * @return the processing instruction target.
+     */
+    public String getPITarget()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the data of a processing instruction.
+     * @return the processing instruction data.
+     */
+    public String getPIData()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the value of the specified property.
+     * @param name The name of the property.
+     * @return the property value.
+     */
+    public Object getProperty(final String name)
+        throws IllegalArgumentException
+    {
+        return null ;
+    }
+
+    /**
+     * Close the stream.
+     */
+    public void close()
+        throws XMLStreamException
+    {
+        // Do nothing
+    }
+    
+    /**
+     * Process the child node.
+     * @param child The child node.
+     * @throws XMLStreamException for unsupported node types.
+     */
+    private void processChild(final Node child)
+        throws XMLStreamException
+    {
+        if (child instanceof CDATASection)
+        {
+            currentNode = child ;
+            type = CDATA ;
+        }
+        else if (child instanceof Text)
+        {
+            currentNode = child ;
+            type = CHARACTERS ;
+        }
+        else if (child instanceof Element)
+        {
+            startElement(child) ;
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_2") ;
+            final String message = MessageFormat.format(pattern, new Object[] {child.getClass().getName()}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * Start an element.
+     * @param element The new element.
+     */
+    private void startElement(final Node element)
+    {
+        type = START_ELEMENT ;
+        currentNode = element ;
+        namespaceContext = new NamespaceContextImpl(namespaceContext) ;
+        
+        final NamedNodeMap attrMap = ((Element)element).getAttributes() ;
+        final int numAttributes = (attrMap == null ? 0 : attrMap.getLength()) ;
+        attributes = null ;
+        if (numAttributes > 0)
+        {
+            final ArrayList attributeList = new ArrayList() ;
+            
+            for(int count = 0 ; count < numAttributes ; count++)
+            {
+                final Node attr = attrMap.item(count) ;
+                final QName attrName = qualifiedName(attr) ;
+                
+                final String prefix = attrName.getPrefix() ;
+                final String localName = attrName.getLocalPart() ;
+                if ("xmlns".equals(prefix))
+                {
+                    namespaceContext.setPrefix(localName, attr.getNodeValue()) ;
+                }
+                else if ((prefix == null) && "xmlns".equals(localName))
+                {
+                    namespaceContext.setDefaultNamespace(attr.getNodeValue()) ;
+                }
+                else
+                {
+                    attributeList.add(attr) ;
+                }
+            }
+            
+            if (attributeList.size() > 0)
+            {
+                attributes = (Attr[]) attributeList.toArray(new Attr[attributeList.size()]) ;
+            }
+        }
+    }
+    
+    /**
+     * Test object references for equality.
+     * @param lhs The first object.
+     * @param rhs The second object.
+     * @return true if equals or both null, false otherwise,
+     */
+    private boolean testEquals(final Object lhs, final Object rhs)
+    {
+        if (lhs == null)
+        {
+            return (rhs == null) ;
+        }
+        return (lhs.equals(rhs)) ;
+    }
+    
+    /**
+     * Get the attribute with the specified index.
+     * @param index The attribute index.
+     * @return The attribute node or null if the index is invalid.
+     */
+    private Node getAttribute(final int index)
+    {
+        return (attributes != null ? attributes[index] : null) ;
+    }
+    
+    /**
+     * Get the qualified name of the node.
+     * @param node The node.
+     * @return The qualified name.
+     */
+    private QName qualifiedName(final Node node)
+    {
+        final String localName = node.getLocalName() ;
+        if (localName == null)
+        {
+            return new QName(node.getNodeName()) ;
+        }
+        final String prefix = node.getPrefix() ;
+        final String namespaceURI = node.getNamespaceURI() ;
+        if (prefix == null)
+        {
+            return new QName(namespaceURI, localName) ;
+        }
+        return new QName(namespaceURI, localName, prefix) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamWriter.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamWriter.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/DOMXMLStreamWriter.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,255 @@
+/*
+ * 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.adapters;
+
+import javax.xml.stream.XMLStreamException;
+
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Text;
+
+
+
+/**
+ * XMLStreamWriter for writing to a DOM tree.
+ * @author kevin
+ */
+public class DOMXMLStreamWriter extends BaseXMLStreamWriter
+{
+    /**
+     * The XMLNS namespace.
+     */
+    private static final String XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" ;
+    
+    /**
+     * The owner document.
+     */
+    private final Document document ;
+    /**
+     * The current Element ;
+     */
+    private Element currentElement ;
+    
+    /**
+     * Construct the DOM XMLStreamWriter.
+     * @param headerElement The header element to populate.
+     * @throws XMLStreamException for errors during construction.
+     */
+    public DOMXMLStreamWriter(final Element headerElement)
+        throws XMLStreamException
+    {
+        this.currentElement = headerElement ;
+        this.document = headerElement.getOwnerDocument() ;
+        final String namespaceURI = headerElement.getNamespaceURI() ;
+        if (namespaceURI != null)
+        {
+            final String prefix = headerElement.getPrefix() ;
+            setPrefix(prefix,namespaceURI) ;
+        }
+    }
+
+    /**
+     * Write a start element.
+     * @param localName The local name of the tag.
+     */
+    public void writeStartElement(final String localName)
+        throws XMLStreamException
+    {
+        final Element element = document.createElement(localName) ;
+        setCurrentElement(element) ;
+    }
+
+    /**
+     * Write a start element with the specified namespace URI.
+     * @param namespaceURI The namespace URI of the tag.
+     * @param localName The local name of the tag.
+     */
+    public void writeStartElement(final String namespaceURI, final String localName)
+        throws XMLStreamException
+    {
+        final String prefix = getNamespaceContext().getPrefix(normaliseNamespace(namespaceURI)) ;
+        writeStartElement(prefix, localName, namespaceURI) ;
+    }
+
+    /**
+     * Write a start element with the specified namespace URI and prefix.
+     * @param prefix The prefix of the tag.
+     * @param localName The local name of the tag.
+     * @param namespaceURI The namespace URI of the tag.
+     */
+    public void writeStartElement(final String prefix, final String localName, final String namespaceURI)
+        throws XMLStreamException
+    {
+            final Element element = document.createElementNS(normaliseNamespace(namespaceURI), localName) ;
+            element.setPrefix(prefix) ;
+            setCurrentElement(element) ;
+    }
+
+    /**
+     * Write an empty element.
+     * @param localName The local name of the tag.
+     */
+    public void writeEmptyElement(final String localName)
+        throws XMLStreamException
+    {
+        final Element element = document.createElement(localName) ;
+        currentElement.appendChild(element) ;
+    }
+
+    /**
+     * Write an empty element with the specified namespace URI.
+     * @param namespaceURI The namespace URI of the tag.
+     * @param localName The local name of the tag.
+     */
+    public void writeEmptyElement(final String namespaceURI, final String localName)
+        throws XMLStreamException
+    {
+        final Element element = document.createElementNS(normaliseNamespace(namespaceURI), localName) ;
+        currentElement.appendChild(element) ;
+    }
+
+    /**
+     * Write an empty element with the specified namespace URI and prefix.
+     * @param prefix The prefix of the tag.
+     * @param localName The local name of the tag.
+     * @param namespaceURI The namespace URI of the tag.
+     */
+    public void writeEmptyElement(final String prefix, final String localName, final String namespaceURI)
+        throws XMLStreamException
+    {
+        final Element element = document.createElementNS(normaliseNamespace(namespaceURI), localName) ;
+        element.setPrefix(prefix) ;
+        currentElement.appendChild(element) ;
+    }
+
+    /**
+     * Write an end element.
+     */
+    public void writeEndElement()
+        throws XMLStreamException
+    {
+        currentElement = (Element)currentElement.getParentNode() ;
+        popNamespaceContext() ;
+    }
+
+    /**
+     * Write an attribute to the stream without a prefix.
+     * @param localName the local name of the attribute.
+     * @param value The attribute value.
+     */
+    public void writeAttribute(final String localName, final String value)
+            throws XMLStreamException
+    {
+        currentElement.setAttribute(localName, value) ;
+    }
+
+    /**
+     * Write an attribute to the stream.
+     * @param namespaceURI The namespace URI of the attribute.
+     * @param localName the local name of the attribute.
+     * @param value The attribute value.
+     */
+    public void writeAttribute(final String namespaceURI, final String localName, final String value)
+        throws XMLStreamException
+    {
+        currentElement.setAttributeNS(normaliseNamespace(namespaceURI), localName, value) ;
+    }
+
+    /**
+     * Write an attribute to the stream.
+     * @param prefix The prefix of the attribute.
+     * @param namespaceURI The namespace URI of the attribute.
+     * @param localName the local name of the attribute.
+     * @param value The attribute value.
+     */
+    public void writeAttribute(final String prefix, final String namespaceURI, final String localName, final String value)
+            throws XMLStreamException
+    {
+        currentElement.setAttributeNS(normaliseNamespace(namespaceURI), prefix+":"+localName, value) ;
+    }
+
+    /**
+     * Write a text section.
+     * @param text The text to write.
+     */
+    public void writeCharacters(final String text)
+        throws XMLStreamException
+    {
+        final Text textNode = document.createTextNode(text) ;
+        currentElement.appendChild(textNode) ;
+    }
+    
+    /**
+     * Write a text section.
+     * @param text The text to write.
+     * @param start The index of the first character.
+     * @param len The length of the text.
+     */
+    public void writeCharacters(char[] text, final int start, final int len)
+            throws XMLStreamException
+    {
+        writeCharacters(new String(text, start, len)) ;
+    }
+
+    /**
+     * Write a CData section.
+     * @param cdata The CData section.
+     */
+    public void writeCData(final String cdata)
+        throws XMLStreamException
+    {
+        final CDATASection cDataSection = document.createCDATASection(cdata) ;
+        currentElement.appendChild(cDataSection) ;
+    }
+    
+    /**
+     * Write the namespace to the stream.
+     * @param prefix The namespace prefix.
+     * @param uri The namespace URI.
+     */
+    public void writeNamespace(final String prefix, final String uri)
+            throws XMLStreamException
+    {
+        currentElement.setAttributeNS(XMLNS_NAMESPACE, "xmlns:"+prefix, uri) ;
+    }
+
+    /**
+     * Write the default namespace to the stream.
+     * @param uri The namespace URI.
+     */
+    public void writeDefaultNamespace(final String uri)
+        throws XMLStreamException
+    {
+        currentElement.setAttributeNS(XMLNS_NAMESPACE, "xmlns", uri) ;
+    }
+    
+    /**
+     * Set the current element.
+     * @param element The next element.
+     */
+    private void setCurrentElement(final Element element)
+    {
+        currentElement.appendChild(element) ;
+        currentElement = element ;
+        pushNamespaceContext() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/EmptyLocation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/EmptyLocation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/EmptyLocation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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.adapters;
+
+import javax.xml.stream.Location;
+
+/**
+ * An empty location.
+ * @author kevin
+ */
+public class EmptyLocation implements Location
+{
+    /**
+     * Get the current line number.
+     * @return the current line number.
+     */
+    public int getLineNumber()
+    {
+        return -1 ;
+    }
+
+    /**
+     * Get the current column number.
+     * @return the current column number.
+     */
+    public int getColumnNumber()
+    {
+        return -1 ;
+    }
+
+    /**
+     * Get the current character offset.
+     * @return the current character offset.
+     */
+    public int getCharacterOffset()
+    {
+        return -1 ;
+    }
+
+    /**
+     * Get the public ID.
+     * @return the public ID.
+     */
+    public String getPublicId()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the system ID.
+     * @return the system ID.
+     */
+    public String getSystemId()
+    {
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/NamespaceContextImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/NamespaceContextImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/NamespaceContextImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,217 @@
+/*
+ * 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.adapters;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.xml.namespace.NamespaceContext;
+
+/**
+ * Implementation of a namespace context.
+ * @author kevin
+ */
+public class NamespaceContextImpl implements NamespaceContext
+{
+    /**
+     * The parent context.
+     */
+    private final NamespaceContextImpl parent ;
+    
+    /**
+     * The prefix mappings.
+     */
+    private final Map prefixMappings = new HashMap() ;
+    /**
+     * The prefix list.
+     */
+    private final List prefixList = new ArrayList() ;
+    /**
+     * The namespace mappings.
+     */
+    private final Map namespaceMappings = new HashMap() ;
+
+    /**
+     * Construct the initial namespace context.
+     */
+    public NamespaceContextImpl()
+    {
+        this(null) ;
+    }
+    
+    /**
+     * Construct the namespace context with the specified parent.
+     * @param parent The specified parent.
+     */
+    public NamespaceContextImpl(final NamespaceContextImpl parent)
+    {
+        this.parent = parent ;
+    }
+    
+    /**
+     * Get the namespace URI for the specified prefix.
+     * @param prefix The prefix.
+     * @return the namespace URI for the prefix.
+     */
+    public String getNamespaceURI(final String prefix)
+    {
+        final String namespaceURI = (String)prefixMappings.get(prefix) ;
+        if (namespaceURI != null)
+        {
+            return namespaceURI ;
+        }
+        return (parent != null ? parent.getNamespaceURI(prefix) : null) ;
+    }
+
+    /**
+     * Get the prefix for the specified namespace URI.
+     * @param namespaceURI The namespace URI.
+     * @return the prefi for the namespace URI.
+     */
+    public String getPrefix(final String namespaceURI)
+    {
+        final Set prefixes = (Set)namespaceMappings.get(namespaceURI) ;
+        if (prefixes != null)
+        {
+            return (String)prefixes.iterator().next();
+        }
+        return (parent != null ? parent.getPrefix(namespaceURI) : null) ;
+    }
+    
+    /**
+     * Get the iterator of prefixes for the specified namespace URI.
+     * @param namespaceURI The namespace URI.
+     * @return The set of prefixes.
+     */
+    public Iterator getPrefixes(final String namespaceURI)
+    {
+        return getPrefixSet(namespaceURI).iterator() ;
+    }
+    
+    /**
+     * Get the parent namespace context.
+     * @return The parent namespace context.
+     */
+    public NamespaceContextImpl getParent()
+    {
+        return parent ;
+    }
+    
+    /**
+     * Set the default namespace URI.
+     * @param namespaceURI The namespace URI.
+     */
+    public void setDefaultNamespace(final String namespaceURI)
+    {
+        setPrefix(null, namespaceURI) ;
+    }
+    
+    /**
+     * Set the prefix to the specified namespace URI.
+     * @param prefix The prefix.
+     * @param namespaceURI The namespace URI.
+     */
+    public void setPrefix(final String prefix, final String namespaceURI)
+    {
+        final String previousNamespaceURI = (String)prefixMappings.put(prefix, namespaceURI) ;
+        if (previousNamespaceURI != null)
+        {
+            final Set previousSet = (Set)namespaceMappings.get(previousNamespaceURI) ;
+            if (previousSet != null)
+            {
+                if (previousSet.size() == 1)
+                {
+                    namespaceMappings.remove(previousNamespaceURI) ;
+                }
+                else
+                {
+                    previousSet.remove(prefix) ;
+                }
+            }
+        }
+        else
+        {
+            prefixList.add(prefix) ;
+        }
+        final Set currentSet = (Set)namespaceMappings.get(namespaceURI) ;
+        if (currentSet != null)
+        {
+            currentSet.add(prefix) ;
+        }
+        else
+        {
+            final Set newSet = new TreeSet() ;
+            newSet.add(prefix) ;
+            namespaceMappings.put(namespaceURI, newSet) ;
+        }
+    }
+    
+    /**
+     * Get the number of namespaces in this context.
+     * @return the number of namespaces.
+     */
+    public int getNamespaceCount()
+    {
+        return prefixList.size() ;
+    }
+    
+    /**
+     * Get the prefix at the specified index.
+     * @param index The index.
+     * @return The prefix.
+     */
+    public String getPrefix(final int index)
+    {
+        return (String)prefixList.get(index) ;
+    }
+    
+    /**
+     * Get the namespace URI at the specified index.
+     * @param index The index.
+     * @return The namespace URI.
+     */
+    public String getNamespaceURI(final int index)
+    {
+        final String prefix = getPrefix(index) ;
+        return (String)(prefixMappings.get(prefix)) ;
+    }
+
+    /**
+     * Get the set of prefixes for the specified namespace URI.
+     * @param namespaceURI The namespace URI.
+     * @return The set of prefixes.
+     */
+    private Set getPrefixSet(final String namespaceURI)
+    {
+        final Set set = (parent != null ? parent.getPrefixSet(namespaceURI) : new TreeSet()) ;
+        final Set currentSet = (Set)namespaceMappings.get(namespaceURI) ;
+        if (currentSet != null)
+        {
+            set.addAll(currentSet) ;
+        }
+        return set ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamReader.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamReader.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamReader.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,795 @@
+/*
+ * 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.adapters;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Stack;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.soap.Name;
+import javax.xml.soap.Node;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.Text;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * XMLStreamReader for reading from a SAAJ element.
+ * @author kevin
+ *
+ */
+public class SAAJXMLStreamReader implements XMLStreamReader
+{
+    /**
+     * The empty location.
+     */
+    private static final Location EMPTY_LOCATION = new EmptyLocation() ;
+    
+    /**
+     * The header element.
+     */
+    private final SOAPElement headerElement ;
+    /**
+     * The current node.
+     */
+    private Node currentNode ;
+    /**
+     * The current text of an element.
+     */
+    private String text ;
+    /**
+     * The current type ;
+     */
+    private int type ;
+    /**
+     * The namespace context.
+     */
+    private NamespaceContextImpl namespaceContext ;
+    /**
+     * A stack of child node iterators.
+     */
+    private Stack childNodeIterators = new Stack() ;
+    /**
+     * The attribute names for the current element.
+     */
+    private Name[] attributeNames ;
+    
+    /**
+     * Construct the SAAJ XMLStreamReader.
+     * @param headerElement The header element.
+     */
+    public SAAJXMLStreamReader(final SOAPElement headerElement)
+    {
+        this.headerElement = headerElement ;
+        initialiseNamespaces(headerElement.getParentElement()) ;
+        startElement(headerElement) ;
+    }
+    
+    /**
+     * Get the next parsing event.
+     * @return The integer code corresponding to the parse event.
+     */
+    public int next()
+        throws XMLStreamException
+    {
+        // just returns start, end, characters, CData
+        if ((currentNode == headerElement) && (type == END_ELEMENT))
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_1")) ;
+        }
+        else if (type == START_ELEMENT)
+        {
+            final Iterator childNodeIter = ((SOAPElement)currentNode).getChildElements() ;
+            final Node child = getNextChild(childNodeIter) ;
+            if (child != null)
+            {
+                childNodeIterators.push(childNodeIter) ;
+                processChild(child) ;
+            }
+            else
+            {
+                final String textValue = currentNode.getValue() ;
+                if (textValue != null)
+                {
+                    text = textValue ;
+                    type = CHARACTERS ;
+                }
+                else
+                {
+                    type = END_ELEMENT ;
+                }
+            }
+            return type ;
+        }
+        else if ((type == CHARACTERS) || (type == CDATA) || (type == END_ELEMENT))
+        {
+            if ((type == CHARACTERS) && (text != null))
+            {
+                text = null ;
+                type = END_ELEMENT ;
+            }
+            else
+            {
+                final Iterator childNodeIter = (Iterator)childNodeIterators.pop();
+                final Node child = getNextChild(childNodeIter) ;
+                if (child != null)
+                {
+                    childNodeIterators.push(childNodeIter) ;
+                    processChild(child) ;
+                }
+                else
+                {
+                    type = END_ELEMENT ;
+                    currentNode = currentNode.getParentElement() ;
+                }
+            }
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_3") ;
+            final String message = MessageFormat.format(pattern, new Object[] {new Integer(type)}) ;
+            throw new XMLStreamException(message) ;
+        }
+        return type ;
+    }
+
+    /**
+     * Get the next tag event.
+     * @return The integer code corresponding to the parse event.
+     */
+    public int nextTag()
+        throws XMLStreamException
+    {
+        final int nextType = next() ;
+        if ((nextType != START_ELEMENT) && (nextType != END_ELEMENT))
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_4") ;
+            final String message = MessageFormat.format(pattern, new Object[] {new Integer(nextType)}) ;
+            throw new XMLStreamException(message) ;
+        }
+        return nextType ;
+    }
+
+    /**
+     * Get the current event type.
+     * @param The current event type.
+     */
+    public int getEventType()
+    {
+        return type ;
+    }
+
+    /**
+     * Returns true if there is another parsing event.
+     * @return true if there is another parsing event, false otherwise.
+     */
+    public boolean hasNext()
+        throws XMLStreamException
+    {
+        return ((currentNode != headerElement) || (type != END_ELEMENT)) ;
+    }
+
+    /**
+     * Does the current event have a qualified name?
+     * @return true if a qualified name, false otherwise.
+     */
+    public boolean hasName()
+    {
+        return ((type == START_ELEMENT) || (type == END_ELEMENT)) ;
+    }
+
+    /**
+     * Returns the qualified name of the start/end element event.
+     * @return the tag qualified name.
+     */
+    public QName getName()
+    {
+        if (hasName())
+        {
+            return qualifiedName(((SOAPElement)currentNode).getElementName()) ;
+        }
+        return null ;
+    }
+
+    /**
+     * Returns the local name of the start/end element or entity reference event.
+     * @return the local name.
+     */
+    public String getLocalName()
+    {
+        return (hasName() ? ((SOAPElement)currentNode).getElementName().getLocalName() : null) ;
+    }
+
+    /**
+     * Get the prefix of the current event or null.
+     * @return the prefix.
+     */
+    public String getPrefix()
+    {
+        return (hasName() ? ((SOAPElement)currentNode).getElementName().getPrefix() : null) ;
+    }
+
+    /**
+     * Get the namespace URI of the current event.
+     * @return the namespace URI.
+     */
+    public String getNamespaceURI()
+    {
+        return (hasName() ? ((SOAPElement)currentNode).getElementName().getURI() : null) ;
+    }
+
+    /**
+     * Test the current event type.
+     * @param type The event type.
+     * @param namespaceURI The namespace URI.
+     * @param localName The local name.
+     */
+    public void require(final int type, final String namespaceURI, final String localName)
+        throws XMLStreamException
+    {
+        if ((type != this.type) || (hasName() && !(testEquals(namespaceURI, getNamespaceURI()) && testEquals(localName, getLocalName()))))
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_5")) ;
+        }
+    }
+
+    /**
+     * Is the current event a start tag?
+     * @return true if a start tag, false otherwise.
+     */
+    public boolean isStartElement()
+    {
+        return (type == START_ELEMENT) ;
+    }
+
+    /**
+     * Is the current event an end tag?
+     * @return true if an end tag, false otherwise.
+     */
+    public boolean isEndElement()
+    {
+        return (type == END_ELEMENT) ;
+    }
+
+    /**
+     * Is the current event a character event?
+     * @return true if a character event, false otherwise.
+     */
+    public boolean isCharacters()
+    {
+        return ((type == CHARACTERS) || (type == CDATA)) ;
+    }
+
+    /**
+     * Is the current event a whitespace event?
+     * @return true if a whitespace event, false otherwise.
+     */
+    public boolean isWhiteSpace()
+    {
+        return false ;
+    }
+
+    /**
+     * Get the number of attributes on the element.
+     * @return the number of attributes.
+     */
+    public int getAttributeCount()
+    {
+        if (hasName())
+        {
+            return (attributeNames == null ? 0 : attributeNames.length) ;
+        }
+        return 0 ;
+    }
+
+    /**
+     * Get the qualified name of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute qualified name.
+     */
+    public QName getAttributeName(final int index)
+    {
+        final Name name = getAttribute(index) ;
+        return (name == null ? null : qualifiedName(name)) ;
+    }
+
+    /**
+     * Get the namespace of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute namespace.
+     */
+    public String getAttributeNamespace(final int index)
+    {
+        final Name name = getAttribute(index) ;
+        return (name == null ? null : name.getURI()) ;
+    }
+
+    /**
+     * Get the local name of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute local name.
+     */
+    public String getAttributeLocalName(final int index)
+    {
+        final Name name = getAttribute(index) ;
+        if (name != null)
+        {
+            final String localName = name.getLocalName() ;
+            return (localName == null ? name.getQualifiedName() : localName) ;
+        }
+        return null ;
+    }
+
+    /**
+     * Get the prefix of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute prefix.
+     */
+    public String getAttributePrefix(final int index)
+    {
+        final Name name = getAttribute(index) ;
+        return (name == null ? null : name.getPrefix()) ;
+    }
+
+    /**
+     * Get the type of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute type.
+     */
+    public String getAttributeType(final int index)
+    {
+        return null ;
+    }
+
+    /**
+     * Get the value of the specified attribute.
+     * @param index The attribute index.
+     * @return The attribute value.
+     */
+    public String getAttributeValue(final int index)
+    {
+        final Name name = getAttribute(index) ;
+        return (name == null ? null : ((SOAPElement)currentNode).getAttributeValue(name)) ;
+    }
+
+    /**
+     * Get the value of the specified attribute.
+     * @param namespaceURI The namespace URI of the attribute.
+     * @param localName The local name of the attribute.
+     * @return The attribute value.
+     */
+    public String getAttributeValue(final String namespaceURI, final String localName)
+    {
+        if (hasName())
+        {
+            final SOAPElement currentElement = (SOAPElement)currentNode ;
+            final int numAttrs = (attributeNames == null ? 0 : attributeNames.length) ;
+            for(int count = 0 ; count < numAttrs ; count++)
+            {
+                final Name name = attributeNames[count] ;
+                if (testEquals(namespaceURI, name.getURI()) && testEquals(localName, name.getLocalName()))
+                {
+                    return ((SOAPElement)currentElement).getAttributeValue(name) ;
+                }
+            }
+        }
+        return null ;
+    }
+    
+    /**
+     * Was this attribute created by default?
+     * @return true if created by default, false otherwise.
+     */
+    public boolean isAttributeSpecified(final int index)
+    {
+        return false ;
+    }
+
+    /**
+     * Get the number of namespaces declared on this starT/end element.
+     */
+    public int getNamespaceCount()
+    {
+        return namespaceContext.getNamespaceCount() ;
+    }
+
+    /**
+     * Get the prefix for the specified namespace declaration.
+     * @param index The namespace declaration index.
+     */
+    public String getNamespacePrefix(final int index)
+    {
+        return namespaceContext.getPrefix(index) ;
+    }
+
+    /**
+     * Get the URI for the specified namespace declaration.
+     * @param index The namespace declaration index.
+     */
+    public String getNamespaceURI(final int index)
+    {
+        return namespaceContext.getNamespaceURI(index) ;
+    }
+
+    /**
+     * Get the URI for the namespace prefix.
+     * @param prefix The namespace prefix.
+     */
+    public String getNamespaceURI(final String prefix)
+    {
+        return namespaceContext.getNamespaceURI(prefix) ;
+    }
+
+    /**
+     * Does the current event have text?
+     * @return true if the current event has text, false otherwise.
+     */
+    public boolean hasText()
+    {
+        return ((type == CHARACTERS) || (type == CDATA)) ;
+    }
+
+    /**
+     * Get the current event as a string.
+     * @return The current event as a string.
+     */
+    public String getText()
+    {
+        if (hasText())
+        {
+            if ((type == CHARACTERS) && (text != null))
+            {
+                return text ;
+            }
+            else
+            {
+                return ((Text)currentNode).getValue() ;
+            }
+        }
+        return null ;
+    }
+
+    /**
+     * Get the characters from the current event.
+     * @return The characters from the current event.
+     */
+    public char[] getTextCharacters()
+    {
+        if (hasText())
+        {
+            return getText().toCharArray() ;
+        }
+        return null ;
+    }
+
+    /**
+     * Get the characters from the current event.
+     * @param sourceStart The start index of the source.
+     * @param target The target array.
+     * @param targetStart The start index of the target.
+     * @param length The maximum length of the target.
+     * @return The number of characters copied.
+     */
+    public int getTextCharacters(final int sourceStart, final char[] target, final int targetStart, final int length)
+            throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_6")) ;
+    }
+
+    /**
+     * Get the index of the first character.
+     * @return the index of the first character.
+     */
+    public int getTextStart()
+    {
+        return 0 ;
+    }
+
+    /**
+     * Get the length of the text.
+     * @return the length of the text.
+     */
+    public int getTextLength()
+    {
+        if (hasText())
+        {
+            return ((Text)currentNode).getValue().length() ;
+        }
+        return 0 ;
+    }
+
+    /**
+     * Get the content of a text only element.
+     * @return The text content.
+     */
+    public String getElementText()
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_7")) ;
+    }
+
+    /**
+     * Get the current namespace context.
+     * @return the namespace context.
+     */
+    public NamespaceContext getNamespaceContext()
+    {
+        return namespaceContext ;
+    }
+
+    /**
+     * Return the input encoding.
+     * @return the input encoding or null.
+     */
+    public String getEncoding()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the location.
+     * @return the location.
+     */
+    public Location getLocation()
+    {
+        return EMPTY_LOCATION ;
+    }
+
+    /**
+     * Get the XML version.
+     * @return the XML version or null if not declared.
+     */
+    public String getVersion()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the standalone from the XML declaration.
+     * @return true if standalone, false otherwise.
+     */
+    public boolean isStandalone()
+    {
+        return true ;
+    }
+
+    /**
+     * Was standalone set in the document?
+     * @return true if set, false otherwise.
+     */
+    public boolean standaloneSet()
+    {
+        return false ;
+    }
+
+    /**
+     * Return the character encoding.
+     * @return the character encoding or null.
+     */
+    public String getCharacterEncodingScheme()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the target of a processing instruction.
+     * @return the processing instruction target.
+     */
+    public String getPITarget()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the data of a processing instruction.
+     * @return the processing instruction data.
+     */
+    public String getPIData()
+    {
+        return null ;
+    }
+
+    /**
+     * Get the value of the specified property.
+     * @param name The name of the property.
+     * @return the property value.
+     */
+    public Object getProperty(final String name)
+        throws IllegalArgumentException
+    {
+        return null ;
+    }
+
+    /**
+     * Close the stream.
+     */
+    public void close()
+        throws XMLStreamException
+    {
+        // Do nothing
+    }
+    
+    
+    /**
+     * Get the next child node.
+     * @param childNodeIter The current child node iterator.
+     * @return The next child node or null.
+     */
+    private Node getNextChild(final Iterator childNodeIter)
+    {
+        while(childNodeIter.hasNext())
+        {
+            final Node node = (Node)childNodeIter.next();
+            if (node instanceof Text)
+            {
+                final Text text = (Text)node ;
+                if (text.isComment())
+                {
+                    continue ;
+                }
+            }
+            return node ;
+        }
+        return null ;
+    }
+    
+    /**
+     * Process the child node.
+     * @param child The child node.
+     * @throws XMLStreamException for unsupported node types.
+     */
+    private void processChild(final Node child)
+        throws XMLStreamException
+    {
+        if (child instanceof Text)
+        {
+            currentNode = child ;
+            type = CHARACTERS ;
+        }
+        else if (child instanceof SOAPElement)
+        {
+            startElement((SOAPElement)child) ;
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.DOMXMLStreamReader_2") ;
+            final String message = MessageFormat.format(pattern, new Object[] {child.getClass().getName()}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * Start an element.
+     * @param element The new element.
+     */
+    private void startElement(final Node element)
+    {
+        type = START_ELEMENT ;
+        currentNode = element ;
+        processNamespaces((SOAPElement)element) ;
+        
+        attributeNames = null ;
+        final Iterator attrIter = ((SOAPElement)element).getAllAttributes() ;
+        if (attrIter.hasNext())
+        {
+            final ArrayList attributeList = new ArrayList() ;
+            do
+            {
+                final Name name = (Name)attrIter.next() ;
+                attributeList.add(name) ;
+            }
+            while(attrIter.hasNext()) ;
+            
+            if (attributeList.size() > 0)
+            {
+                attributeNames = (Name[]) attributeList.toArray(new Name[attributeList.size()]) ;
+            }
+        }
+    }
+    
+    /**
+     * Test object references for equality.
+     * @param lhs The first object.
+     * @param rhs The second object.
+     * @return true if equals or both null, false otherwise,
+     */
+    private boolean testEquals(final Object lhs, final Object rhs)
+    {
+        if (lhs == null)
+        {
+            return (rhs == null) ;
+        }
+        return (lhs.equals(rhs)) ;
+    }
+    
+    /**
+     * Get the attribute with the specified index.
+     * @param index The attribute index.
+     * @return The attribute name or null if the index is invalid.
+     */
+    private Name getAttribute(final int index)
+    {
+        return ((type == START_ELEMENT) && (attributeNames != null) ? attributeNames[index] : null) ;
+    }
+    
+    /**
+     * Get the qualified name.
+     * @param name The current name.
+     * @return The qualified name.
+     */
+    private QName qualifiedName(final Name name)
+    {
+        final String localName = name.getLocalName() ;
+        if (localName == null)
+        {
+            return new QName(name.getQualifiedName()) ;
+        }
+        final String prefix = name.getPrefix() ;
+        final String namespaceURI = name.getURI() ;
+        if (prefix == null)
+        {
+            return new QName(namespaceURI, localName) ;
+        }
+        return new QName(namespaceURI, localName, prefix) ;
+    }
+    
+    /**
+     * Initialise the namespaces for the parent of the initial element.
+     * @param element The parent of the initial element.
+     */
+    private void initialiseNamespaces(final SOAPElement element)
+    {
+        if (element != null)
+        {
+            initialiseNamespaces(element.getParentElement()) ;
+            processNamespaces(element) ;
+        }
+    }
+    
+    /**
+     * Process the namespaces for the current element.
+     * @param element The current element.
+     */
+    private void processNamespaces(final SOAPElement element)
+    {
+        namespaceContext = new NamespaceContextImpl(namespaceContext) ;
+        final Iterator prefixIter = element.getNamespacePrefixes() ;
+        while(prefixIter.hasNext())
+        {
+            final String prefix = (String)prefixIter.next() ;
+            final String uri = element.getNamespaceURI(prefix) ;
+            if (prefix == null)
+            {
+                namespaceContext.setDefaultNamespace(uri) ;
+            }
+            else
+            {
+                namespaceContext.setPrefix(prefix, uri) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamWriter.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamWriter.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/adapters/SAAJXMLStreamWriter.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,287 @@
+/*
+ * 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.adapters;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.stream.XMLStreamException;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+
+/**
+ * XMLStreamWriter for writing to a SAAJ tree.
+ * @author kevin
+ * @message com.arjuna.webservices.adapters.SAAJXMLStreamWriter_1 [com.arjuna.webservices.adapters.SAAJXMLStreamWriter_1] - CData sections not currently supported.
+ */
+public class SAAJXMLStreamWriter extends BaseXMLStreamWriter
+{
+    /**
+     * The SOAP envelope.
+     */
+    private final SOAPEnvelope env ;
+    /**
+     * The current element to populate.
+     */
+    private SOAPElement currentElement ;
+    
+    /**
+     * Construct the SAAJ XMLStreamWriter.
+     * @param env The SOAP envelope.
+     * @param headerElement The header element to populate.
+     */
+    public SAAJXMLStreamWriter(final SOAPEnvelope env, final SOAPHeaderElement headerElement)
+    {
+        this.env = env ;
+        this.currentElement = headerElement ;
+    }
+
+    /**
+     * Write a start element.
+     * @param localName The local name of the tag.
+     */
+    public void writeStartElement(final String localName)
+        throws XMLStreamException
+    {
+        try
+        {
+            currentElement = currentElement.addChildElement(localName) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+        pushNamespaceContext() ;
+    }
+
+    /**
+     * Write a start element with the specified namespace URI.
+     * @param namespaceURI The namespace URI of the tag.
+     * @param localName The local name of the tag.
+     */
+    public void writeStartElement(final String namespaceURI, final String localName)
+        throws XMLStreamException
+    {
+        final String prefix = getNamespaceContext().getPrefix(normaliseNamespace(namespaceURI)) ;
+        writeStartElement(prefix, localName, namespaceURI) ;
+    }
+
+    /**
+     * Write a start element with the specified namespace URI and prefix.
+     * @param prefix The prefix of the tag.
+     * @param localName The local name of the tag.
+     * @param namespaceURI The namespace URI of the tag.
+     */
+    public void writeStartElement(final String prefix, final String localName, final String namespaceURI)
+        throws XMLStreamException
+    {
+        try
+        {
+            currentElement = currentElement.addChildElement(localName, prefix, namespaceURI) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+        pushNamespaceContext() ;
+    }
+
+    /**
+     * Write an empty element.
+     * @param localName The local name of the tag.
+     */
+    public void writeEmptyElement(final String localName)
+        throws XMLStreamException
+    {
+        try
+        {
+            currentElement.addChildElement(localName) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+    }
+
+    /**
+     * Write an empty element with the specified namespace URI.
+     * @param namespaceURI The namespace URI of the tag.
+     * @param localName The local name of the tag.
+     */
+    public void writeEmptyElement(final String namespaceURI, final String localName)
+        throws XMLStreamException
+    {
+        final String prefix = getNamespaceContext().getPrefix(normaliseNamespace(namespaceURI)) ;
+        writeEmptyElement(prefix, localName, namespaceURI) ;
+    }
+
+    /**
+     * Write an empty element with the specified namespace URI and prefix.
+     * @param prefix The prefix of the tag.
+     * @param localName The local name of the tag.
+     * @param namespaceURI The namespace URI of the tag.
+     */
+    public void writeEmptyElement(final String prefix, final String localName, final String namespaceURI)
+        throws XMLStreamException
+    {
+        try
+        {
+            currentElement.addChildElement(localName, prefix, namespaceURI) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+    }
+
+    /**
+     * Write an end element.
+     */
+    public void writeEndElement()
+        throws XMLStreamException
+    {
+        currentElement = currentElement.getParentElement() ;
+        popNamespaceContext() ;
+    }
+
+    /**
+     * Write an attribute to the stream without a prefix.
+     * @param localName the local name of the attribute.
+     * @param value The attribute value.
+     */
+    public void writeAttribute(final String localName, final String value)
+            throws XMLStreamException
+    {
+        try
+        {
+            final Name name = env.createName(localName) ;
+            currentElement.addAttribute(name, value) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+    }
+
+    /**
+     * Write an attribute to the stream.
+     * @param namespaceURI The namespace URI of the attribute.
+     * @param localName the local name of the attribute.
+     * @param value The attribute value.
+     */
+    public void writeAttribute(final String namespaceURI, final String localName, final String value)
+        throws XMLStreamException
+    {
+        final String prefix = getNamespaceContext().getPrefix(normaliseNamespace(namespaceURI)) ;
+        writeAttribute(prefix, namespaceURI, localName, value) ;
+    }
+
+    /**
+     * Write an attribute to the stream.
+     * @param prefix The prefix of the attribute.
+     * @param namespaceURI The namespace URI of the attribute.
+     * @param localName the local name of the attribute.
+     * @param value The attribute value.
+     */
+    public void writeAttribute(final String prefix, final String namespaceURI, final String localName, final String value)
+            throws XMLStreamException
+    {
+        try
+        {
+            final Name name = env.createName(localName, prefix, namespaceURI) ;
+            currentElement.addAttribute(name, value) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+    }
+
+    /**
+     * Write a text section.
+     * @param text The text to write.
+     */
+    public void writeCharacters(final String text)
+        throws XMLStreamException
+    {
+        try
+        {
+            currentElement.addTextNode(text) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+    }
+    
+    /**
+     * Write a text section.
+     * @param text The text to write.
+     * @param start The index of the first character.
+     * @param len The length of the text.
+     */
+    public void writeCharacters(char[] text, final int start, final int len)
+            throws XMLStreamException
+    {
+        writeCharacters(new String(text, start, len)) ;
+    }
+
+    /**
+     * Write a CData section.
+     * @param cdata The CData section.
+     */
+    public void writeCData(final String cdata)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.adapters.SAAJXMLStreamWriter_1")) ;
+    }
+    
+    /**
+     * Write the namespace to the stream.
+     * @param prefix The namespace prefix.
+     * @param uri The namespace URI.
+     */
+    public void writeNamespace(final String prefix, final String uri)
+            throws XMLStreamException
+    {
+        try
+        {
+            currentElement.addNamespaceDeclaration(prefix, uri) ;
+        }
+        catch (final SOAPException soapException)
+        {
+            throw new XMLStreamException(soapException) ;
+        }
+    }
+
+    /**
+     * Write the default namespace to the stream.
+     * @param uri The namespace URI.
+     */
+    public void writeDefaultNamespace(final String uri)
+        throws XMLStreamException
+    {
+        writeNamespace(null, uri) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/LoggingFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/LoggingFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/LoggingFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,87 @@
+/*
+ * 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.base.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Logging fault handler.
+ * @author kevin
+ */
+public class LoggingFaultHandler implements BodyHandler
+{
+    private final String serviceName ;
+    
+    /**
+     * Create the logging fault handler.
+     * @param serviceName The name of the service.
+     */
+    public LoggingFaultHandler(final String serviceName)
+    {
+        this.serviceName = serviceName ;
+    }
+    
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     * @message com.arjuna.webservices.base.handlers.LoggingFaultHandler_1 [com.arjuna.webservices.base.handlers.LoggingFaultHandler_1] - Service {0} received unexpected fault: {1}
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final String soapFaultType = soapFault.getSoapFaultType().toString() ;
+        final QName subcode = soapFault.getSubcode() ;
+        final String faultDetails ;
+        if (subcode == null)
+        {
+            faultDetails = soapFaultType ;
+        }
+        else
+        {
+            faultDetails = soapFaultType + ":" + subcode ;
+        }
+        
+        if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSCLogger.arjLoggerI18N.warn("com.arjuna.webservices.base.handlers.LoggingFaultHandler_1",
+                new Object[] {serviceName, faultDetails}) ;
+        }
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/SoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/SoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/handlers/SoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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.base.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * SOAP fault handler.
+ * @author kevin
+ */
+public class SoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails,
+        final MessageContext context, final MessageContext responseContext,
+        final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        throw soapDetails.parseSoapFault(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/policy/ClientPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/policy/ClientPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/policy/ClientPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.base.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.base.handlers.SoapFaultHandler;
+
+/**
+ * Policy responsible for binding in the client handlers.
+ * @author kevin
+ */
+public class ClientPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(new SoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/ActivatedObjectProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/ActivatedObjectProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/ActivatedObjectProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.base.processors;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This class manages the association between an object and its identifier.
+ */
+public final class ActivatedObjectProcessor
+{
+    /**
+     * The identifier to object map.
+     */
+    private Map objectMap = new HashMap() ;
+    /**
+     * The object to identifier map.
+     */
+    private Map identifierMap = new HashMap() ;
+
+    /**
+     * Activate the object.
+     * @param object The object.
+     * @param identifier The identifier.
+     */
+    public synchronized void activateObject(final Object object, final String identifier)
+    {
+        objectMap.put(identifier, object);
+        identifierMap.put(object, identifier);
+    }
+
+    /**
+     * Deactivate the object.
+     * @param object The object.
+     */
+    public synchronized void deactivateObject(final Object object)
+    {
+        String identifier = (String) identifierMap.remove(object) ;
+        if (identifier != null)
+        {
+            objectMap.remove(identifier) ;
+        }
+    }
+    
+    /**
+     * Get the object with the specified identifier.
+     * @param identifier The identifier.
+     * @return The participant or null if not known.
+     */
+    public synchronized Object getObject(final String identifier)
+    {
+        return objectMap.get(identifier) ;
+    }
+    
+    /**
+     * Get the number of active objects.
+     * @return The number of active objects.
+     */
+    public synchronized int count()
+    {
+        return objectMap.size() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/BaseProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/BaseProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/BaseProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,192 @@
+/*
+ * 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.base.processors;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * Utility class handling common callback functionality.
+ * @author kevin
+ */
+public abstract class BaseProcessor
+{
+    /**
+     * The callback map.
+     */
+    private final Map callbackMap = new HashMap() ;
+    
+    /**
+     * Register the callback for the message ID.
+     * @param messageID The message ID.
+     * @param callback The callback.
+     */
+    protected void register(final String messageID, final Callback callback)
+    {
+        synchronized(callbackMap)
+        {
+            callbackMap.put(messageID, callback) ;
+        }
+    }
+    
+    /**
+     * Remove the callback for the specified message ID.
+     * @param messageID The message ID.
+     */
+    public void removeCallback(final String messageID)
+    {
+        synchronized(callbackMap)
+        {
+            callbackMap.remove(messageID) ;
+        }
+    }
+
+    /**
+     * Handle the callbacks for the specified addressing context.
+     * @param executor The callback executor.
+     * @param ids The message ids.
+     * 
+     * @message com.arjuna.webservices.base.processors.BaseProcessor_1 [com.arjuna.webservices.base.processors.BaseProcessor_1] - Unexpected throwable while executing callback: 
+     * @message com.arjuna.webservices.base.processors.BaseProcessor_2 [com.arjuna.webservices.base.processors.BaseProcessor_2] - Received a response for non existent message IDs {0}
+     */
+    protected void handleCallbacks(final CallbackExecutor executor, final String[] ids)
+    {
+        final Callback[] callbacks = getCallbacks(ids) ;
+        if (callbacks != null)
+        {
+            boolean executed = false ;
+            final int numCallbacks = callbacks.length ;
+            for(int count = 0 ; count < numCallbacks ; count++)
+            {
+                final Callback callback = callbacks[count] ;
+                if (callback != null)
+                {
+                    executed = true ;
+                    try
+                    {
+                        executor.execute(callback) ;
+                        callback.setTriggered() ;
+                    }
+                    catch (final Throwable th)
+                    {
+                        if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                        {
+                            WSCLogger.arjLoggerI18N.debug("com.arjuna.webservices.base.processors.BaseProcessor_1", th) ;
+                        }
+                        callback.setFailed() ;
+                    }
+                }
+            }
+            if (!executed && WSCLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                executor.executeUnknownIds(ids) ;
+            }
+        }
+    }
+    
+    /**
+     * Get the callbacks associated with the message ids.
+     * @param ids The message ids.
+     * @return The callbacks associated with the message ids in the addressing context.
+     */
+    private Callback[] getCallbacks(final String[] ids)
+    {
+        if (ids == null)
+        {
+            return null ;
+        }
+        
+        final int numIDs = ids.length ;
+        final Callback[] callbacks = new Callback[numIDs] ;
+        synchronized(callbackMap)
+        {
+            for(int count = 0 ; count < numIDs ; count++)
+            {
+                callbacks[count] = (Callback)callbackMap.get(ids[count]) ;
+            }
+        }
+        return callbacks ;
+    }
+    
+    /**
+     * Interface for executing a specific callback.
+     * @author kevin
+     */
+    protected static interface CallbackExecutor
+    {
+        /**
+         * The execute method.
+         * @param callback The callback instance.
+         */
+        public void execute(final Callback callback) ;
+        /**
+         * Execute method for an unknown identifier.
+         * @param ids The current ids.
+         */
+        public void executeUnknownIds(final String[] ids) ;
+    }
+    
+    /**
+     * Adapter for the callback executor.
+     * @author kevin
+     */
+    protected abstract static class CallbackExecutorAdapter implements CallbackExecutor
+    {
+        /**
+         * Execute method for an unknown identifier.
+         * @param ids The current ids.
+         */
+        public void executeUnknownIds(final String[] ids)
+        {
+            WSCLogger.arjLoggerI18N.debug("com.arjuna.webservices.base.processors.BaseProcessor_2", new Object[] {toString(ids)}) ;
+        }
+        
+        /**
+         * Convert an array of IDs to a comma separated string representation.
+         * @param ids The ids.
+         * @return The string representation.
+         */
+        private String toString(final String[] ids)
+        {
+            final int numIDs = (ids == null ? 0 : ids.length) ;
+            if (numIDs == 0)
+            {
+                return "" ;
+            }
+            else if (numIDs == 1)
+            {
+                return ids[0] ;
+            }
+            else
+            {
+                final StringBuffer buffer = new StringBuffer(ids[0]) ;
+                for(int count = 1 ; count < numIDs ; count++)
+                {
+                    buffer.append(", ") ;
+                    buffer.append(ids[count]) ;
+                }
+                return buffer.toString() ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/Callback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/Callback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/base/processors/Callback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.base.processors;
+
+/**
+ * Base class for callbacks.
+ * @author kevin
+ */
+public abstract class Callback
+{
+    /**
+     * The triggered flag.
+     */
+    private boolean triggered ;
+    /**
+     * The failed flag.
+     */
+    private boolean failed ;
+    
+    /**
+     * Has the callback triggered.
+     * @return true if triggered, false otherwise.
+     */
+    public final synchronized boolean hasTriggered()
+    {
+        return triggered ;
+    }
+    
+    /**
+     * Set the triggered flag.
+     */
+    public final synchronized void setTriggered()
+    {
+        triggered = true ;
+        notifyAll() ;
+    }
+    
+    /**
+     * Has the callback failed.
+     * @return true if failed, false otherwise.
+     */
+    public final synchronized boolean hasFailed()
+    {
+        return failed ;
+    }
+    
+    /**
+     * Set the failed flag.
+     */
+    public final synchronized void setFailed()
+    {
+        failed = true ;
+        notifyAll() ;
+    }
+    
+    /**
+     * Wait until the callback has triggered or failed.
+     */
+    public final void waitUntilTriggered()
+    {
+        waitUntilTriggered(0) ;
+    }
+    
+    /**
+     * Wait until the callback has triggered or failed.
+     * @param delay the timeout period in milliseconds.
+     */
+    public final synchronized void waitUntilTriggered(final long delay)
+    {
+        final long endTime = (delay <= 0 ? Long.MAX_VALUE : System.currentTimeMillis() + delay) ;
+        long now = System.currentTimeMillis() ;
+        while((endTime > now) && !(triggered || failed))
+        {
+            try
+            {
+                wait(endTime - now) ;
+            }
+            catch (final InterruptedException ie) {}
+            now = System.currentTimeMillis() ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+/*
+ * 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) 2005,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: WSCLogger.java,v 1.1.2.1 2005/11/22 10:32:48 kconner Exp $
+ */
+
+package com.arjuna.webservices.logging;
+
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
+import com.arjuna.common.util.logging.LogFactory;
+import com.arjuna.common.util.logging.LogNoi18n;
+import com.arjuna.common.util.logging.Logi18n;
+
+/**
+ * WS-C logger instances.
+ */
+public class WSCLogger
+{
+    /**
+     * The non I18N logger.
+     */
+    public static LogNoi18n      arjLogger;
+    /**
+     * The I18N logger.
+     */
+    public static Logi18n        arjLoggerI18N;
+    /**
+     * The message bundle.
+     */
+    public static ResourceBundle log_mesg;
+
+    static
+    {
+        /** Ensure the properties are loaded before initialising the logger **/
+        arjPropertyManager.getPropertyManager();
+            
+    	arjLogger = LogFactory.getLogNoi18n("com.arjuna.wsc.logging.WSCLogger");
+    
+        final String language = commonPropertyManager.propertyManager.getProperty("language","en");
+        final String country  = commonPropertyManager.propertyManager.getProperty("country","US");
+    
+    	final Locale currentLocale = new Locale(language, country);
+    	log_mesg = ResourceBundle.getBundle("wsc_msg",currentLocale);
+    	
+    	arjLoggerI18N = LogFactory.getLogi18n("com.arjuna.wsc.logging.WSCLoggerI18N",
+    					     "wsc_msg_"+language+"_"+country);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap11Details.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap11Details.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap11Details.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,478 @@
+/*
+ * 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.soap;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyElement;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.stax.TextElement;
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+
+/**
+ * The class implementing SOAP 1.1 specific processing.
+ * @author kevin
+ */
+public class Soap11Details implements SoapDetails
+{
+    /**
+     * The SOAP 1.1 namespace.
+     */
+    private static final String NAMESPACE_URI = "http://schemas.xmlsoap.org/soap/envelope/" ;
+    /**
+     * The SOAP 1.1 local name of the role attribute.
+     */
+    private static final String ROLE_LOCAL_NAME = "actor" ;
+    /**
+     * The qualified SOAP 1.1 role attribute. 
+     */
+    private final static QName QNAME_ATTRIBUTE_ROLE = getQName(ROLE_LOCAL_NAME) ;
+    /**
+     * The SOAP 1.1 next role.
+     */
+    private static final String NEXT_ROLE = NAMESPACE_URI + "http://schemas.xmlsoap.org/soap/actor/next" ;
+    /**
+     * The SOAP 1.1 last role.
+     */
+    private static final String LAST_ROLE = null ;
+    /**
+     * The SOAP 1.1 must understand value.
+     */
+    private final static String MUST_UNDERSTAND_VALUE = "1" ;
+    
+    /**
+     * The qualified SOAP 1.1 MustUnderstand name.
+     */
+    private final static QName QNAME_MUST_UNDERSTAND = getQName("mustUnderstand") ;
+    /**
+     * The qualified SOAP 1.1 Fault name. 
+     */
+    private final static QName QNAME_FAULT = getQName("Fault") ;
+    /**
+     * The qualified SOAP 1.1 faultcode name. 
+     */
+    private final static QName QNAME_FAULTCODE = new QName("faultcode") ;
+    /**
+     * The qualified SOAP 1.1 faultstring name. 
+     */
+    private final static QName QNAME_FAULTSTRING = new QName("faultstring") ;
+    /**
+     * The qualified SOAP 1.1 faultactor name. 
+     */
+    private final static QName QNAME_FAULTACTOR = new QName("faultactor") ;
+    /**
+     * The qualified SOAP 1.1 detail name. 
+     */
+    private final static QName QNAME_DETAIL = new QName("detail") ;
+    
+    /**
+     * The Fault Code for version mismatch.
+     */
+    private final static QName FAULT_CODE_VERSION_MISMATCH = getQName("VersionMismatch") ;
+    /**
+     * The Fault Code for must understand.
+     */
+    private final static QName FAULT_CODE_MUST_UNDERSTAND = getQName("MustUnderstand") ;
+    /**
+     * The Fault Code for sender.
+     */
+    private final static QName FAULT_CODE_SENDER = getQName("Client") ;
+    /**
+     * The Fault Code for receiver.
+     */
+    private final static QName FAULT_CODE_RECEIVER = getQName("Server") ;
+    
+    /**
+     * Get the SOAP version.
+     * @return The SOAP version
+     */
+    public String getVersion()
+    {
+        return SOAP_11_VERSION ;
+    }
+    
+    /**
+     * Get the SOAP namespace URI.
+     * @return The SOAP namespace URI.
+     */
+    public String getNamespaceURI()
+    {
+        return NAMESPACE_URI ;
+    }
+    
+    /**
+     * Get the local name of the role attribute.
+     * @return The role local name,
+     */
+    public String getRoleLocalName()
+    {
+        return ROLE_LOCAL_NAME ;
+    }
+    
+    /**
+     * Get the qualified name of the role attribute.
+     * @return The role qualified name,
+     */
+    public QName getRoleQName()
+    {
+        return QNAME_ATTRIBUTE_ROLE ;
+    }
+    
+    /**
+     * Get the SOAP name for the next role.
+     * @return The name of the next role.
+     */
+    public String getNextRole()
+    {
+        return NEXT_ROLE ;
+    }
+    
+    /**
+     * Get the SOAP name for the last role.
+     * @return The name of the last role.
+     */
+    public String getLastRole()
+    {
+        return LAST_ROLE ;
+    }
+    
+    /**
+     * Get the qualified SOAP Fault element name.
+     * @return The qualified SOAP Fault name.
+     */
+    public QName getFaultName()
+    {
+        return QNAME_FAULT ;
+    }
+    
+    /**
+     * Get the qualified name of the must understand attribute.
+     * @return The must understand qualified name.
+     */
+    public QName getMustUnderstandQName()
+    {
+        return QNAME_MUST_UNDERSTAND ;
+    }
+    
+    /**
+     * Get the value of the must understand attribute.
+     * @return The must understand value.
+     */
+    public String getMustUnderstandValue()
+    {
+        return MUST_UNDERSTAND_VALUE ;
+    }
+    
+    /**
+     * Write SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFaultHeaders(streamWriter, soapFault, false) ;
+    }
+    
+    /**
+     * Write a SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFault(streamWriter, soapFault, false) ;
+    }
+    
+    /**
+     * Write a header SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeHeaderSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFaultHeaders(streamWriter, soapFault, true) ;
+    }
+    
+    /**
+     * Write a header SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeHeaderSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFault(streamWriter, soapFault, true) ;
+    }
+    
+    /**
+     * Parse a SOAP fault from the stream.
+     * @param streamReader The input stream.
+     * @return The soap fault.
+     * @throws XMLStreamException For errors during reading.
+     * 
+     * @message com.arjuna.webservices.soap.Soap11Details_1 [com.arjuna.webservices.soap.Soap11Details_1] - Unexpected start element: {0}
+     */
+    public SoapFault parseSoapFault(final XMLStreamReader streamReader)
+        throws XMLStreamException
+    {
+        final SoapFault soapFault = new SoapFault() ;
+        
+        // faultcode processing
+        StreamHelper.checkNextStartTag(streamReader, QNAME_FAULTCODE) ;
+        final TextElement codeElement = new TextElement(streamReader) ;
+        final QName code = QNameHelper.toQName(streamReader.getNamespaceContext(), codeElement.getText()) ;
+        if (!NAMESPACE_URI.equals(code.getNamespaceURI()))
+        {
+            soapFault.setSoapFaultType(SoapFaultType.FAULT_SENDER) ;
+            soapFault.setSubcode(code) ;
+        }
+        else
+        {
+            soapFault.setSoapFaultType(getSoapFaultType(code)) ;
+        }
+        
+        // faultstring processing
+        StreamHelper.checkNextStartTag(streamReader, QNAME_FAULTSTRING) ;
+        final TextElement reasonElement = new TextElement(streamReader) ;
+        soapFault.setReason(reasonElement.getText()) ;
+        if (StreamHelper.checkParentFinished(streamReader))
+        {
+            return soapFault ;
+        }
+        
+        // faultactor if present
+        if (QNAME_FAULTACTOR.equals(streamReader.getName()))
+        {
+            final TextElement roleElement = new TextElement(streamReader) ;
+            soapFault.setRole(roleElement.getText()) ;
+            if (StreamHelper.checkParentFinished(streamReader))
+            {
+                return soapFault ;
+            }
+        }
+        
+        // detail if present
+        if (QNAME_DETAIL.equals(streamReader.getName()))
+        {
+            soapFault.setDetail(new NamedElement(null, new AnyElement(streamReader))) ;
+            if (StreamHelper.checkParentFinished(streamReader))
+            {
+                return soapFault ;
+            }
+        }
+        
+        final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.Soap11Details_1") ;
+        final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+        throw new XMLStreamException(message) ;
+    }
+
+    /**
+     * Get the headers passed with a MustUnderstand fault.
+     * @param headerName The name of the header that cannot be processed.
+     * @return The headers or null if none required.
+     */
+    public NamedElement[] getMustUnderstandHeaders(final QName headerName)
+    {
+        return null ;
+    }
+    
+    /**
+     * Write SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The SOAP fault.
+     * @param isHeaderFault true if the SOAP fault is generated during header processing.
+     * @throws XMLStreamException For errors during writing.
+     */
+    private void writeSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault, final boolean isHeaderFault)
+        throws XMLStreamException
+    {
+        final NamedElement[] headerElements = soapFault.getHeaderElements() ;
+        final int numHeaderElements = (headerElements == null ? 0 : headerElements.length) ;
+        for(int count = 0 ; count < numHeaderElements ; count++)
+        {
+            final NamedElement namedElement = headerElements[count] ;
+            final QName headerElementName = namedElement.getName() ;
+            final String namespaceURI = StreamHelper.writeStartElement(streamWriter, headerElementName) ;
+            namedElement.getElementContent().writeContent(streamWriter) ;
+            StreamHelper.writeEndElement(streamWriter, headerElementName.getPrefix(), namespaceURI) ;
+        }
+        
+        // Detail output
+        if (isHeaderFault)
+        {
+            final NamedElement detail = soapFault.getDetail() ;
+            if (detail != null)
+            {
+            		final QName detailName = detail.getName() ;
+            		if (detailName != null)
+            		{
+                    final String namespaceURI = StreamHelper.writeStartElement(streamWriter, detailName) ;
+                    detail.getElementContent().writeContent(streamWriter) ;
+                    StreamHelper.writeEndElement(streamWriter, detailName.getPrefix(), namespaceURI) ;
+            		}
+            }
+        }
+    }
+    
+    /**
+     * Write a SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The SOAP fault.
+     * @param isHeaderFault true if the SOAP fault is generated during header processing.
+     * @throws XMLStreamException For errors during writing.
+     */
+    private void writeSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault, final boolean isHeaderFault)
+        throws XMLStreamException
+    {
+        final String namespaceURI = StreamHelper.writeStartElement(streamWriter, QNAME_FAULT) ;
+        
+        final QName faultCode ;
+        final QName subcode = soapFault.getSubcode() ;
+        if (subcode != null)
+        {
+            faultCode = soapFault.getSubcode() ;
+        }
+        else
+        {
+            faultCode = getSoapFaultCodeQName(soapFault) ;
+        }
+        
+        final String faultCodeNamespaceURI = QNameHelper.getNormalisedValue(faultCode.getNamespaceURI()) ;
+        
+        if (faultCodeNamespaceURI.length() > 0)
+        {
+            StreamHelper.writeNamespace(streamWriter, faultCode.getPrefix(), faultCodeNamespaceURI) ;
+        }
+        
+        // faultcode output
+        StreamHelper.writeStartElement(streamWriter, QNAME_FAULTCODE) ;
+        StreamHelper.writeQualifiedName(streamWriter, faultCode) ;
+        StreamHelper.writeEndElement(streamWriter, null, null) ;
+        
+        // faultstring output
+        StreamHelper.writeStartElement(streamWriter, QNAME_FAULTSTRING) ;
+        streamWriter.writeCharacters(soapFault.getReason()) ;
+        StreamHelper.writeEndElement(streamWriter, null, null) ;
+        
+        // faultactor output
+        final String faultactor = soapFault.getRole() ;
+        if (faultactor != null)
+        {
+            StreamHelper.writeStartElement(streamWriter, QNAME_FAULTACTOR) ;
+            streamWriter.writeCharacters(faultactor) ;
+            StreamHelper.writeEndElement(streamWriter, null, null) ;
+        }
+        
+        // Detail output
+        if (!isHeaderFault)
+        {
+            final NamedElement detail = soapFault.getDetail() ;
+            if (detail != null)
+            {
+                StreamHelper.writeStartElement(streamWriter, QNAME_DETAIL) ;
+                final ElementContent detailContent = detail.getElementContent() ;
+                detailContent.writeContent(streamWriter) ;
+                StreamHelper.writeEndElement(streamWriter, null, null) ;
+            }
+        }
+        
+        StreamHelper.writeEndElement(streamWriter, QNAME_FAULT.getPrefix(), namespaceURI) ;
+    }
+    
+    /**
+     * Get the code qualified name for the SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @return The qualified name.
+     */
+    private QName getSoapFaultCodeQName(final SoapFault soapFault)
+    {
+        final SoapFaultType soapFaultType = soapFault.getSoapFaultType() ;
+        if (soapFaultType == SoapFaultType.FAULT_SENDER)
+        {
+            return FAULT_CODE_SENDER ;
+        }
+        else if (soapFaultType == SoapFaultType.FAULT_RECEIVER)
+        {
+            return FAULT_CODE_RECEIVER ;
+        }
+        else if (soapFaultType == SoapFaultType.FAULT_MUST_UNDERSTAND)
+        {
+            return FAULT_CODE_MUST_UNDERSTAND ;
+        }
+        else
+        {
+            return FAULT_CODE_VERSION_MISMATCH ;
+        }
+    }
+
+    /**
+     * Get the SOAP fault type corresponding to the qualified name.
+     * @param code The qualified name.
+     * @return The soap fault type.
+     */
+    private SoapFaultType getSoapFaultType(final QName code)
+    {
+        if (FAULT_CODE_SENDER.equals(code))
+        {
+            return SoapFaultType.FAULT_SENDER ;
+        }
+        else if (FAULT_CODE_RECEIVER.equals(code))
+        {
+            return SoapFaultType.FAULT_RECEIVER ;
+        }
+        else if (FAULT_CODE_MUST_UNDERSTAND.equals(code))
+        {
+            return SoapFaultType.FAULT_MUST_UNDERSTAND ;
+        }
+        else
+        {
+            return SoapFaultType.FAULT_VERSION_MISMATCH ;
+        }
+    }
+
+    /**
+     * Convenience for generating SOAP qualified names.
+     * @param localName The local name.
+     * @return The qualified name.
+     */
+    private static QName getQName(final String localName)
+    {
+        return new QName(NAMESPACE_URI, localName, SoapConstants.SOAP_PREFIX) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap12Details.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap12Details.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/Soap12Details.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,576 @@
+/*
+ * 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.soap;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyElement;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.stax.TextElement;
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+
+/**
+ * The class implementing SOAP 1.2 specific processing.
+ * @author kevin
+ * 
+ * @message com.arjuna.webservices.soap.Soap12Details_1 [com.arjuna.webservices.soap.Soap12Details_1] - Unexpected start element: {0}
+ */
+public class Soap12Details implements SoapDetails
+{
+    /**
+     * The SOAP 1.2 namespace.
+     */
+    private final static String NAMESPACE_URI = "http://www.w3.org/2003/05/soap-envelope" ;
+    /**
+     * The SOAP 1.2 local name of the role attribute.
+     */
+    private static final String ROLE_LOCAL_NAME = "role" ;
+    /**
+     * The qualified SOAP 1.2 role attribute. 
+     */
+    private final static QName QNAME_ATTRIBUTE_ROLE = getQName(ROLE_LOCAL_NAME) ;
+    /**
+     * The SOAP 1.2 next role.
+     */
+    private final static String NEXT_ROLE = NAMESPACE_URI + "/role/next" ;
+    /**
+     * The SOAP 1.2 none role.
+     */
+    private final static String NONE_ROLE = NAMESPACE_URI + "/role/none" ;
+    /**
+     * The SOAP 1.2 last role.
+     */
+    private final static String LAST_ROLE = NAMESPACE_URI + "/role/ultimateReceiver" ;
+    /**
+     * The SOAP 1.2 must understand value.
+     */
+    private final static String MUST_UNDERSTAND_VALUE = "true" ;
+    
+    /**
+     * The qualified SOAP 1.2 MustUnderstand name.
+     */
+    private final static QName QNAME_MUST_UNDERSTAND = getQName("mustUnderstand") ;
+    /**
+     * The qualified SOAP 1.2 Fault name. 
+     */
+    private final static QName QNAME_FAULT = getQName("Fault") ;
+    /**
+     * The qualified SOAP 1.2 Code name. 
+     */
+    private final static QName QNAME_CODE = getQName("Code") ;
+    /**
+     * The qualified SOAP 1.2 Reason name. 
+     */
+    private final static QName QNAME_REASON = getQName("Reason") ;
+    /**
+     * The qualified SOAP 1.2 Node name. 
+     */
+    private final static QName QNAME_NODE = getQName("Node") ;
+    /**
+     * The qualified SOAP 1.2 Role name. 
+     */
+    private final static QName QNAME_ROLE = getQName("Role") ;
+    /**
+     * The qualified SOAP 1.2 Detail name. 
+     */
+    private final static QName QNAME_DETAIL = getQName("Detail") ;
+    /**
+     * The qualified SOAP 1.2 Value name. 
+     */
+    private final static QName QNAME_VALUE = getQName("Value") ;
+    /**
+     * The qualified SOAP 1.2 Subcode name. 
+     */
+    private final static QName QNAME_SUBCODE = getQName("Subcode") ;
+    /**
+     * The qualified SOAP 1.2 Text name. 
+     */
+    private final static QName QNAME_TEXT = getQName("Text") ;
+    /**
+     * The qualified SOAP 1.2 NotUnderstood name.
+     */
+    private final static QName QNAME_NOT_UNDERSTOOD = getQName("NotUnderstood") ;
+    
+    /**
+     * The XML Lang attribute.
+     */
+    private final static QName QNAME_XML_LANG = new QName("http://www.w3.org/XML/1998/namespace", "lang", "xml") ;
+    
+    /**
+     * The Fault Code for version mismatch.
+     */
+    private final static QName FAULT_CODE_VERSION_MISMATCH = getQName("VersionMismatch") ;
+    /**
+     * The Fault Code for must understand.
+     */
+    private final static QName FAULT_CODE_MUST_UNDERSTAND = getQName("MustUnderstand") ;
+    /**
+     * The Fault Code for data encoding unknown.
+     */
+    private final static QName FAULT_CODE_DATA_ENCODING_UNKNOWN = getQName("DataEncodingUnknown") ;
+    /**
+     * The Fault Code for sender.
+     */
+    private final static QName FAULT_CODE_SENDER = getQName("Sender") ;
+    /**
+     * The Fault Code for receiver.
+     */
+    private final static QName FAULT_CODE_RECEIVER = getQName("Receiver") ;
+    
+    /**
+     * Get the SOAP version.
+     * @return The SOAP version
+     */
+    public String getVersion()
+    {
+        return SOAP_12_VERSION ;
+    }
+    
+    /**
+     * Get the SOAP namespace URI.
+     * @return The SOAP namespace URI.
+     */
+    public String getNamespaceURI()
+    {
+        return NAMESPACE_URI ;
+    }
+    
+    /**
+     * Get the local name of the role attribute.
+     * @return The role local name,
+     */
+    public String getRoleLocalName()
+    {
+        return ROLE_LOCAL_NAME ;
+    }
+    
+    /**
+     * Get the qualified name of the role attribute.
+     * @return The role qualified name,
+     */
+    public QName getRoleQName()
+    {
+        return QNAME_ATTRIBUTE_ROLE ;
+    }
+    
+    /**
+     * Get the SOAP name for the next role.
+     * @return The name of the next role.
+     */
+    public String getNextRole()
+    {
+        return NEXT_ROLE ;
+    }
+    
+    /**
+     * Get the SOAP name for the none role.
+     * @return The name of the none role.
+     */
+    public String getNoneRole()
+    {
+        return NONE_ROLE ;
+    }
+    
+    /**
+     * Get the SOAP name for the last role.
+     * @return The name of the last role.
+     */
+    public String getLastRole()
+    {
+        return LAST_ROLE ;
+    }
+    
+    /**
+     * Get the qualified SOAP Fault element name.
+     * @return The qualified SOAP Fault name.
+     */
+    public QName getFaultName()
+    {
+        return QNAME_FAULT ;
+    }
+    
+    /**
+     * Get the qualified name of the must understand attribute.
+     * @return The must understand qualified name,
+     */
+    public QName getMustUnderstandQName()
+    {
+        return QNAME_MUST_UNDERSTAND ;
+    }
+    
+    /**
+     * Get the value of the must understand attribute.
+     * @return The must understand value.
+     */
+    public String getMustUnderstandValue()
+    {
+        return MUST_UNDERSTAND_VALUE ;
+    }
+    
+    /**
+     * Write SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFaultHeaders(streamWriter, soapFault, false) ;
+    }
+    
+    /**
+     * Write a SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The SOAP fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFault(streamWriter, soapFault, false) ;
+    }
+    
+    /**
+     * Write a header SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeHeaderSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFaultHeaders(streamWriter, soapFault, true) ;
+    }
+    
+    /**
+     * Write a header SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The SOAP fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeHeaderSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException
+    {
+        writeSoapFault(streamWriter, soapFault, true) ;
+    }
+    
+    /**
+     * Parse a SOAP fault from the stream.
+     * @param streamReader The input stream.
+     * @return The SOAP fault.
+     * @throws XMLStreamException For errors during reading.
+     */
+    public SoapFault parseSoapFault(final XMLStreamReader streamReader)
+        throws XMLStreamException
+    {
+            final SoapFault soapFault = new SoapFault() ;
+            
+            // Code processing
+            StreamHelper.checkNextStartTag(streamReader, QNAME_CODE) ;
+            StreamHelper.checkNextStartTag(streamReader, QNAME_VALUE) ;
+            final TextElement codeElement = new TextElement(streamReader) ;
+            final QName code = QNameHelper.toQName(streamReader.getNamespaceContext(), codeElement.getText()) ;
+            soapFault.setSoapFaultType(getSoapFaultType(code)) ;
+            if (!StreamHelper.checkParentFinished(streamReader))
+            {
+                StreamHelper.checkTag(streamReader, QNAME_SUBCODE) ;
+                StreamHelper.checkNextStartTag(streamReader, QNAME_VALUE) ;
+                final TextElement subcodeElement = new TextElement(streamReader) ;
+                soapFault.setSubcode(QNameHelper.toQName(streamReader.getNamespaceContext(), subcodeElement.getText())) ;
+                if (!StreamHelper.checkParentFinished(streamReader))
+                {
+                    StreamHelper.checkTag(streamReader, QNAME_SUBCODE) ;
+                    StreamHelper.checkNextStartTag(streamReader, QNAME_VALUE) ;
+                    final TextElement subSubcodeElement = new TextElement(streamReader) ;
+                    soapFault.setSubSubcode(QNameHelper.toQName(streamReader.getNamespaceContext(), subSubcodeElement.getText())) ;
+                    if (!StreamHelper.checkParentFinished(streamReader))
+                    {
+                        // Throw away any subcodes as we only support two level.
+                        new AnyElement(streamReader) ;
+                        if (!StreamHelper.checkParentFinished(streamReader))
+                        {
+                            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.Soap12Details_1") ;
+                            final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+                            throw new XMLStreamException(message) ;
+                        }
+                    }
+                    if (!StreamHelper.checkParentFinished(streamReader))
+                    {
+                        final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.Soap12Details_1") ;
+                        final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+                        throw new XMLStreamException(message) ;
+                    }
+                }
+                if (!StreamHelper.checkParentFinished(streamReader))
+                {
+                    final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.Soap12Details_1") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+                    throw new XMLStreamException(message) ;
+                }
+            }
+            
+            // Reason processing
+            StreamHelper.checkNextStartTag(streamReader, QNAME_REASON) ;
+            StreamHelper.checkNextStartTag(streamReader, QNAME_TEXT) ;
+            final TextElement reasonElement = new TextElement(streamReader) ;
+            soapFault.setReason(reasonElement.getText()) ;
+            if (!StreamHelper.checkParentFinished(streamReader))
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.Soap12Details_1") ;
+                final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+                throw new XMLStreamException(message) ;
+            }
+            if (StreamHelper.checkParentFinished(streamReader))
+            {
+                return soapFault ;
+            }
+            
+            // Node if present
+            if (QNAME_NODE.equals(streamReader.getName()))
+            {
+                final TextElement nodeElement = new TextElement(streamReader) ;
+                soapFault.setNode(nodeElement.getText()) ;
+                if (StreamHelper.checkParentFinished(streamReader))
+                {
+                    return soapFault ;
+                }
+            }
+            // Role if present
+            if (QNAME_ROLE.equals(streamReader.getName()))
+            {
+                final TextElement roleElement = new TextElement(streamReader) ;
+                soapFault.setRole(roleElement.getText()) ;
+                if (StreamHelper.checkParentFinished(streamReader))
+                {
+                    return soapFault ;
+                }
+            }
+            
+            // Detail if present
+            if (QNAME_DETAIL.equals(streamReader.getName()))
+            {
+                soapFault.setDetail(new NamedElement(null, new AnyElement(streamReader))) ;
+                if (StreamHelper.checkParentFinished(streamReader))
+                {
+                    return soapFault ;
+                }
+            }
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.Soap12Details_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+            throw new XMLStreamException(message) ;
+    }
+
+    /**
+     * Get the headers passed with a MustUnderstand fault.
+     * @param headerName The name of the header that cannot be processed.
+     * @return The headers or null if none required.
+     */
+    public NamedElement[] getMustUnderstandHeaders(final QName headerName)
+    {
+        final ElementContent notUnderstoodElement = new SoapNotUnderstoodType(headerName) ;
+        final NamedElement header = new NamedElement(QNAME_NOT_UNDERSTOOD, notUnderstoodElement) ;
+        return new NamedElement[] {header} ;
+    }
+    
+    /**
+     * Write SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The SOAP fault.
+     * @param isHeaderFault true if the SOAP fault is generated during header processing.
+     * @throws XMLStreamException For errors during writing.
+     */
+    private void writeSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault, final boolean isHeaderFault)
+        throws XMLStreamException
+    {
+        final NamedElement[] headerElements = soapFault.getHeaderElements() ;
+        final int numHeaderElements = (headerElements == null ? 0 : headerElements.length) ;
+        for(int count = 0 ; count < numHeaderElements ; count++)
+        {
+            final NamedElement namedElement = headerElements[count] ;
+            final QName headerElementName = namedElement.getName() ;
+            final String namespaceURI = StreamHelper.writeStartElement(streamWriter, headerElementName) ;
+            namedElement.getElementContent().writeContent(streamWriter) ;
+            StreamHelper.writeEndElement(streamWriter, headerElementName.getPrefix(), namespaceURI) ;
+        }
+    }
+    
+    /**
+     * Write a SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The SOAP fault.
+     * @param isHeaderFault true if the SOAP fault is generated during header processing.
+     * @throws XMLStreamException For errors during writing.
+     */
+    private void writeSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault, final boolean isHeaderFault)
+        throws XMLStreamException
+    {
+        final String namespaceURI = StreamHelper.writeStartElement(streamWriter, QNAME_FAULT) ;
+        
+        // Code output
+        StreamHelper.writeStartElement(streamWriter, QNAME_CODE) ;
+        
+        StreamHelper.writeStartElement(streamWriter, QNAME_VALUE) ;
+        StreamHelper.writeQualifiedName(streamWriter, getSoapFaultCodeQName(soapFault)) ;
+        StreamHelper.writeEndElement(streamWriter, null, null) ;
+        
+        final QName subcode = soapFault.getSubcode() ;
+        if (subcode != null)
+        {
+            StreamHelper.writeStartElement(streamWriter, QNAME_SUBCODE) ;
+            StreamHelper.writeStartElement(streamWriter, QNAME_VALUE) ;
+            StreamHelper.writeQualifiedName(streamWriter, subcode) ;
+            StreamHelper.writeEndElement(streamWriter, null, null) ;
+            
+            final QName subSubcode = soapFault.getSubSubcode() ;
+            if (subSubcode != null)
+            {
+                StreamHelper.writeStartElement(streamWriter, QNAME_SUBCODE) ;
+                StreamHelper.writeStartElement(streamWriter, QNAME_VALUE) ;
+                StreamHelper.writeQualifiedName(streamWriter, subSubcode) ;
+                StreamHelper.writeEndElement(streamWriter, null, null) ;
+                StreamHelper.writeEndElement(streamWriter, null, null) ;
+            }
+            StreamHelper.writeEndElement(streamWriter, null, null) ;
+        }
+        
+        StreamHelper.writeEndElement(streamWriter, null, null) ;
+        
+        // Reason output
+        StreamHelper.writeStartElement(streamWriter, QNAME_REASON) ;
+        StreamHelper.writeStartElement(streamWriter, QNAME_TEXT) ;
+        StreamHelper.writeAttribute(streamWriter, QNAME_XML_LANG, Locale.getDefault().getLanguage()) ;
+        streamWriter.writeCharacters(soapFault.getReason()) ;
+        StreamHelper.writeEndElement(streamWriter, null, null) ;
+        StreamHelper.writeEndElement(streamWriter, null, null) ;
+        
+        // Node output
+        final String node = soapFault.getNode() ;
+        if (node != null)
+        {
+            StreamHelper.writeStartElement(streamWriter, QNAME_NODE) ;
+            streamWriter.writeCharacters(node) ;
+            StreamHelper.writeEndElement(streamWriter, null, null) ;
+        }
+        
+        // Role output
+        final String role = soapFault.getNode() ;
+        if (role != null)
+        {
+            StreamHelper.writeStartElement(streamWriter, QNAME_ROLE) ;
+            streamWriter.writeCharacters(role) ;
+            StreamHelper.writeEndElement(streamWriter, null, null) ;
+        }
+        
+        // Detail output
+        final NamedElement detail = soapFault.getDetail() ;
+        if (detail != null)
+        {
+            StreamHelper.writeStartElement(streamWriter, QNAME_DETAIL) ;
+            final ElementContent detailContent = detail.getElementContent() ;
+            detailContent.writeContent(streamWriter) ;
+            StreamHelper.writeEndElement(streamWriter, null, null) ;
+        }
+        
+        StreamHelper.writeEndElement(streamWriter, QNAME_FAULT.getPrefix(), namespaceURI) ;
+    }
+    
+    /**
+     * Get the code qualified name for the SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @return The qualified name.
+     */
+    private QName getSoapFaultCodeQName(final SoapFault soapFault)
+    {
+        final SoapFaultType soapFaultType = soapFault.getSoapFaultType() ;
+        if (soapFaultType == SoapFaultType.FAULT_SENDER)
+        {
+            return FAULT_CODE_SENDER ;
+        }
+        else if (soapFaultType == SoapFaultType.FAULT_RECEIVER)
+        {
+            return FAULT_CODE_RECEIVER ;
+        }
+        else if (soapFaultType == SoapFaultType.FAULT_MUST_UNDERSTAND)
+        {
+            return FAULT_CODE_MUST_UNDERSTAND ;
+        }
+        else if (soapFaultType == SoapFaultType.FAULT_VERSION_MISMATCH)
+        {
+            return FAULT_CODE_VERSION_MISMATCH ;
+        }
+        else
+        {
+            return FAULT_CODE_DATA_ENCODING_UNKNOWN ;
+        }
+    }
+
+    /**
+     * Get the SOAP fault type corresponding to the qualified name.
+     * @param code The qualified name.
+     * @return The soap fault type.
+     */
+    private SoapFaultType getSoapFaultType(final QName code)
+    {
+        if (FAULT_CODE_SENDER.equals(code))
+        {
+            return SoapFaultType.FAULT_SENDER ;
+        }
+        else if (FAULT_CODE_RECEIVER.equals(code))
+        {
+            return SoapFaultType.FAULT_RECEIVER ;
+        }
+        else if (FAULT_CODE_MUST_UNDERSTAND.equals(code))
+        {
+            return SoapFaultType.FAULT_MUST_UNDERSTAND ;
+        }
+        else if (FAULT_CODE_VERSION_MISMATCH.equals(code))
+        {
+            return SoapFaultType.FAULT_VERSION_MISMATCH ;
+        }
+        else
+        {
+            return SoapFaultType.FAULT_DATA_ENCODING_UNKNOWN ;
+        }
+    }
+    
+    /**
+     * Convenience for generating SOAP qualified names.
+     * @param localName The local name.
+     * @return The qualified name.
+     */
+    private static QName getQName(final String localName)
+    {
+        return new QName(NAMESPACE_URI, localName, SoapConstants.SOAP_PREFIX) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapBodyMessage.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapBodyMessage.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapBodyMessage.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices.soap;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * SOAP message representing a normal message.
+ * @author kevin
+ */
+public class SoapBodyMessage extends SoapMessageBase
+{
+    /**
+     * The SOAP body.
+     */
+    private final SoapBody soapBody ;
+    
+    /**
+     * Construct the SOAP body message.
+     * @param soapBody The SOAP body.
+     * @param soapService The SOAP service.
+     * @param messageContext The message context.
+     */
+    public SoapBodyMessage(final SoapBody soapBody, final SoapService soapService,
+        final MessageContext messageContext)
+    {
+        this(soapBody, null, soapService, messageContext) ;
+    }
+    
+    /**
+     * Construct the SOAP body message.
+     * @param soapBody The SOAP body.
+     * @param soapDetails The SOAP service details.
+     * @param soapService The SOAP service.
+     * @param messageContext The message context.
+     */
+    public SoapBodyMessage(final SoapBody soapBody, final SoapDetails soapDetails,
+       final SoapService soapService, final MessageContext messageContext)
+    {
+        super(soapDetails, soapService, messageContext) ;
+        this.soapBody = soapBody ;
+    }
+
+    /**
+     * Does the message represent a fault?
+     * @return true if a fault, false otherwise.
+     */
+    public boolean isFault()
+    {
+        return false ;
+    }
+    
+    /**
+     * Get the SOAP body.
+     * @return The SOAP body.
+     */
+    public SoapBody getSoapBody()
+    {
+        return soapBody ;
+    }
+    
+    /**
+     * Get the action URI for the message.
+     * @return The action URI for the message.
+     */
+    public String getAction()
+    {
+        return soapBody.getAction() ;
+    }
+    
+    /**
+     * Write the headers specific to the message.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException For errors during writing.
+     */
+    protected void writeMessageHeaders(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        // No headers to write.
+    }
+    
+    /**
+     * Write the body specific to the message.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException For errors during writing.
+     */
+    protected void writeMessageBody(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        if (soapBody != null)
+        {
+            final NamedElement bodyElement = soapBody.getContents() ;
+            if (bodyElement != null)
+            {
+                final QName bodyElementName = bodyElement.getName() ;
+                final String namespaceURI = StreamHelper.writeStartElement(streamWriter, bodyElementName) ;
+                bodyElement.getElementContent().writeContent(streamWriter) ;
+                StreamHelper.writeEndElement(streamWriter, bodyElementName.getPrefix(), namespaceURI) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.soap;
+
+/**
+ * Common constants for SOAP.
+ * @author kevin
+ */
+public interface SoapConstants
+{
+    /**
+     * The local name for a SOAP envelope.
+     */
+    public String SOAP_ENVELOPE_NAME = "Envelope" ;
+    /**
+     * The local name for a SOAP header.
+     */
+    public String SOAP_HEADER_NAME = "Header" ;
+    /**
+     * The local name for a SOAP body.
+     */
+    public String SOAP_BODY_NAME = "Body" ;
+    /**
+     * The local name for a SOAP mustUnderstand attribute.
+     */
+    public String SOAP_MUST_UNDERSTAND_NAME = "mustUnderstand" ;
+    /**
+     * The prefix for SOAP elements.
+     */
+    public String SOAP_PREFIX = "soap" ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapDetails.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapDetails.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapDetails.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.soap;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.stax.NamedElement;
+
+/**
+ * The interface representing SOAP specific processing.
+ * @author kevin
+ */
+public interface SoapDetails
+{
+    /**
+     * The version string for SOAP 1.1.
+     */
+    public static String SOAP_11_VERSION = "1.1" ;
+    
+    /**
+     * The version string for SOAP 1.2.
+     */
+    public static String SOAP_12_VERSION = "1.2" ;
+    
+    /**
+     * Get the SOAP version.
+     * @return The SOAP version
+     */
+    public String getVersion() ;
+    
+    /**
+     * Get the SOAP namespace URI.
+     * @return The SOAP namespace URI.
+     */
+    public String getNamespaceURI() ;
+    
+    /**
+     * Get the local name of the role attribute.
+     * @return The role local name,
+     */
+    public String getRoleLocalName() ;
+    
+    /**
+     * Get the qualified name of the role attribute.
+     * @return The role qualified name,
+     */
+    public QName getRoleQName() ;
+    
+    /**
+     * Get the SOAP name for the next role.
+     * @return The name of the next role.
+     */
+    public String getNextRole() ;
+    
+    /**
+     * Get the SOAP name for the last role.
+     * @return The name of the last role.
+     */
+    public String getLastRole() ;
+    
+    /**
+     * Get the qualified SOAP Fault element name.
+     * @return The qualified SOAP Fault name.
+     */
+    public QName getFaultName() ;
+    
+    /**
+     * Get the qualified name of the must understand attribute.
+     * @return The must understand qualified name.
+     */
+    public QName getMustUnderstandQName() ;
+    
+    /**
+     * Get the value of the must understand attribute.
+     * @return The must understand value.
+     */
+    public String getMustUnderstandValue() ;
+    
+    /**
+     * Write SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException ;
+    
+    /**
+     * Write a SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException ;
+    
+    /**
+     * Write a header SOAP fault headers to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeHeaderSoapFaultHeaders(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException ;
+    
+    /**
+     * Write a header SOAP fault to the stream.
+     * @param streamWriter The output stream.
+     * @param soapFault The soap fault.
+     * @throws XMLStreamException For errors during writing.
+     */
+    public void writeHeaderSoapFault(final XMLStreamWriter streamWriter, final SoapFault soapFault)
+        throws XMLStreamException ;
+    
+    /**
+     * Parse a SOAP fault from the stream.
+     * @param streamReader The input stream.
+     * @return The soap fault.
+     * @throws XMLStreamException For errors during reading.
+     */
+    public SoapFault parseSoapFault(final XMLStreamReader streamReader)
+        throws XMLStreamException ;
+
+    /**
+     * Get the headers passed with a MustUnderstand fault.
+     * @param headerName The name of the header that cannot be processed.
+     * @return The headers or null if none required.
+     */
+    public NamedElement[] getMustUnderstandHeaders(final QName headerName) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapFaultMessage.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapFaultMessage.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapFaultMessage.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,127 @@
+/*
+ * 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.soap;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapService;
+
+/**
+ * SOAP message representing a fault.
+ * @author kevin
+ */
+public class SoapFaultMessage extends SoapMessageBase
+{
+    /**
+     * The message SOAP fault.
+     */
+    private final SoapFault soapFault ;
+    
+    /**
+     * Construct a SOAP fault message.
+     * @param soapFault The SOAP fault.
+     * @param soapDetails The SOAP service details.
+     */
+    public SoapFaultMessage(final SoapFault soapFault, final SoapDetails soapDetails)
+    {
+        this(soapFault, soapDetails, null, null) ;
+    }
+    
+    /**
+     * Construct a SOAP service fault message.
+     * @param soapFault The SOAP fault.
+     * @param soapDetails The SOAP service details.
+     * @param soapService The SOAP service.
+     * @param messageContext The message context.
+     */
+    public SoapFaultMessage(final SoapFault soapFault, final SoapDetails soapDetails,
+        final SoapService soapService, final MessageContext messageContext)
+    {
+        super(soapDetails, soapService, messageContext) ;
+        this.soapFault = soapFault ;
+    }
+    
+    /**
+     * Does the message represent a fault?
+     * @return true if a fault, false otherwise.
+     */
+    public boolean isFault()
+    {
+        return true ;
+    }
+    
+    /**
+     * Get the SOAP fault.
+     * @return The SOAP fault.
+     */
+    public SoapFault getSoapFault()
+    {
+        return soapFault ;
+    }
+    
+    /**
+     * Get the action URI for the message.
+     * @return The action URI for the message.
+     */
+    public String getAction()
+    {
+        return soapFault.getAction() ;
+    }
+    
+    /**
+     * Write the headers specific to the message.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException For errors during writing.
+     */
+    protected void writeMessageHeaders(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        if (getSoapService() != null)
+        {
+            getSoapDetails().writeSoapFaultHeaders(streamWriter, soapFault) ;
+        }
+        else
+        {
+            getSoapDetails().writeHeaderSoapFaultHeaders(streamWriter, soapFault) ;
+        }
+    }
+    
+    /**
+     * Write the body specific to the message.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException For errors during writing.
+     */
+    protected void writeMessageBody(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        if (getSoapService() != null)
+        {
+            getSoapDetails().writeSoapFault(streamWriter, soapFault) ;
+        }
+        else
+        {
+            getSoapDetails().writeHeaderSoapFault(streamWriter, soapFault) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapMessageBase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapMessageBase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapMessageBase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,209 @@
+/*
+ * 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.soap;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.util.StreamHelper;
+
+abstract class SoapMessageBase implements SoapMessage
+{
+    /**
+     * The SOAP details for this service.
+     */
+    private final SoapDetails soapDetails ;
+    /**
+     * The SOAP service.
+     */
+    private final SoapService soapService ;
+    /**
+     * The message context.
+     */
+    private final MessageContext messageContext ;
+
+    /**
+     * Construct the SOAP message base.
+     * @param soapDetails The SOAP details.
+     * @param soapService The SOAP service.
+     * @param messageContext The message context.
+     */
+    protected SoapMessageBase(final SoapDetails soapDetails, final SoapService soapService,
+        final MessageContext messageContext)
+    {
+        this.soapDetails = (soapDetails == null ? new Soap11Details() : soapDetails) ;
+        this.soapService = soapService ;
+        this.messageContext = messageContext ;
+    }
+    
+    /**
+     * Get the action URI for the message.
+     * @return The action URI for the message.
+     */
+    public abstract String getAction() ;
+    
+    /**
+     * Output the message to the output stream.
+     * @param writer The output writer.
+     * @throws IOException If errors occur during output.
+     */
+    public void output(final Writer writer)
+        throws IOException
+    {
+        try
+        {
+            final XMLStreamWriter xmlWriter = SoapUtils.getXMLStreamWriter(writer);
+
+            writeEnvelope(xmlWriter);
+            xmlWriter.flush();
+        }
+        catch (final XMLStreamException xmlse)
+        {
+            throw new IOException(xmlse.toString()) ;
+        }
+    }
+    
+    /**
+     * Output the envelope to the stream writer.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException If errors occur during output.
+     */
+    private void writeEnvelope(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        final QName envelopeName = getQualifiedName(SoapConstants.SOAP_ENVELOPE_NAME) ;
+        final String envNamespace = StreamHelper.writeStartElement(streamWriter, envelopeName) ;
+        
+        writeHeaders(streamWriter) ;
+        writeBody(streamWriter) ;
+        
+        StreamHelper.writeEndElement(streamWriter, envelopeName.getPrefix(), envNamespace) ;
+    }
+    
+    /**
+     * Output the headers to the stream writer.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException If errors occur during output.
+     */
+    private void writeHeaders(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        final QName headerName = getQualifiedName(SoapConstants.SOAP_HEADER_NAME) ;
+        final String headerNamespace = StreamHelper.writeStartElement(streamWriter, headerName) ;
+        
+        writeMessageHeaders(streamWriter) ;
+        
+        if (soapService != null)
+        {
+            final Map headerHandlers = soapService.getHeaderHandlers() ;
+            final Iterator headerHandlerEntryIterator = headerHandlers.entrySet().iterator() ;
+            while(headerHandlerEntryIterator.hasNext())
+            {
+                final Map.Entry entry = (Map.Entry)headerHandlerEntryIterator.next() ;
+                final QName headerHandlerName = (QName)entry.getKey() ;
+                final HeaderHandler headerHandler = (HeaderHandler)entry.getValue() ;
+                headerHandler.writeContent(streamWriter, headerHandlerName, messageContext, soapDetails) ;
+            }
+        }
+        
+        StreamHelper.writeEndElement(streamWriter, headerName.getPrefix(), headerNamespace) ;
+    }
+    
+    /**
+     * Output the body to the stream writer.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException If errors occur during output.
+     */
+    private void writeBody(final XMLStreamWriter streamWriter)
+        throws XMLStreamException
+    {
+        final QName bodyName = getQualifiedName(SoapConstants.SOAP_BODY_NAME) ;
+        final String bodyNamespace = StreamHelper.writeStartElement(streamWriter, bodyName) ;
+        
+        writeMessageBody(streamWriter) ;
+        
+        StreamHelper.writeEndElement(streamWriter, bodyName.getPrefix(), bodyNamespace) ;
+    }
+    
+    /**
+     * Get the SOAP qualified name.
+     * @param localName The local name.
+     * @return The SOAP qualified name.
+     */
+    protected QName getQualifiedName(final String localName)
+    {
+        return new QName(soapDetails.getNamespaceURI(), localName,
+            SoapConstants.SOAP_PREFIX) ;
+    }
+    
+    /**
+     * Get the SOAP details associated with this message.
+     * @return The SOAP details.
+     */
+    public SoapDetails getSoapDetails()
+    {
+        return soapDetails ;
+    }
+    
+    /**
+     * Get the SOAP service associated with this message.
+     * @return The SOAP service or null if not known.
+     */
+    public SoapService getSoapService()
+    {
+        return soapService ;
+    }
+    
+    /**
+     * Get the message context associated with this message.
+     * @return The message context or null if not known.
+     */
+    public MessageContext getMessageContext()
+    {
+        return messageContext ;
+    }
+    
+    /**
+     * Write the headers specific to the message.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException For errors during writing.
+     */
+    protected abstract void writeMessageHeaders(final XMLStreamWriter streamWriter)
+        throws XMLStreamException ;
+    
+    /**
+     * Write the body specific to the message.
+     * @param streamWriter The stream writer.
+     * @throws XMLStreamException For errors during writing.
+     */
+    protected abstract void writeMessageBody(final XMLStreamWriter streamWriter)
+        throws XMLStreamException ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapNotUnderstoodType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapNotUnderstoodType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapNotUnderstoodType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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.soap;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * Representation of the NotUnderstood header element.
+ * @author kevin
+ */
+public class SoapNotUnderstoodType extends ElementContent
+{
+    /**
+     * The local name of the qname.
+     */
+    private static final String QNAME_LOCAL_NAME = "qname" ;
+    /**
+     * The qualified name of the qname.
+     */
+    private static final QName QNAME_NAME = new QName(QNAME_LOCAL_NAME) ;
+        
+    /**
+     * The value of the qName.
+     */
+    private QName qName ;
+    
+    /**
+     * Construct the NotUnderstood type.
+     * @param qName The header qualified name.
+     */
+    public SoapNotUnderstoodType(final QName qName)
+    {
+        this.qName = qName ;
+    }
+    
+    /**
+     * Construct the NotUnderstood from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public SoapNotUnderstoodType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.soap.SoapNotUnderstoodType_1 [com.arjuna.webservices.soap.SoapNotUnderstoodType_1] - NotUnderstood elements cannot have embedded elements.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.SoapNotUnderstoodType_1")) ;
+    }
+    
+    /**
+     * Add the attribute value.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+        final String namespaceURI = attributeName.getNamespaceURI() ;
+        if (((namespaceURI == null) || (namespaceURI.length() == 0)) &&
+            QNAME_LOCAL_NAME.equals(attributeName.getLocalPart()))
+        {
+            setQName(QNameHelper.toQName(in.getNamespaceContext(), attributeValue)) ;
+        }
+        else
+        {
+            super.putAttribute(in, attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Set the qName of this element.
+     * @param qName The qName of the element.
+     */
+    public void setQName(final QName qName)
+    {
+        this.qName = qName ;
+    }
+    
+    /**
+     * Get the qName of this element.
+     * @return The qName of the element or null if not set.
+     */
+    public QName getQName()
+    {
+        return qName ;
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeAttribute(out, QNAME_NAME, qName) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (qName != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapParser.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapParser.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapParser.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,361 @@
+/*
+ * 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.soap;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.InterceptorChain;
+import com.arjuna.webservices.InterceptorHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.ElementConsumer;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * Utility class for SOAP parsing.
+ * @author kevin
+ */
+public class SoapParser
+{
+    /**
+     * Handle the processing of the SOAP request.
+     * @param messageContext The current message context.
+     * @param messageResponseContext The current message response context.
+     * @param action The transport SOAP action.
+     * @param streamReader The XML stream reader.
+     * @param soapService The SOAP service.
+     * @param soapDetails The SOAP details.
+     * @return The SOAP response.
+     * @throws XMLStreamException For XML parsing errors.
+     * @throws SoapFault For SOAP processing errors.
+     * 
+     * @message com.arjuna.webservices.soap.SoapParser_1 [com.arjuna.webservices.soap.SoapParser_1] - Unexpected element: {0}
+     * @message com.arjuna.webservices.soap.SoapParser_2 [com.arjuna.webservices.soap.SoapParser_2] - Unexpected body element: {0}
+     */
+    public static SoapBody parse(final MessageContext messageContext, final MessageContext messageResponseContext,
+        final String action, final XMLStreamReader streamReader, final SoapService soapService,
+        final SoapDetails soapDetails)
+        throws XMLStreamException, SoapFault
+    {
+        StreamHelper.skipToStartElement(streamReader) ;
+        if (!(SoapConstants.SOAP_ENVELOPE_NAME.equals(streamReader.getLocalName()) &&
+            soapDetails.getNamespaceURI().equals(streamReader.getNamespaceURI())))
+        {
+            throw new SoapFault(SoapFaultType.FAULT_VERSION_MISMATCH,
+                streamReader.getName().toString()) ;
+        }
+        
+        StreamHelper.skipToNextStartElement(streamReader) ;
+        
+        if (SoapConstants.SOAP_HEADER_NAME.equals(streamReader.getLocalName()) &&
+            soapDetails.getNamespaceURI().equals(streamReader.getNamespaceURI()))
+        {
+            handleHeaders(messageContext, streamReader, soapService, soapDetails) ;
+            streamReader.require(XMLStreamConstants.END_ELEMENT,
+                soapDetails.getNamespaceURI(), SoapConstants.SOAP_HEADER_NAME) ;
+            StreamHelper.skipToNextStartElement(streamReader) ;
+        }
+        
+        if (!(SoapConstants.SOAP_BODY_NAME.equals(streamReader.getLocalName()) &&
+            soapDetails.getNamespaceURI().equals(streamReader.getNamespaceURI())))
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.SoapParser_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+            throw new SoapFault(SoapFaultType.FAULT_SENDER, message) ;
+        }
+        
+        StreamHelper.skipToNextStartElement(streamReader) ;
+        final QName bodyName = streamReader.getName() ;
+        final BodyHandler bodyHandler ;
+        final BodyHandler namedBodyHandler = soapService.getBodyHandler(bodyName) ;
+        if (namedBodyHandler == null)
+        {
+            if (!bodyName.equals(soapDetails.getFaultName()))
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.SoapParser_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+                throw new SoapFault(SoapFaultType.FAULT_SENDER, message) ;
+            }
+            bodyHandler = soapService.getFaultHandler() ;
+        }
+        else
+        {
+            bodyHandler = namedBodyHandler ;
+        }
+        
+        final Set interceptorHandlers = soapService.getInterceptorHandlers() ;
+        try
+        {
+            if (interceptorHandlers.size() > 0)
+            {
+                final Iterator interceptorHandlerIter = interceptorHandlers.iterator() ;
+                InterceptorChain interceptorChain = new InterceptorBodyHandler(bodyHandler) ;
+                do
+                {
+                    final InterceptorHandler handler = (InterceptorHandler)interceptorHandlerIter.next();
+                    interceptorChain = new InterceptorChainHandler(interceptorChain, handler) ;
+                }
+                while (interceptorHandlerIter.hasNext()) ;
+                
+                return interceptorChain.invokeNext(soapService, soapDetails, messageContext, messageResponseContext, action, streamReader) ;
+            }
+            else
+            {
+                return bodyHandler.invoke(soapDetails, messageContext, messageResponseContext, action, streamReader) ;
+            }
+        }
+        catch (final SoapFault sf)
+        {
+            throw sf ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SoapFault(th) ;
+        }
+    }
+    
+    /**
+     * Handle the processing of the headers.
+     * @param messageContext The current message context.
+     * @param streamReader The XML stream reader.
+     * @param soapService The SOAP service.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException For XML parsing errors.
+     * @throws SoapFault For SOAP processing errors. 
+     */
+    private static void handleHeaders(final MessageContext messageContext, final XMLStreamReader streamReader,
+            final SoapService soapService, final SoapDetails soapDetails)
+        throws XMLStreamException, SoapFault
+    {
+        boolean finished = false ;
+        final LinkedList handlers = new LinkedList() ;
+        try
+        {
+            do
+            {
+                streamReader.nextTag() ;
+                if (streamReader.isEndElement())
+                {
+                    finished = true ;
+                }
+                else
+                {
+                    final String role = streamReader.getAttributeValue(soapDetails.getNamespaceURI(), soapDetails.getRoleLocalName()) ;
+                    if ((role == null) || role.equals(soapDetails.getLastRole()) ||
+                        role.equals(soapDetails.getNextRole()))
+                    {
+                        final QName headerName = streamReader.getName() ;
+                        final HeaderHandler headerHandler = soapService.getHeaderHandler(headerName) ;
+                        if (headerHandler == null)
+                        {
+                            checkMustUnderstand(streamReader, soapDetails) ;
+                            ElementConsumer.consume(streamReader) ;
+                        }
+                        else
+                        {
+                            headerHandler.invoke(streamReader, messageContext) ;
+                            handlers.add(headerHandler) ;
+                        }
+                        streamReader.require(XMLStreamConstants.END_ELEMENT,
+                                headerName.getNamespaceURI(), headerName.getLocalPart()) ;
+                    }
+                    else
+                    {
+                        ElementConsumer.consume(streamReader) ;
+                    }
+                }
+            }
+            while(!finished) ;
+            
+            final Map headerHandlers = soapService.getHeaderHandlers() ;
+            final Iterator headerHandlerIter = headerHandlers.values().iterator() ;
+            while(headerHandlerIter.hasNext())
+            {
+                final HeaderHandler handler = (HeaderHandler)headerHandlerIter.next() ;
+                handler.headerValidate(messageContext) ;
+            }
+        }
+        catch (final Throwable th)
+        {
+            final int numHandlers = handlers.size() ;
+            if (numHandlers > 0)
+            {
+                final ListIterator listIterator = handlers.listIterator(numHandlers) ;
+                do
+                {
+                    final HeaderHandler headerHandler = (HeaderHandler)listIterator.previous() ;
+                    headerHandler.headerFaultNotification(messageContext) ;
+                }
+                while(listIterator.hasPrevious()) ;
+            }
+            
+            if (th instanceof XMLStreamException)
+            {
+                throw (XMLStreamException)th ;
+            }
+            else if (th instanceof SoapFault)
+            {
+                final SoapFault soapFault = (SoapFault)th ;
+                soapFault.setHeaderFault(true) ;
+                throw soapFault ;
+            }
+            else if (th instanceof RuntimeException)
+            {
+                throw (RuntimeException)th ;
+            }
+            else
+            {
+                throw (Error)th ;
+            }
+        }
+    }
+    
+    /**
+     * Check the existence of the must understand parameter.
+     * @param streamReader
+     * @param soapDetails
+     * @throws XMLStreamException
+     * @throws SoapFault
+     * 
+     * @message com.arjuna.webservices.soap.SoapParser_3 [com.arjuna.webservices.soap.SoapParser_3] - Did not understand header: {0}
+     */
+    private static void checkMustUnderstand(final XMLStreamReader streamReader, final SoapDetails soapDetails)
+        throws XMLStreamException, SoapFault
+    {
+        final String mustUnderstand = streamReader.getAttributeValue(soapDetails.getNamespaceURI(),
+            SoapConstants.SOAP_MUST_UNDERSTAND_NAME) ;
+        if ((mustUnderstand != null) && ("1".equals(mustUnderstand) || "true".equalsIgnoreCase(mustUnderstand)))
+        {
+            final QName headerName = streamReader.getName() ;
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.soap.SoapParser_3") ;
+            final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+            final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_MUST_UNDERSTAND, message) ;
+            soapFault.setHeaderElements(soapDetails.getMustUnderstandHeaders(headerName)) ;
+            throw soapFault ;
+        }
+    }
+    
+    /**
+     * The interceptor chain for processing the terminal body handler.
+     * @author kevin
+     */
+    private static class InterceptorBodyHandler implements InterceptorChain
+    {
+        /**
+         * The body handler.
+         */
+        private final BodyHandler bodyHandler ;
+        
+        /**
+         * Construct the interceptor body handler.
+         * @param bodyHandler The body handler.
+         */
+        InterceptorBodyHandler(final BodyHandler bodyHandler)
+        {
+            this.bodyHandler = bodyHandler ;
+        }
+        
+        /**
+         * Invoke the next interceptor in the chain.
+         * @param soapService The SOAP service being called.
+         * @param soapDetails The SOAP details.
+         * @param context The current message context.
+         * @param responseContext The response message context.
+         * @param action The transport SOAP action.
+         * @param in The current stream reader.
+         * @throws XMLStreamException for parsing errors.
+         * @throws SoapFault for processing errors.
+         * @return The response elements or null if one way.
+         */
+        public SoapBody invokeNext(final SoapService soapService,
+            final SoapDetails soapDetails, final MessageContext context,
+            final MessageContext responseContext, final String action,
+            final XMLStreamReader in)
+            throws XMLStreamException, SoapFault
+        {
+            return bodyHandler.invoke(soapDetails, context, responseContext, action, in) ;
+        }
+    }
+    
+    /**
+     * The interceptor chain for processing interceptor handlers.
+     * @author kevin
+     */
+    private static class InterceptorChainHandler implements InterceptorChain
+    {
+        /**
+         * The interceptor chain handler.
+         */
+        private final InterceptorChain interceptorChain ;
+        /**
+         * The interceptor handler.
+         */
+        private final InterceptorHandler interceptorHandler ;
+        
+        /**
+         * Construct the interceptor chain handler.
+         * @param interceptorChain The interceptor chain handler.
+         * @param interceptorHandler The interceptor handler.
+         */
+        InterceptorChainHandler(final InterceptorChain interceptorChain, final InterceptorHandler interceptorHandler)
+        {
+            this.interceptorChain = interceptorChain ;
+            this.interceptorHandler = interceptorHandler ;
+        }
+        
+        /**
+         * Invoke the next interceptor in the chain.
+         * @param soapService The SOAP service being called.
+         * @param soapDetails The SOAP details.
+         * @param context The current message context.
+         * @param responseContext The response message context.
+         * @param action The transport SOAP action.
+         * @param in The current stream reader.
+         * @throws XMLStreamException for parsing errors.
+         * @throws SoapFault for processing errors.
+         * @return The response elements or null if one way.
+         */
+        public SoapBody invokeNext(final SoapService soapService,
+            final SoapDetails soapDetails, final MessageContext context,
+            final MessageContext responseContext, final String action,
+            final XMLStreamReader in)
+            throws XMLStreamException, SoapFault
+        {
+            return interceptorHandler.invoke(interceptorChain, soapService, soapDetails, context, responseContext, action, in) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.soap;
+
+import java.io.IOException;
+import java.io.Reader;
+
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapProcessor;
+import com.arjuna.webservices.SoapService;
+
+/**
+ * The SOAP processor implementation.
+ * @author kevin
+ */
+public class SoapProcessorImpl implements SoapProcessor
+{
+    /**
+     * The SOAP service associated with this processor.
+     */
+    private final SoapService soapService ;
+    /**
+     * The SOAP details associated with this processor.
+     */
+    private final SoapDetails soapDetails ;
+    
+    /**
+     * Create the SOAP processor for the specific SOAP service and details.
+     * @param soapService The SOAP service.
+     * @param soapDetails The SOAP details.
+     */
+    public SoapProcessorImpl(final SoapService soapService, final SoapDetails soapDetails)
+    {
+        this.soapService = soapService ;
+        this.soapDetails = soapDetails ;
+    }
+    
+    /**
+     * Process the input stream and generate a response.
+     * @param messageContext The message context for the request.
+     * @param messageResponseContext The message context for the response.
+     * @param action The transport SOAP action.
+     * @param reader The input reader.
+     * @return The SOAP response.
+     * @throws IOException For errors reading the input stream.
+     */
+    public SoapMessage process(final MessageContext messageContext, final MessageContext messageResponseContext, final String action, final Reader reader)
+    {
+        try
+        {
+            final XMLStreamReader streamReader = SoapUtils.getXMLStreamReader(reader) ;
+            final SoapBody response = soapService.parse(messageContext, messageResponseContext, action, streamReader, soapDetails) ;
+            if (response == null)
+            {
+                return null ;
+            }
+            
+            return new SoapBodyMessage(response, soapDetails, soapService, messageResponseContext) ;
+        }
+        catch (final SoapFault sf)
+        {
+            if (sf.isHeaderFault())
+            {
+                return new SoapFaultMessage(sf, soapDetails, null, messageContext) ;
+            }
+            else
+            {
+                return new SoapFaultMessage(sf, soapDetails, soapService, messageResponseContext) ;
+            }
+        }
+        catch (final Throwable th)
+        {
+            return new SoapFaultMessage(new SoapFault(th), soapDetails) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapUtils.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapUtils.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/soap/SoapUtils.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.soap;
+
+import java.io.Reader;
+import java.io.Writer;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+/**
+ * Utility methods for SOAP processing.
+ * @author kevin
+ *
+ */
+public class SoapUtils
+{
+    /**
+     * The XML input factory.
+     */
+    private static final XMLInputFactory XML_INPUT_FACTORY = getXMLInputFactory() ;
+    /**
+     * The XML output factory.
+     */
+    private static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newInstance() ;
+    
+    /**
+     * Get the XML stream reader.
+     * @param reader The input reader.
+     * @return The XML stream reader.
+     * @throws XMLStreamException For errors obtaining an XML stream reader.
+     */
+    public static XMLStreamReader getXMLStreamReader(final Reader reader)
+        throws XMLStreamException
+    {
+        return XML_INPUT_FACTORY.createXMLStreamReader(reader) ;
+    }
+    
+    /**
+     * Get the XML stream writer.
+     * @param writer The output writer.
+     * @return The XML stream writer.
+     * @throws XMLStreamException For errors obtaining an XML stream writer.
+     */
+    public static XMLStreamWriter getXMLStreamWriter(final Writer writer)
+        throws XMLStreamException
+    {
+        return XML_OUTPUT_FACTORY.createXMLStreamWriter(writer) ;
+    }
+    
+    /**
+     * Create the XML input factory.
+     * @return The XML input factory.
+     */
+    private static XMLInputFactory getXMLInputFactory()
+    {
+        final XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance() ;
+        xmlInputFactory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.TRUE) ;
+        return xmlInputFactory ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyAttributeSupport.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyAttributeSupport.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyAttributeSupport.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices.stax;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Utility class providing support for AnyAttributes.
+ * @author kevin
+ */
+public abstract class AnyAttributeSupport extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Add a content element to the list of any elements.
+     * @param content The content element.
+     */
+    public void putAnyContent(final NamedElement content)
+    {
+        // Ignore content.
+    }
+    
+    /**
+     * Copy the any elements from another source.
+     * @param source The source of the any data.
+     */
+    public void copyAnyContents(final AnyContentAnyAttributeSupport source)
+    {
+        // Ignore content.
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        // count start/end elements
+        int count = 1 ;
+        while (count > 0)
+        {
+            final int type = in.next() ;
+            if (XMLStreamConstants.START_ELEMENT == type)
+            {
+                count++ ;
+            }
+            else if (XMLStreamConstants.END_ELEMENT == type)
+            {
+                count-- ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentAnyAttributeSupport.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentAnyAttributeSupport.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentAnyAttributeSupport.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,227 @@
+/*
+ * 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.stax;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * Utility class providing support for AnyAttributes.
+ * @author kevin
+ */
+public abstract class AnyContentAnyAttributeSupport extends ElementContent
+{
+    /**
+     * The map of attributes.
+     */
+    private Map anyAttributes ;
+    
+    /**
+     * The list of any content.
+     */
+    private List anyContent ;
+    
+    /**
+     * Get the any content.
+     * @return the live any content.
+     */
+    public NamedElement[] getAnyContent()
+    {
+        return (anyContent == null ? null : (NamedElement[]) anyContent.toArray(new NamedElement[anyContent.size()])) ;
+    }
+    
+    /**
+     * Add a named element to the list of any elements.
+     * @param namedElement The named element.
+     */
+    public void putAnyContent(final NamedElement namedElement)
+    {
+        getAnyContentList().add(namedElement) ;
+    }
+    
+    /**
+     * Get the any additional attributes if set.
+     * @return The attibutes if set, null otherwise.
+     */
+    public Map getAnyAttributes()
+    {
+        return anyAttributes ;
+    }
+    
+    /**
+     * Put an attribute with a string value.
+     * @param attributeName The attribute name.
+     * @param attributeValue The attribute value.
+     */
+    public void putAttribute(final QName attributeName, final String attributeValue)
+    {
+        putAnyAttribute(attributeName, attributeValue) ;
+    }
+    
+    /**
+     * Put an attribute with a QName value.
+     * @param attributeName The attribute name.
+     * @param attributeValue The attribute value.
+     */
+    public void putAttribute(final QName attributeName, final QName attributeValue)
+    {
+        putAnyAttribute(attributeName, attributeValue) ;
+    }
+    
+    /**
+     * Add the attribute value to the list of known attributes.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+        if (anyAttributes == null)
+        {
+            anyAttributes = new HashMap() ;
+        }
+        
+        if (attributeValue.indexOf(':') > 0)
+        {
+            final QName qname = QNameHelper.toQName(in.getNamespaceContext(), attributeValue) ;
+            if (qname.getNamespaceURI().length() > 0)
+            {
+                putAttribute(attributeName, qname) ;
+            }
+            else
+            {
+                putAttribute(attributeName, attributeValue) ;
+            }
+        }
+        else
+        {
+            putAttribute(attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        final AnyElement anyElement = new AnyElement(in) ;
+        putAnyContent(new NamedElement(elementName, anyElement)) ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (anyContent != null)
+        {
+            final Iterator anyContentIter = anyContent.iterator() ;
+            while(anyContentIter.hasNext())
+            {
+                final NamedElement element = (NamedElement)anyContentIter.next() ;
+                final QName name = element.getName() ;
+                
+                if (name != null)
+                {
+                    final String origNamespace = StreamHelper.writeStartElement(out, name) ;
+                    element.getElementContent().writeContent(out) ;
+                    StreamHelper.writeEndElement(out, name.getPrefix(), origNamespace) ;
+                }
+                else
+                {
+                    element.getElementContent().writeContent(out) ;
+                }
+            }
+        }
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (anyAttributes != null)
+        {
+            StreamHelper.writeAttributes(out, anyAttributes) ;
+        }
+    }
+    
+    /**
+     * Copy the any elements from another source.
+     * @param source The source of the any data.
+     */
+    public void copyAnyContents(final AnyContentAnyAttributeSupport source)
+    {
+        if ((source != null) && (source.anyContent != null))
+        {
+            getAnyContentList().addAll(source.anyContent) ;
+        }
+    }
+    
+    /**
+     * Get the initialised any content list.
+     * @return The initialised any content list.
+     */
+    private List getAnyContentList()
+    {
+        if (anyContent == null)
+        {
+            anyContent = new LinkedList() ;
+        }
+        return anyContent ;
+    }
+    
+    /**
+     * Put an attribute.
+     * @param attributeName The attribute name.
+     * @param attributeValue The attribute value.
+     */
+    private void putAnyAttribute(final QName attributeName, final Object attributeValue)
+    {
+        if (anyAttributes == null)
+        {
+            anyAttributes = new HashMap() ;
+        }
+        
+        anyAttributes.put(attributeName, attributeValue) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentSupport.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentSupport.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyContentSupport.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,45 @@
+/*
+ * 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.stax;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Utility class providing support for AnyContent.
+ * @author kevin
+ */
+public abstract class AnyContentSupport extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Add the attribute value to the list of known attributes.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+        // Ignore attributes.
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyElement.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyElement.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/AnyElement.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,137 @@
+/*
+ * 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.stax;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+/**
+ * Utility class implementing any AnyElement.
+ * @author kevin
+ */
+public class AnyElement extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The namespaces defined on this element.
+     */
+    private Map namespaces ;
+    
+    /**
+     * Default constructor.
+     */
+    public AnyElement()
+    {
+    }
+    
+    /**
+     * Construct the any element from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public AnyElement(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parseNamespaces(in) ;
+        parse(in) ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value of this element.
+     * @throws XMLStreamException for parsing errors.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        putAnyContent(new NamedElement(null, new TextElement(value))) ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (namespaces != null)
+        {
+            final NamespaceContext namespaceContext = out.getNamespaceContext() ;
+            final Set entries = namespaces.entrySet() ;
+            final Iterator entryIter = entries.iterator() ;
+            do
+            {
+                final Map.Entry entry = (Map.Entry)entryIter.next() ;
+                final String namespaceURI = (String)entry.getValue() ;
+                if (namespaceContext.getPrefix(namespaceURI) == null)
+                {
+                    final String prefix = (String)entry.getKey() ;
+                    if (prefix.length() == 0)
+                    {
+                        out.setDefaultNamespace(namespaceURI) ;
+                        out.writeDefaultNamespace(namespaceURI) ;
+                    }
+                    else
+                    {
+                        out.setPrefix(prefix, namespaceURI) ;
+                        out.writeNamespace(prefix, namespaceURI) ;
+                    }
+                }
+            }
+            while(entryIter.hasNext()) ;
+        }
+        super.writeChildContent(out) ;
+    }
+    
+    /**
+     * Parse the namespaces associated with this element.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    private void parseNamespaces(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        final int numNamespaces = in.getNamespaceCount() ;
+        final String elementNamespaceURI = in.getNamespaceURI() ;
+        
+        if ((numNamespaces > 1) || ((numNamespaces == 1) &&
+            !in.getNamespaceURI(0).equals(elementNamespaceURI)))
+        {
+            namespaces = new HashMap() ;
+            for(int count = 0 ; count < numNamespaces ; count++)
+            {
+                final String namespaceURI = in.getNamespaceURI(count) ;
+                if (!namespaceURI.equals(elementNamespaceURI))
+                {
+                    namespaces.put(in.getNamespacePrefix(count), in.getNamespaceURI(count)) ;
+                }
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementConsumer.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementConsumer.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementConsumer.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.stax;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Utility class used to consume element data.
+ * @author kevin
+ */
+public class ElementConsumer extends ParsingSupport
+{
+    private static final ElementConsumer ELEMENT_CONSUMER = new ElementConsumer() ;
+    
+    /**
+     * Consume the current element from the stream.
+     * @param streamReader The XML stream reader.
+     * @throws XMLStreamException For errors during input.
+     */
+    public static void consume(final XMLStreamReader streamReader)
+        throws XMLStreamException
+    {
+        ELEMENT_CONSUMER.parse(streamReader) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementContent.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementContent.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ElementContent.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices.stax;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+/**
+ * Utility class providing support for all elements.
+ * @author kevin
+ */
+public abstract class ElementContent extends ParsingSupport
+{
+    /**
+     * Write the contents of the element.
+     * @param out The output stream.
+     * @throws XMLStreamException For errors during output.
+     */
+    public void writeContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        writeAttributes(out) ;
+        writeChildContent(out) ;
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/NamedElement.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/NamedElement.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/NamedElement.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.stax;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Utility class to wrap an element and its name.
+ * @author kevin
+ */
+public class NamedElement
+{
+    /**
+     * The element name of the any element.
+     */
+    private final QName name ;
+    /**
+     * The any element content.
+     */
+    private final ElementContent elementContent ;
+    
+    /**
+     * Construct the any element utility class.
+     * @param name The name of the element.
+     * @param elementContent The contents of the element.
+     */
+    public NamedElement(final QName name, final ElementContent elementContent)
+    {
+        this.name = name ;
+        this.elementContent = elementContent ;
+    }
+    
+    /**
+     * Get the element name.
+     * @return The element name.
+     */
+    public QName getName()
+    {
+        return name ;
+    }
+    
+    /**
+     * Get the element content.
+     * @return The element content.
+     */
+    public ElementContent getElementContent()
+    {
+        return elementContent ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ParsingSupport.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ParsingSupport.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/ParsingSupport.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,136 @@
+/*
+ * 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.stax;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * Utility class providing support for parsing.
+ * @author kevin
+ */
+public abstract class ParsingSupport
+{
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return true ;
+    }
+    
+    /**
+     * Parse the contents of this element from the input stream.
+     * @param in The input stream.
+     * @message com.arjuna.webservices.stax.ParsingSupport_1 [com.arjuna.webservices.stax.ParsingSupport_1] - Encountered unexpected event type: {0}
+     */
+    protected final void parse(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        final int attributeCount = in.getAttributeCount() ;
+        for(int count = 0 ; count < attributeCount ; count++)
+        {
+            final QName attributeName = in.getAttributeName(count) ;
+            final String attributeValue = in.getAttributeValue(count) ;
+            putAttribute(in, attributeName, attributeValue) ;
+        }
+        
+        final QName name = in.getName() ;
+        boolean finished = false ;
+        
+        do
+        {
+            final int type = in.next() ;
+            switch(type)
+            {
+                case XMLStreamConstants.START_ELEMENT:
+                    final QName startElementName = in.getName() ;
+                    putElement(in, startElementName) ;
+                    in.require(XMLStreamConstants.END_ELEMENT, startElementName.getNamespaceURI(),
+                        startElementName.getLocalPart()) ;
+                    break ;
+                case XMLStreamConstants.END_ELEMENT:
+                    in.require(type, name.getNamespaceURI(), name.getLocalPart()) ;
+                    finished = true ;
+                    break ;
+                case XMLStreamConstants.CDATA:
+                case XMLStreamConstants.CHARACTERS:
+                    putValue(in, in.getText()) ;
+                    break ;
+                case XMLStreamConstants.COMMENT:
+                case XMLStreamConstants.DTD:
+                case XMLStreamConstants.ENTITY_DECLARATION:
+                case XMLStreamConstants.ENTITY_REFERENCE:
+                case XMLStreamConstants.SPACE:
+                case XMLStreamConstants.NOTATION_DECLARATION:
+                case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                    // Ignore these
+                    break ;
+                case XMLStreamConstants.ATTRIBUTE:
+                case XMLStreamConstants.START_DOCUMENT:
+                case XMLStreamConstants.END_DOCUMENT:
+                case XMLStreamConstants.NAMESPACE:
+                    final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.stax.ParsingSupport_1") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {new Integer(type)}) ;
+                    throw new XMLStreamException(message) ;
+            }
+        }
+        while(!finished) ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value of this element.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+    }
+    
+    /**
+     * Add the attribute value.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected abstract void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/TextElement.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/TextElement.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/TextElement.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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.stax;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+
+/**
+ * Utility class representing a text element.
+ * @author kevin
+ */
+public class TextElement extends ElementContent
+{
+    /**
+     * The value of the text element.
+     */
+    private String text ;
+    
+    /**
+     * Construct the text element.
+     * @param text The text element.
+     */
+    public TextElement(final String text)
+    {
+        this.text = text ;
+    }
+    
+    /**
+     * Construct the text element.
+     * @param in The current input stream.
+     * @throws XMLStreamException For errors during reading.
+     */
+    public TextElement(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the text value of this element.
+     * @return The text value of this element.
+     */
+    public String getText()
+    {
+        return text ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value of this element.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        text = value ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * 
+     * @message com.arjuna.webservices.stax.TextElement_1 [com.arjuna.webservices.stax.TextElement_1] - Text elements cannot have embedded elements.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.stax.TextElement_1")) ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(text) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/URI.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/URI.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/stax/URI.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,129 @@
+/*
+ * 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.stax;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+
+/*
+ * xs:anyURI
+ */
+/**
+ * Representation of a URI
+ * @author kevin
+ */
+public class URI extends ElementContent
+{
+    /**
+     * The URI value of this element.
+     */
+    private String value ;
+
+    /**
+     * Default constructor.
+     */
+    public URI()
+    {
+    }
+    
+    /**
+     * Create the URI with a specific value.
+     * @param value The URI value.
+     */
+    public URI(final String value)
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Construct the attributed uri from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for errors during reading.
+     */
+    public URI(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Set the URI value of this element.
+     * @param value The URI value of the element.
+     */
+    public void setValue(final String value)
+    {
+        this.value = (value == null ? null : value.trim()) ;
+    }
+    
+    /**
+     * Get the URI value of this element.
+     * @return The URI value of the element or null if not set.
+     */
+    public String getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(value) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        // Ignore elements.
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (value != null) && (value.trim().length() > 0) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/TransportSoapClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/TransportSoapClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/TransportSoapClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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.transport;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringWriter;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapClient;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.soap.SoapBodyMessage;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.soap.SoapUtils;
+
+/**
+ * The base SOAP client for the transports.
+ * @author kevin
+ */
+public abstract class TransportSoapClient implements SoapClient
+{
+    /**
+     * Parse the response from the input stream.
+     * @param soapService The client SOAP service.
+     * @param messageContext The current message context.
+     * @param messageResponseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param reader The current reader.
+     * @param soapDetails The SOAP details.
+     * @return the named element.
+     * @throws SoapFault for SOAP processing faults.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    protected SoapBodyMessage parseResponse(final SoapService soapService,
+        final MessageContext messageContext, final MessageContext messageResponseContext,
+        final String action, final Reader reader, final SoapDetails soapDetails)
+        throws SoapFault, XMLStreamException
+    {
+        final XMLStreamReader streamReader = SoapUtils.getXMLStreamReader(reader) ;
+        final SoapBody response = soapService.parse(messageContext, messageResponseContext, action, streamReader, soapDetails) ;
+        return new SoapBodyMessage(response, soapDetails, soapService, messageContext) ;
+    }
+    
+    /**
+     * Serialise the SOAP request to a string.
+     * @param request The SOAP request.
+     * @return The string representation.
+     * @throws IOException for errors creating the stream
+     */
+    protected String serialiseRequest(final SoapMessage request)
+        throws IOException
+    {
+        final StringWriter writer = new StringWriter() ;
+        request.output(writer) ;
+        return writer.toString() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,286 @@
+/*
+ * 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.transport.http;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.MessageFormat;
+
+import javax.xml.stream.XMLStreamException;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapMessageLogging;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.transport.TransportSoapClient;
+
+/**
+ * The HTTP client implementation.
+ * @author kevin
+ *
+ */
+public class HttpClient extends TransportSoapClient
+{
+    /**
+     * The headers to set on each request.
+     */
+    private static final String[][] HTTP_HEADERS = {
+        {"User-Agent", "Arjuna/2.0"},
+    } ;
+    
+    /**
+     * Invoke a request on a service.
+     * @param request The request object.
+     * @param url The destination URL.
+     * @return The response object.
+     * @throws SoapFault For errors processing the request.
+     * @throws IOException for processing errors.
+     * 
+     * @message com.arjuna.webservices.transport.http.HttpClient_1 [com.arjuna.webservices.transport.http.HttpClient_1] - No response from RPC request
+     */
+    public SoapMessage invoke(final SoapMessage request, final String url)
+        throws SoapFault, IOException
+    {
+        final SoapMessage response = invokeRequest(request, url) ;
+        if (response == null)
+        {
+            throw new SoapFault(SoapFaultType.FAULT_SENDER, WSCLogger.log_mesg.getString("com.arjuna.webservices.transport.http.HttpClient_1")) ;
+        }
+        return response ;
+    }
+    
+    /**
+     * Invoke a one way request on a service.
+     * @param request The request object.
+     * @param url The destination URL.
+     * @throws SoapFault For errors processing the request.
+     * @throws IOException for processing errors.
+     */
+    public void invokeOneWay(final SoapMessage request, final String url)
+        throws SoapFault, IOException
+    {
+        invokeRequest(request, url) ;
+    }
+    
+    /**
+     * Invoke the request.
+     * @param request The request object.
+     * @param url The destination URL.
+     * @return The response object.
+     * @throws SoapFault For errors processing the request.
+     * 
+     * @message com.arjuna.webservices.transport.http.HttpClient_2 [com.arjuna.webservices.transport.http.HttpClient_2] - Invalid destination URL
+     * @message com.arjuna.webservices.transport.http.HttpClient_3 [com.arjuna.webservices.transport.http.HttpClient_3] - Unsupported URL type, not HTTP or HTTPS
+     * @message com.arjuna.webservices.transport.http.HttpClient_4 [com.arjuna.webservices.transport.http.HttpClient_4] - Invalid response code returned: {0}
+     */
+    private SoapMessage invokeRequest(final SoapMessage request, final String url)
+        throws SoapFault, IOException
+    {
+        final URL serviceURL ;
+        try
+        {
+            serviceURL = new URL(url) ;
+        }
+        catch (final MalformedURLException murle)
+        {
+            throw new SoapFault(SoapFaultType.FAULT_SENDER, WSCLogger.log_mesg.getString("com.arjuna.webservices.transport.http.HttpClient_2")) ;
+        }
+        
+        final boolean threadLogEnabled = SoapMessageLogging.isThreadLogEnabled() ;
+        final String requestContents ;
+        if (threadLogEnabled)
+        {
+            requestContents = serialiseRequest(request) ;
+            SoapMessageLogging.appendThreadLog(requestContents) ;
+        }
+        else
+        {
+            requestContents = null ;
+        }
+        
+        final HttpURLConnection httpURLConnection ;
+        try
+        {
+            httpURLConnection = (HttpURLConnection)serviceURL.openConnection() ;
+        }
+        catch (final ClassCastException cce)
+        {
+            throw new SoapFault(SoapFaultType.FAULT_SENDER, WSCLogger.log_mesg.getString("com.arjuna.webservices.transport.http.HttpClient_3")) ;
+        }
+        
+        httpURLConnection.setDoOutput(true) ;
+        httpURLConnection.setUseCaches(false) ;
+        
+        final int numHeaders = HTTP_HEADERS.length ;
+        for(int count = 0 ; count < numHeaders ; count++)
+        {
+            final String[] header = HTTP_HEADERS[count] ;
+            httpURLConnection.setRequestProperty(header[0], header[1]) ;
+        }
+        
+        final SoapDetails soapDetails = request.getSoapDetails() ;
+        final String contentType = HttpUtils.getContentType(soapDetails) ;
+        httpURLConnection.setRequestProperty(HttpUtils.HTTP_CONTENT_TYPE_HEADER, contentType + HttpUtils.HTTP_DEFAULT_CHARSET_PARAMETER) ;
+        httpURLConnection.setRequestProperty(HttpUtils.HTTP_ACCEPT_HEADER, contentType) ;
+        
+        final String requestAction = request.getAction() ;
+        final String actionValue = (requestAction == null ? "" : requestAction) ;
+        
+        // KEV - fix action handling for different SOAP versions
+        httpURLConnection.setRequestProperty(HttpUtils.SOAP_ACTION_HEADER, '"' + actionValue + '"') ;
+        
+        if (requestContents != null)
+        {
+            httpURLConnection.setRequestProperty(HttpUtils.HTTP_CONTENT_LENGTH_HEADER,
+                Integer.toString(requestContents.length())) ;
+        }
+        
+        final int port = serviceURL.getPort() ;
+        final String host = (port > 0 ? serviceURL.getHost() + ":" + port : serviceURL.getHost()) ;
+        httpURLConnection.setRequestProperty(HttpUtils.HTTP_HOST_HEADER, host) ;
+        httpURLConnection.setRequestMethod("POST") ;
+        
+        httpURLConnection.connect() ;
+        final OutputStream os = httpURLConnection.getOutputStream() ;
+        try
+        {
+            final PrintWriter writer = new PrintWriter(os) ;
+            if (requestContents != null)
+            {
+                writer.print(requestContents) ;
+            }
+            else
+            {
+                request.output(writer) ;
+            }
+            writer.flush() ;
+        }
+        finally
+        {
+            os.close() ;
+        }
+        
+        final int responseCode = httpURLConnection.getResponseCode() ;
+        
+        if ((responseCode != HttpURLConnection.HTTP_OK) &&
+            (responseCode != HttpURLConnection.HTTP_ACCEPTED) &&
+            (responseCode != HttpURLConnection.HTTP_INTERNAL_ERROR))
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.transport.http.HttpClient_4") ;
+            final String message = MessageFormat.format(pattern, new Object[] {new Integer(responseCode)}) ;
+            throw new SoapFault(SoapFaultType.FAULT_SENDER, message) ;
+        }
+        
+        final String fullResponseContentType = httpURLConnection.getContentType() ;
+//        final String responseContentType = HttpUtils.getContentType(fullResponseContentType) ;
+        // Ignore responses that aren't the same version of SOAP
+//        if ((contentType != null) && !contentType.equals(responseContentType))
+//        {
+//            if (threadLogEnabled)
+//            {
+//                SoapMessageLogging.appendThreadLog(null) ;
+//            }
+//            return null ;
+//        }
+        
+        final int contentLength = httpURLConnection.getContentLength() ;
+        if (contentLength == 0)
+        {
+            if (threadLogEnabled)
+            {
+                SoapMessageLogging.appendThreadLog(null) ;
+            }
+            return null ;
+        }
+        
+        final SoapService soapService = request.getSoapService() ;
+        final String encoding = HttpUtils.getContentTypeEncoding(fullResponseContentType) ;
+        final InputStream is ;
+        if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR)
+        {
+            is = httpURLConnection.getErrorStream() ;
+        }
+        else
+        {
+            is = httpURLConnection.getInputStream() ;
+        }
+        try
+        {
+            final BufferedInputStream bis = new BufferedInputStream(is) ;
+            final InputStreamReader isr = (encoding == null ? new InputStreamReader(bis) : new InputStreamReader(bis, encoding)) ;
+            
+            final Reader reader ;
+            if (threadLogEnabled || (contentLength <= 0))
+            {
+                final String responseContents = HttpUtils.readAll(isr) ;
+                
+                if (responseContents.length() == 0)
+                {
+                    if (threadLogEnabled)
+                    {
+                        SoapMessageLogging.appendThreadLog(null) ;
+                    }
+                    return null ;
+                }
+                
+                if (threadLogEnabled)
+                {
+                    SoapMessageLogging.appendThreadLog(responseContents) ;
+                }
+                
+                reader = new StringReader(responseContents) ;
+            }
+            else
+            {
+                reader = isr ;
+            }
+            // KEV - fix action handling for different SOAP versions
+            final String action = httpURLConnection.getHeaderField(HttpUtils.SOAP_ACTION_HEADER) ;
+            final MessageContext responseMessageContext = new MessageContext() ;
+            final MessageContext dummyMessageContext = new MessageContext() ;
+            try
+            {
+                return parseResponse(soapService, responseMessageContext, dummyMessageContext, action, reader, soapDetails) ;
+            }
+            catch (final XMLStreamException xmlse)
+            {
+                throw new IOException(xmlse.toString()) ;
+            }
+        }
+        finally
+        {
+            is.close() ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClientInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClientInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpClientInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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.transport.http;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.webservices.SoapClient;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Context listener used to initialise the HTTP clients.
+ * @author kevin
+ */
+public class HttpClientInitialisation 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() {
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               final SoapClient client = new HttpClient() ;
+               soapRegistry.registerSoapClient(HttpUtils.HTTP_SCHEME, client) ;
+               soapRegistry.registerSoapClient(HttpUtils.HTTPS_SCHEME, client) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        soapRegistry.removeSoapClient(HttpUtils.HTTPS_SCHEME) ;
+        soapRegistry.removeSoapClient(HttpUtils.HTTP_SCHEME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpContentTypeFilter.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpContentTypeFilter.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpContentTypeFilter.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.transport.http;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+/**
+ * A simple filter to sanitise the content type.
+ * @author kevin
+ */
+public class HttpContentTypeFilter implements Filter
+{
+    /**
+     * Initialise the filter.
+     * @param filterConfig The filter config.
+     */
+    public void init(final FilterConfig filterConfig)
+        throws ServletException
+    {
+    }
+
+    /**
+     * Filter the request.
+     * @param filterConfig The filter config.
+     */
+    public void doFilter(final ServletRequest request,
+            final ServletResponse response, final FilterChain chain)
+        throws IOException, ServletException
+    {
+        final String contentType = request.getContentType() ;
+        final String charset = HttpUtils.getContentTypeEncoding(contentType) ;
+        
+        if ((charset != null) && (charset.length() > 0))
+        {
+            request.setCharacterEncoding(charset) ;
+        }
+        chain.doFilter(request, response) ;
+    }
+
+    /**
+     * Destroy the filter.
+     */
+    public void destroy()
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpServiceMultiplexorServlet.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpServiceMultiplexorServlet.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpServiceMultiplexorServlet.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,461 @@
+/*
+ * 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.transport.http;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.Reader;
+import java.io.StringReader;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapMessageLogging;
+import com.arjuna.webservices.SoapProcessor;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.SoapServiceEndpointProvider;
+import com.arjuna.webservices.util.ClassLoaderHelper;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Servlet handling SOAP requests over HTTP.
+ * @author kevin
+ */
+public class HttpServiceMultiplexorServlet extends HttpServlet implements SoapServiceEndpointProvider
+{
+    /**
+     * The servlet serial version UID.
+     */
+    private static final long serialVersionUID = 7075789572555058716L ;
+
+    /**
+     * The key used for the request URL within a message exchange.
+     */
+    private static final byte[] REQUEST_URL_CONTEXT_PROPERTY = new byte[0] ;
+    
+    /**
+     * The error code for unknown content types.
+     */
+    private static final int UNKNOWN_CONTENT_TYPE_STATUS = HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE ;
+    /**
+     * The error code for unknown services.
+     */
+    private static final int UNKNOWN_SERVICE_STATUS = HttpServletResponse.SC_NOT_FOUND ;
+    /**
+     * The content for unknown content type.
+     */
+    private static final String UNKNOWN_CONTENT_TYPE_CONTENT ;
+    /**
+     * The content for unknown services.
+     */
+    private static final String UNKNOWN_SERVICE_CONTENT ;
+    
+    static
+    {
+        UNKNOWN_CONTENT_TYPE_CONTENT = getResourceAsString("UnknownContentType.html") ;
+        UNKNOWN_SERVICE_CONTENT = getResourceAsString("UnknownService.html") ;
+    }
+    
+    /**
+     * The Base HTTP URI for clients.
+     */
+    private transient String baseHttpURI ;
+    /**
+     * The Base HTTPS URI for clients.
+     */
+    private transient String baseHttpsURI ;
+    /**
+     * Flag to log packets.
+     */
+    private boolean logPackets ;
+  
+    /**
+     * Initialise the servlet.
+     * @param servletConfig The servlet configuration.
+     * @throws ServletException for configuration errors.
+     */
+    public void init(final ServletConfig servletConfig)
+        throws ServletException
+    {
+        config(servletConfig) ;
+    }
+    
+    /**
+     * Handle the post request.
+     * @param request The http servlet request
+     * @param response The http servlet response
+     */
+    protected void doPost(final HttpServletRequest request, final HttpServletResponse response)
+        throws ServletException, IOException
+    {
+        final SoapService soapService = getSoapService(request.getPathInfo()) ;
+        if (soapService == null)
+        {
+            response.setStatus(UNKNOWN_SERVICE_STATUS) ;
+            if (UNKNOWN_SERVICE_CONTENT != null)
+            {
+                response.getWriter().print(UNKNOWN_SERVICE_CONTENT) ;
+            }
+        }
+        else
+        {
+            final String fullContentType = request.getContentType() ;
+            final String contentType = HttpUtils.getContentType(fullContentType) ;
+            final SoapProcessor soapProcessor = getSoapProcessor(soapService, contentType) ;
+            if (soapProcessor == null)
+            {
+                response.setStatus(UNKNOWN_CONTENT_TYPE_STATUS) ;
+                if (UNKNOWN_CONTENT_TYPE_CONTENT != null)
+                {
+                    response.getWriter().print(UNKNOWN_CONTENT_TYPE_CONTENT) ;
+                }
+            }
+            else
+            {
+                final String action = getHeader(request, HttpUtils.SOAP_ACTION_HEADER) ;
+                
+                final MessageContext messageContext = new MessageContext() ;
+                initialiseContext(messageContext, request) ;
+                final MessageContext messageResponseContext = new MessageContext() ;
+                final Reader input = request.getReader() ;
+                final String contents = HttpUtils.readAll(input) ;
+                final Reader reader = new StringReader(contents) ;
+                if (logPackets)
+                {
+                    SoapMessageLogging.appendThreadLog(contents) ;
+                }
+                final SoapMessage soapResponse ;
+                try
+                {
+                    soapResponse = soapProcessor.process(messageContext,
+                        messageResponseContext, action, reader) ;
+                }
+                finally
+                {
+                    if (logPackets)
+                    {
+                        SoapMessageLogging.clearThreadLog() ;
+                    }
+                }
+                response.setContentType(contentType + HttpUtils.HTTP_DEFAULT_CHARSET_PARAMETER) ;
+                if (soapResponse == null)
+                {
+                    response.setStatus(HttpServletResponse.SC_ACCEPTED) ;
+                }
+                else
+                {
+                    final String actionURI = soapResponse.getAction() ;
+                    response.addHeader(HttpUtils.SOAP_ACTION_HEADER, '"' + actionURI + '"') ;
+                    response.setStatus(soapResponse.isFault() ?
+                        HttpServletResponse.SC_INTERNAL_SERVER_ERROR :
+                        HttpServletResponse.SC_OK) ;
+                    try
+                    {
+                        soapResponse.output(response.getWriter()) ;
+                    }
+                    catch (Throwable th)
+                    {
+                        throw new ServletException("Error sending response", th) ;
+                    }
+                }
+            }
+        }
+    }
+    
+    /**
+     * Get the SOAP service mapped onto the path.
+     * @param pathInfo The path information.
+     * @return The SOAP service or null if unknown.
+     */
+    private SoapService getSoapService(final String pathInfo)
+    {
+        if (pathInfo.length() > 0)
+        {
+            final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+            if ('/' == pathInfo.charAt(0))
+            {
+                return soapRegistry.getSoapService(pathInfo.substring(1)) ;
+            }
+            else
+            {
+                return soapRegistry.getSoapService(pathInfo) ;
+            }
+        }
+        else
+        {
+            return null ;
+        }
+    }
+
+    /**
+     * Initialise the context.
+     * @param messageContext The message context.
+     * @param request The current request.
+     */
+    private void initialiseContext(final MessageContext messageContext, final HttpServletRequest request)
+    {
+        final StringBuffer requestURL = request.getRequestURL() ;
+        final int separatorIndex = lastIndexOf(requestURL, '/') ; ;
+        requestURL.setLength(separatorIndex) ;
+        messageContext.setProperty(REQUEST_URL_CONTEXT_PROPERTY, request.getRequestURL().toString()) ;
+        messageContext.setScheme(request.getScheme()) ;
+    }
+    
+    /**
+     * Find the last index of the specified character.
+     * @param buffer The buffer.
+     * @param charValue The char to find.
+     * @return The index of the character or -1 if not present.
+     */
+    private int lastIndexOf(final StringBuffer buffer, final char charValue)
+    {
+        int index = buffer.length()-1 ;
+        while((index >= 0) && (charValue != buffer.charAt(index)))
+        {
+            index-- ;
+        }
+        return index ;
+    }
+    
+    /**
+     * Get the URI of a service supported by this provider.
+     * @param messageContext The message context.
+     * @param serviceName The service name.
+     * @return The service URI or null if not known.
+     */
+    public String getServiceURI(final MessageContext messageContext,
+        final String serviceName)
+    {
+        final String requestUrlContext = (String)messageContext.getProperty(REQUEST_URL_CONTEXT_PROPERTY) ;
+        if (requestUrlContext != null)
+        {
+            return requestUrlContext + '/' + serviceName ;
+        }
+        else
+        {
+            return getServiceURI(messageContext.getScheme(), serviceName) ;
+        }
+    }
+    
+    /**
+     * Get the URI of a service supported by this provider.
+     * @param scheme The addresing scheme.
+     * @param serviceName The service name.
+     * @return The service URI or null if not known.
+     */
+    public String getServiceURI(final String scheme, final String serviceName)
+    {
+        if (HttpUtils.HTTP_SCHEME.equals(scheme))
+        {
+            if (baseHttpURI != null)
+            {
+                return baseHttpURI + serviceName ;
+            }
+        }
+        else if (HttpUtils.HTTPS_SCHEME.equals(scheme))
+        {
+            if (baseHttpsURI != null)
+            {
+                return baseHttpsURI + serviceName ;
+            }
+        }
+        return null ;
+    }
+
+    /**
+     * Get the SOAP processor based on the content type.
+     * @param contentType The request content type.
+     * @return The SOAP processor or null if the content type is not supported.
+     */
+    private SoapProcessor getSoapProcessor(final SoapService soapService, final String contentType)
+    {
+        if (HttpUtils.SOAP_11_CONTENT_TYPE.equalsIgnoreCase(contentType))
+        {
+            return soapService.getSOAP11Processor() ;
+        }
+        else if (HttpUtils.SOAP_12_CONTENT_TYPE.equalsIgnoreCase(contentType))
+        {
+            return soapService.getSOAP12Processor() ;
+        }
+        else
+        {
+            return null ;
+        }
+    }
+    
+    /**
+     * Get the header and strip any whitespace and enclosing quotes.
+     * @param request The current request.
+     * @param headerName The name of the header.
+     * @return The stripped header value or null if empty.
+     */
+    private String getHeader(final HttpServletRequest request, final String headerName)
+    {
+        final String headerValue = request.getHeader(headerName) ;
+        if (headerValue == null)
+        {
+            return null ;
+        }
+        final StringBuffer buffer = new StringBuffer(headerValue) ;
+        final int length = buffer.length() ;
+        int startIndex = -1 ;
+        boolean foundStartQuote = false ;
+        for(int count = 0 ; count < length ; count++)
+        {
+            final char ch = buffer.charAt(count) ;
+            if (!Character.isWhitespace(ch))
+            {
+                if ((ch == '"') && !foundStartQuote)
+                {
+                    foundStartQuote = true ;
+                }
+                else
+                {
+                    startIndex = count ;
+                    break ;
+                }
+            }
+        }
+        if (startIndex == -1)
+        {
+            return null ;
+        }
+        int endIndex = -1 ;
+        boolean foundEndQuote = false ;
+        for(int count = length-1 ; count >= 0 ; count--)
+        {
+            final char ch = buffer.charAt(count) ;
+            if (!Character.isWhitespace(ch))
+            {
+                if ((ch == '"') && foundStartQuote && !foundEndQuote)
+                {
+                    foundEndQuote = true ;
+                }
+                else
+                {
+                    endIndex = count ;
+                    break ;
+                }
+            }
+        }
+        if (startIndex == endIndex)
+        {
+            return null ;
+        }
+        return buffer.substring(startIndex, endIndex+1) ;
+    }
+    
+    /**
+     * Configure the endpoint servlet.
+     * @param servletConfig The servlet configuration.
+     * @throws ServletException For errors during configuration.
+     */
+    private void config(final ServletConfig servletConfig)
+        throws ServletException
+    {
+        final HttpServiceMultiplexorServlet servlet = this;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSC) {
+           public void run() {
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapServiceProvider(HttpUtils.HTTP_SCHEME, servlet) ;
+               soapRegistry.registerSoapServiceProvider(HttpUtils.HTTPS_SCHEME, servlet) ;
+           }
+        };
+
+        // must do this before we close the callback list because some of the other callbacks depend upon and
+        // we don't want to introduce a race
+        baseHttpURI = processURI(servletConfig.getInitParameter("BaseHttpURI")) ;
+        baseHttpsURI = processURI(servletConfig.getInitParameter("BaseHttpsURI")) ;
+
+        // this is the last WSC callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WSC);
+
+        final String logPacketValue = servletConfig.getInitParameter("LogPackets") ;
+        if (logPacketValue != null)
+        {
+            logPackets = Boolean.valueOf(logPacketValue).booleanValue() ;
+        }
+    }
+    
+    /**
+     * Process the URI to add a trailing / character.
+     * @param uri The URI to process.
+     * @return The processed URI.
+     */
+    private String processURI(final String uri)
+    {
+        if ((uri == null) || (uri.length() == 0))
+        {
+            return null ;
+        }
+        
+        final int length = uri.length() ;
+        if (uri.charAt(length-1) == '/')
+        {
+            return uri ;
+        }
+        return uri + '/' ;
+    }
+    
+    /**
+     * Handle the deserialisation of this class.
+     * @param in The object input stream.
+     * @throws IOException for IO errors.
+     * @throws ClassNotFoundException for errors during class loading.
+     */
+    private void readObject(final ObjectInputStream in)
+        throws IOException, ClassNotFoundException
+    {
+        in.defaultReadObject() ;
+        try
+        {
+            config(getServletConfig()) ;
+        }
+        catch (final ServletException se)
+        {
+            throw new IOException(se.getMessage()) ;
+        }
+    }
+    
+    /**
+     * Return the contents of the resource as a string.
+     * @param resourceName The name of the resource.
+     * @return The contents or null if an error occurs.
+     */
+    private static String getResourceAsString(final String resourceName)
+    {
+        try
+        {
+            return ClassLoaderHelper.getResourceAsString(HttpServiceMultiplexorServlet.class, resourceName) ;
+        }
+        catch (final IOException ioe)
+        {
+            return null ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpUtils.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpUtils.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/HttpUtils.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,275 @@
+/*
+ * 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.transport.http;
+
+import java.io.IOException;
+import java.io.Reader;
+
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Constants used by the HTTP transport layer.
+ * @author kevin
+ */
+class HttpUtils
+{
+    /**
+     * The content type for SOAP 1.1.
+     */
+    public static final String SOAP_11_CONTENT_TYPE = "text/xml" ;
+    /**
+     * The content type for SOAP 1.2.
+     */
+    public static final String SOAP_12_CONTENT_TYPE = "application/soap+xml" ;
+    
+    /**
+     * The name of the SOAP Action header.
+     */
+    public static final String SOAP_ACTION_HEADER = "SOAPAction" ;
+    /**
+     * The name of the target host header.
+     */
+    public static final String HTTP_HOST_HEADER = "Host" ;
+    /**
+     * The name of the content type header.
+     */
+    public static final String HTTP_CONTENT_TYPE_HEADER = "Content-Type" ;
+    /**
+     * The name of the content length header.
+     */
+    public static final String HTTP_CONTENT_LENGTH_HEADER = "Content-Length" ;
+    /**
+     * The name of the HTTP Accept header.
+     */
+    public static final String HTTP_ACCEPT_HEADER = "Accept" ;
+    /**
+     * The name of the HTTP connection header.
+     */
+    public static final String HTTP_CONNECTION_HEADER = "Connection" ;
+    
+    /**
+     * The HTTP charset parameter.
+     */
+    public static final String HTTP_CHARSET_PARAMETER = "charset" ;
+    /**
+     * The HTTP charset parameter length.
+     */
+    private static final int HTTP_CHARSET_PARAMETER_LEN = HTTP_CHARSET_PARAMETER.length() ;
+    /**
+     * The default charset parameter.
+     */
+    public static final String HTTP_DEFAULT_CHARSET_PARAMETER = "; " + HTTP_CHARSET_PARAMETER + "=utf-8" ;
+
+    /**
+     * The name of the HTTP scheme.
+     */
+    public static final String HTTP_SCHEME = "http" ;
+    /**
+     * The name of the HTTPS scheme.
+     */
+    public static final String HTTPS_SCHEME = "https" ;
+    
+    /**
+     * Get the base content type.
+     * @param contentType The content type value.
+     * @return The base content type.
+     */
+    public static String getContentType(final String contentType)
+    {
+        if (contentType == null)
+        {
+            return contentType ;
+        }
+        final int separatorIndex = contentType.indexOf(';') ;
+        if (separatorIndex >= 0)
+        {
+            return contentType.substring(0, separatorIndex) ;
+        }
+        return contentType ;
+    }
+
+    /**
+     * Get the content type encoding portion of the 
+     * @param contentType The content type value.
+     * @return The content type encoding or null if not present.
+     */
+    public static String getContentTypeEncoding(final String contentType)
+    {
+        if (contentType != null)
+        {
+            final int length = contentType.length() ;
+            
+            int separatorIndex = contentType.indexOf(';') ;
+            while((separatorIndex >= 0) && (separatorIndex < length))
+            {
+                separatorIndex = skipWhitespace(contentType, ++separatorIndex) ;
+                
+                if (separatorIndex >= 0)
+                {
+                    if (contentType.regionMatches(true, separatorIndex,
+                        HTTP_CHARSET_PARAMETER, 0, HTTP_CHARSET_PARAMETER_LEN))
+                    {
+                        separatorIndex += HTTP_CHARSET_PARAMETER_LEN ;
+                        if ((separatorIndex < length-1) && ('=' == contentType.charAt(separatorIndex)))
+                        {
+                            separatorIndex++ ;
+                            if ('"' == contentType.charAt(separatorIndex))
+                            {
+                                return nonQuote(contentType, separatorIndex+1) ;
+                            }
+                            else
+                            {
+                                return nonWhitespace(contentType, separatorIndex) ;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return null ;
+    }
+
+    /**
+     * Get the content type based on the SOAP details.
+     * @param soapDetails The SOAP details.
+     * @return The content type.
+     */
+    public static String getContentType(final SoapDetails soapDetails)
+    {
+        if (SoapDetails.SOAP_12_VERSION.equals(soapDetails.getVersion()))
+        {
+            return SOAP_12_CONTENT_TYPE ;
+        }
+        else
+        {
+            return SOAP_11_CONTENT_TYPE ;
+        }
+    }
+
+    /**
+     * Skip whitespace fomr the specified index.
+     * @param value The current string.
+     * @param startIndex The start index.
+     * @return The index of the first non whitespace character or -1.
+     */
+    private static int skipWhitespace(final String value, final int startIndex)
+    {
+        int endIndex = startIndex ;
+        final int length = value.length() ;
+        while((endIndex < length) && Character.isWhitespace(value.charAt(endIndex)))
+        {
+            endIndex++ ;
+        }
+        return (endIndex < length ? endIndex : -1) ;
+    }
+
+    /**
+     * Return the string from the current index until the next quote character.
+     * @param value The current string.
+     * @param startIndex The start index.
+     * @return A string representing all characters up to the next quote character.
+     */
+    private static String nonQuote(final String value, final int startIndex)
+    {
+        int endIndex = startIndex ;
+        final int length = value.length() ;
+        while((endIndex < length) && '"' != value.charAt(endIndex))
+        {
+            endIndex++ ;
+        }
+        
+        return value.substring(startIndex, endIndex) ;
+    }
+
+    /**
+     * Return the string from the current index until the next whitespace character.
+     * @param value The current string.
+     * @param startIndex The start index.
+     * @return A string representing all characters up to the next whitespace character.
+     */
+    private static String nonWhitespace(final String value, final int startIndex)
+    {
+        int endIndex = startIndex ;
+        final int length = value.length() ;
+        while((endIndex < length) && !Character.isWhitespace(value.charAt(endIndex)) && (';' != value.charAt(endIndex)))
+        {
+            endIndex++ ;
+        }
+        
+        return value.substring(startIndex, endIndex) ;
+    }
+
+    /**
+     * Read all the contents of the reader.
+     * @param reader The specified reader.
+     * @return The contents.
+     * @throws IOException For errors during reading.
+     */
+    static String readAll(final Reader reader)
+        throws IOException
+    {
+        final StringBuffer contents = new StringBuffer() ;
+        final char[] buffer = new char[256] ;
+        while(true)
+        {
+            final int count = reader.read(buffer) ;
+            if (count > 0)
+            {
+                contents.append(buffer, 0, count) ;
+            }
+            else
+            {
+                break ;
+            }
+        }
+        return checkForXMLDecl(contents) ;
+    }
+    
+    /**
+     * Check for the XML declaration and remove.
+     * This method is only used if we are intending to log the SOAP message so that it is easy to combine the XML without creating invalid documents.
+     * @param contents The current stream contents.
+     * @return The stream contents as a string.
+     */
+    private static String checkForXMLDecl(final StringBuffer contents)
+    {
+        int count = 0 ;
+        try
+        {
+            while(Character.isWhitespace(contents.charAt(count))) count++ ;
+            if (contents.charAt(count) == '<')
+            {
+                if (contents.charAt(count+1) == '?')
+                {
+                    count+=2 ;
+                    while(contents.charAt(count++) != '>') ;
+                }
+            }
+            if (count > 0)
+            {
+                contents.delete(0, count) ;
+            }
+        }
+        catch (final StringIndexOutOfBoundsException sioobe) {}
+        
+        return contents.toString() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownContentType.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownContentType.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownContentType.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,30 @@
+<!--
+  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 html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Unknown Content Type</title>
+</head>
+<body>
+The Content Type of the request is not a recognised SOAP Content Type.
+</body>
+</html>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownService.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownService.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/transport/http/UnknownService.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,30 @@
+<!--
+  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 html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Unknown Service</title>
+</head>
+<body>
+Unknown Service Endpoint.
+</body>
+</html>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/ClassLoaderHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/ClassLoaderHelper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/ClassLoaderHelper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,161 @@
+/*
+ * 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.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URL;
+
+/**
+ * Utility class for classloading.
+ * @author kevin
+ */
+public class ClassLoaderHelper
+{
+    /**
+     * Attempt to load the named class.
+     * @param caller The caller's class.
+     * @param className The name of the class.
+     * @return The class
+     * @throws ClassNotFoundException If the class cannot be found.
+     */
+    public static Class forName(final Class caller, final String className)
+        throws ClassNotFoundException
+    {
+        final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader() ;
+        if (contextClassLoader != null)
+        {
+            try
+            {
+                return contextClassLoader.loadClass(className) ;
+            }
+            catch (final ClassNotFoundException cnfe) {} // Ignore
+        }
+        final ClassLoader callerClassLoader = caller.getClassLoader() ;
+        try
+        {
+            return callerClassLoader.loadClass(className) ;
+        }
+        catch (final ClassNotFoundException cnfe) {} // Ignore
+        return ClassLoader.getSystemClassLoader().loadClass(className) ;
+    }
+    
+    /**
+     * Get the specified resource as a string.
+     * @param caller The caller's class.
+     * @param resource The resource name.
+     * @return The string or null if not found.
+     * @throws IOException for read errors.
+     */
+    public static String getResourceAsString(final Class caller, final String resource)
+        throws IOException
+    {
+        final InputStream is = getResourceAsStream(caller, resource) ;
+        if (is == null)
+        {
+            return null ;
+        }
+        
+        final Reader reader = new InputStreamReader(is) ;
+        final StringBuffer stringBuffer = new StringBuffer() ;
+        final char[] buffer = new char[1024] ;
+        while(true)
+        {
+            final int count = reader.read(buffer) ;
+            if (count == -1)
+            {
+                break ;
+            }
+            stringBuffer.append(buffer, 0, count) ;
+        }
+        return stringBuffer.toString() ;
+    }
+    
+    /**
+     * Get the specified resource as an input stream.
+     * @param caller The caller's class.
+     * @param resource The resource name.
+     * @return The input stream or null if not found.
+     */
+    public static InputStream getResourceAsStream(final Class caller, final String resource)
+    {
+        if ((resource == null) || (resource.length() == 0))
+        {
+            return null ;
+        }
+        
+        final String absoluteResource ;
+        if (resource.charAt(0) == '/')
+        {
+            absoluteResource = resource ;
+        }
+        else
+        {
+            final String callerName = caller.getName() ;
+            final int lastSeparator = callerName.lastIndexOf('.') ;
+            if (lastSeparator == -1)
+            {
+                absoluteResource = '/' + resource ;
+            }
+            else
+            {
+                absoluteResource = '/' + callerName.substring(0, lastSeparator+1).replace('.', '/') + resource ; 
+            }
+        }
+        final URL url = getResourceAsURL(caller, absoluteResource) ;
+        if (url != null)
+        {
+            try
+            {
+                return url.openStream() ;
+            }
+            catch (final IOException ioe) {}
+        }
+        return null ;
+    }
+    
+    /**
+     * Get the specified resource as a URL.
+     * @param caller The caller's class.
+     * @param resource The resource name.
+     * @return The URL or null if not found.
+     */
+    public static URL getResourceAsURL(final Class caller, final String resource)
+    {
+        final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader() ;
+        if (contextClassLoader != null)
+        {
+            final URL contextURL = contextClassLoader.getResource(resource) ;
+            if (contextURL != null)
+            {
+                return contextURL ;
+            }
+        }
+        final URL callerURL = caller.getResource(resource) ;
+        if (callerURL != null)
+        {
+            return callerURL ;
+        }
+        return ClassLoader.getSystemResource(resource) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/Enumerated.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/Enumerated.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/Enumerated.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.util;
+
+import java.io.InvalidObjectException;
+import java.io.ObjectStreamException;
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+
+
+/**
+ * Base class for enumerated types.
+ * @author kevin
+ */
+public abstract class Enumerated implements Serializable
+{
+    /**
+     * The enumerated value.
+     */
+    private final Object value ;
+    
+    /**
+     * Construct the enumerated value.
+     * @param value The string value of the enumeration.
+     */
+    protected Enumerated(final Object value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Compare the specified object to this one.
+     * @param rhs The other object to compare.
+     */
+    public boolean equals(final Object rhs)
+    {
+        if (rhs == this)
+        {
+            return true ;
+        }
+        
+        if ((rhs != null) && (rhs.getClass() == getClass()))
+        {
+            final Object rhsValue = ((Enumerated)rhs).value ;
+            return (value == null ? rhsValue == null : value.equals(rhsValue)) ;
+        }
+        else
+        {
+            return false ;
+        }
+    }
+    
+    /**
+     * Return a hash code for this enumerated entry.
+     * @return the enumeration hash code.
+     */
+    public int hashCode()
+    {
+        return (value == null ? 0 : value.hashCode()) ;
+    }
+    
+    /**
+     * Get the key representation of this enumeration.
+     * @return the key representation.
+     */
+    public Object getKey()
+    {
+        return value ;
+    }
+    
+    /**
+     * Get the string representation of this enumeration.
+     * @return the string representation.
+     */
+    public String toString()
+    {
+        return (value == null ? "<null>" : value.toString()) ;
+    }
+    
+    /**
+     * Resolve the value of an enumeration.
+     * @param value The value of the enumeration.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the enumeration value is invalid. 
+     */
+    protected abstract Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException ;
+    
+    /**
+     * Replace any serialised version of this class with the same instance. 
+     * @return The instance of the enumeration.
+     * @throws ObjectStreamException
+     */
+    protected Object readResolve()
+        throws ObjectStreamException
+    {
+        try
+        {
+            return resolveEnum(value) ;
+        }
+        catch (final InvalidEnumerationException iee)
+        {
+            throw new InvalidObjectException(iee.getMessage()) ;
+        }
+    }
+    
+    /**
+     * Generate the map of enumeration values to enumerations.
+     * @param enumerations The enumerations to configure.
+     * @return The enumeration map.
+     */
+    protected static Map generateMap(final Enumerated[] enumerations)
+    {
+        final int numEnumerations = (enumerations == null ? 0 : enumerations.length) ;
+        final Map result ;
+        if (numEnumerations == 0)
+        {
+            result = Collections.EMPTY_MAP ;
+        }
+        else
+        {
+            result = new HashMap() ;
+            for(int count = 0 ; count < numEnumerations ; count++)
+            {
+                final Enumerated enumeration = enumerations[count] ;
+                result.put(enumeration.getKey(), enumeration) ;
+            }
+        }
+        return result ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InsertionOrderSet.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InsertionOrderSet.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InsertionOrderSet.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,403 @@
+/*
+ * 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.util;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.AbstractSet;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * Set implementation which honours insertion order. &nbsp;The iterator returns
+ * the elements in the order they were inserted into the set.
+ * 
+ * @author kevin
+ */
+public class InsertionOrderSet extends AbstractSet implements Cloneable, Serializable
+{
+    /**
+     * Serial version UID for this class.
+     */
+    private static final long serialVersionUID = -5575694021209967201L ;
+    
+    /**
+     * The map of entries to linked list entries in this set.
+     */
+    private transient HashMap entries = new HashMap() ;
+    /**
+     * The head of the linked list.
+     */
+    private transient LinkedListEntry head ;
+    
+    /**
+     * Construct the insertion order set.
+     */
+    public InsertionOrderSet()
+    {
+        head = new LinkedListEntry(null) ;
+        head.setNext(head) ;
+        head.setPrevious(head) ;
+    }
+    
+    /**
+     * Construct the insertion order set with the specified collection.
+     * @param collection The collection to add to this set.
+     */
+    public InsertionOrderSet(final Collection collection)
+    {
+        this() ;
+        addAll(collection) ;
+    }
+    
+    /**
+     * Get the size of this set.
+     * @return the set size.
+     */
+    public int size()
+    {
+        return entries.size() ;
+    }
+
+    /**
+     * Does this set contain the specified object?
+     * @param obj The object to test.
+     * @return true if the object is in the set, false otherwise.
+     */
+    public boolean contains(final Object obj)
+    {
+        return (entries.get(obj) != null) ;
+    }
+
+    /**
+     * Get the insertion order iterator for this set.
+     * @return the iterator.
+     */
+    public Iterator iterator()
+    {
+        return new LinkedListEntryIterator() ;
+    }
+
+    /**
+     * Add an object into the set if it is not already present.
+     * 
+     * @param obj The object to add into the set.
+     * @return true if the object has been added to the set, false otherwise.
+     */
+    public boolean add(final Object obj)
+    {
+        final LinkedListEntry listEntry = new LinkedListEntry(obj) ;
+        final Object previous = entries.put(obj, listEntry) ;
+        if (previous != null)
+        {
+            entries.put(obj, previous) ;
+            return false ;
+        }
+        
+        final LinkedListEntry lastEntry = head.getPrevious() ;
+        
+        listEntry.setPrevious(lastEntry) ;
+        listEntry.setNext(head) ;
+        
+        lastEntry.setNext(listEntry) ;
+        head.setPrevious(listEntry) ;
+        
+        return true ;
+    }
+
+    /**
+     * Remove an entry from the set.
+     * @param obj The object to remove from the set.
+     * @return true if the object has been remove from the set, false otherwise.
+     */
+    public boolean remove(final Object obj)
+    {
+        final LinkedListEntry entry = (LinkedListEntry)entries.remove(obj) ;
+        if (entry == null)
+        {
+            return false ;
+        }
+        
+        final LinkedListEntry previousEntry = entry.getPrevious() ;
+        final LinkedListEntry nextEntry = entry.getNext() ;
+        previousEntry.setNext(nextEntry) ;
+        nextEntry.setPrevious(previousEntry) ;
+        
+        entry.setPrevious(null) ;
+        entry.setNext(null) ;
+        
+        return true ;
+    }
+
+    /**
+     * Clear the set
+     */
+    public void clear()
+    {
+        head.setNext(head) ;
+        head.setPrevious(head) ;
+        entries.clear() ;
+    }
+    
+    /**
+     * Is the specified object equal to this one?
+     * @param rhs The object to compare.
+     * @return true if the specified object is an insertion order set
+     *   with the same entries and order as this one, false otherwise.
+     */
+    public boolean equals(final Object rhs)
+    {
+        if (rhs == this)
+        {
+            return true ;
+        }
+        
+        if (!(rhs instanceof InsertionOrderSet))
+        {
+            return false ;
+        }
+        
+        final InsertionOrderSet rhsSet = (InsertionOrderSet)rhs ;
+        if (size() != rhsSet.size())
+        {
+            return false ;
+        }
+        
+        final Iterator thisIter = iterator() ;
+        final Iterator rhsIter = rhsSet.iterator() ;
+        
+        while(thisIter.hasNext())
+        {
+            if (!rhsIter.hasNext() || !equals(thisIter.next(), rhsIter.next()))
+            {
+                return false ;
+            }
+        }
+        
+        return true ; 
+    }
+    
+    /**
+     * Clone this object.
+     * @return the clone of this object.
+     */
+    protected Object clone()
+        throws CloneNotSupportedException
+    {
+        return new InsertionOrderSet(this) ;
+    }
+
+
+    /**
+     * Compare the two objects for equality, including nulls.
+     * @param lhs The first object to compare.
+     * @param rhs The second object to compare.
+     * @return true if the objects are equals, false otherwise.
+     */
+    private static boolean equals(final Object lhs, final Object rhs)
+    {
+        if (lhs == null)
+        {
+            return (rhs == null) ;
+        }
+        return lhs.equals(rhs) ;
+    }
+    
+    /**
+     * Write this set to the object output stream.
+     * @param objectOutputStream The object output stream
+     * @throws IOException For IO errors.
+     */
+    private void writeObject(final ObjectOutputStream objectOutputStream)
+        throws IOException
+    {
+        // Write default entries (should do nothing but included for completeness)
+        objectOutputStream.defaultWriteObject();
+        
+        objectOutputStream.writeInt(size()) ;
+        final Iterator iterator = iterator() ;
+        while(iterator.hasNext())
+        {
+            objectOutputStream.writeObject(iterator.next()) ;
+        }
+    }
+
+    /**
+     * Read this set from the object input stream.
+     * @param objectInputStream The object input stream.
+     * @throws IOException for IO errors.
+     * @throws ClassNotFoundException if a dependent class cannot be found.
+     */
+    private void readObject(final ObjectInputStream objectInputStream)
+         throws IOException, ClassNotFoundException
+    {
+        // Read default entries (should do nothing but included for completeness)
+        objectInputStream.defaultReadObject() ;
+        
+        final int size = objectInputStream.readInt() ;
+        
+        head = new LinkedListEntry(null) ;
+        head.setNext(head) ;
+        head.setPrevious(head) ;
+        entries = new HashMap(size) ;
+        
+        for(int count = 0 ; count < size ; count++)
+        {
+            add(objectInputStream.readObject()) ;
+        }
+    }
+    
+    /**
+     * Private inner class providing double linked list functionality 
+     * @author kevin
+     */
+    private static class LinkedListEntry
+    {
+        /**
+         * The object associated with this entry in the list.
+         */
+        private final Object obj ;
+        /**
+         * The next list entry.
+         */
+        private LinkedListEntry next ;
+        /**
+         * The previous list entry.
+         */
+        private LinkedListEntry previous ;
+        
+        /**
+         * Construct the linked list entry.
+         * @param obj The associated object.
+         */
+        LinkedListEntry(final Object obj)
+        {
+            this.obj = obj ;
+        }
+        
+        /**
+         * Get the next entry in the list.
+         * @return The next entry.
+         */
+        LinkedListEntry getNext()
+        {
+            return next ;
+        }
+        
+        /**
+         * Set the next entry in the list.
+         * @param next The next entry.
+         */
+        void setNext(final LinkedListEntry next)
+        {
+            this.next = next ;
+        }
+        
+        /**
+         * Get the previous entry in the list.
+         * @return The previous entry.
+         */
+        LinkedListEntry getPrevious()
+        {
+            return previous ;
+        }
+        
+        /**
+         * Set the previous entry in the list.
+         * @param previous The previous entry.
+         */
+        void setPrevious(final LinkedListEntry previous)
+        {
+            this.previous = previous ;
+        }
+        
+        /**
+         * Get the object associated with this entry.
+         * @return The object.
+         */
+        Object getObject()
+        {
+            return obj ;
+        }
+    }
+    
+    /**
+     * The iterator class for the Insertion Order Set
+     * @author kevin
+     */
+    private class LinkedListEntryIterator implements Iterator
+    {
+        /**
+         * The current entry.
+         */
+        private LinkedListEntry current ;
+        /**
+         * The next entry.
+         */
+        private LinkedListEntry next = head.getNext() ;
+        
+        /**
+         * Does the iterator have more entries?
+         * @return true if the iterator contains more entries, false otherwise.
+         */
+        public boolean hasNext()
+        {
+            return (next != head) ;
+        }
+        
+        /**
+         * Get the next entry from the iterator.
+         * @return the next entry in the iterator.
+         * @throws NoSuchElementException if there are no more entries in the iterator.
+         */
+        public Object next()
+            throws NoSuchElementException
+        {
+            if (!hasNext())
+            {
+                throw new NoSuchElementException("End of iterator") ;
+            }
+            current = next ;
+            next = current.getNext() ;
+            return current.getObject() ;
+        }
+        
+        /**
+         * Remove the current entry from the set.
+         * @throws IllegalStateException if the next method has not been called or if
+         * remove has already been called on the current 
+         */
+        public void remove()
+            throws IllegalStateException
+        {
+            if (current == null)
+            {
+                throw new IllegalStateException("Nothing to remove") ;
+            }
+            InsertionOrderSet.this.remove(current.getObject()) ;
+            current = null ;
+        }
+    }
+}


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InsertionOrderSet.java
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InvalidEnumerationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InvalidEnumerationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/InvalidEnumerationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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.util;
+
+/**
+ * The exception thrown when an invalid enumeration value is encountered.
+ * @author kevin
+ */
+public class InvalidEnumerationException extends Exception
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+    private static final long serialVersionUID = -2582965233382320132L ;
+
+    /**
+     * Construct an invalid enumeration exception with a specified message.
+     * @param message The exception message.
+     */
+    public InvalidEnumerationException(final String message)
+    {
+        super(message) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/QNameHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/QNameHelper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/QNameHelper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.util;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+
+/**
+ * Helper class for manipulating QNames.
+ * @author kevin
+ */
+public class QNameHelper
+{
+    /**
+     * Return a qualified representation of the qname.
+     * @param qname The qname.
+     * @return The qualified name.
+     */
+    public static String toQualifiedName(final QName qname)
+    {
+        return toQualifiedName(qname.getPrefix(), qname.getLocalPart()) ;
+    }
+    
+    /**
+     * Return a qualified representation of the prefix and local name.
+     * @param prefix The prefix.
+     * @param localName The local name.
+     * @return The qualified name.
+     */
+    public static String toQualifiedName(final String prefix, final String localName)
+    {
+        if ((prefix == null) || (prefix.length() == 0))
+        {
+            return localName ;
+        }
+        else
+        {
+            return prefix + ":" + localName ;
+        }
+    }
+    
+    /**
+     * Return the qname represented by the qualified name.
+     * @param namespaceContext The namespace context.
+     * @param qualifiedName The qualified name.
+     * @return The qname.
+     */
+    public static QName toQName(final NamespaceContext namespaceContext, final String qualifiedName)
+    {
+        final int index = qualifiedName.indexOf(':') ;
+        if (index == -1)
+        {
+            return new QName(qualifiedName) ;
+        }
+        else
+        {
+            final String prefix = qualifiedName.substring(0, index) ;
+            final String localName = qualifiedName.substring(index+1) ;
+            
+            final String namespaceURI = getNormalisedValue(namespaceContext.getNamespaceURI(prefix)) ;
+            return new QName(namespaceURI, localName, prefix) ;
+        }
+    }
+
+    /**
+     * Get the normalised value of the string.
+     * @param value The string value.
+     * @return The normalised value.
+     */
+    public static String getNormalisedValue(final String value)
+    {
+        if (value == null)
+        {
+            return "" ;
+        }
+        else
+        {
+            return value ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/StreamHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/StreamHelper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/StreamHelper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,381 @@
+/*
+ * 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.util;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.ElementContent;
+
+/**
+ * Helper class for Stream operations.
+ * @author kevin
+ * 
+ * @message com.arjuna.webservices.util.StreamHelper_1 [com.arjuna.webservices.util.StreamHelper_1] - Unexpected end element: {0}
+ * @message com.arjuna.webservices.util.StreamHelper_2 [com.arjuna.webservices.util.StreamHelper_2] - Unexpected end of document reached
+ * @message com.arjuna.webservices.util.StreamHelper_3 [com.arjuna.webservices.util.StreamHelper_3] - Unexpected start element: {0}
+ */
+public class StreamHelper
+{
+    /**
+     * Pseudo namespace used to unbind a prefix.
+     */
+    private static final String UNBOUND_NAMESPACE = "http://www.arjuna.com/stax/parsing/unboundnamespace" ;
+    
+    /**
+     * Write a start element with appropriate namespace declarations if necessary
+     * @param out The output stream.
+     * @param elementName The element name.
+     * @return The previous namespace if written, null otherwise.
+     * @throws XMLStreamException for errors during writing.
+     */
+    public static String writeStartElement(final XMLStreamWriter out, final QName elementName)
+        throws XMLStreamException
+    {
+        final String namespaceURI = QNameHelper.getNormalisedValue(elementName.getNamespaceURI()) ;
+        final String localName = elementName.getLocalPart() ;
+        
+        final NamespaceContext namespaceContext = out.getNamespaceContext() ;
+        final boolean writeNamespace = (namespaceContext.getPrefix(namespaceURI) == null) ;
+        
+        if (writeNamespace)
+        {
+            final String prefix = QNameHelper.getNormalisedValue(elementName.getPrefix()) ;
+            final String origNamespace = QNameHelper.getNormalisedValue(namespaceContext.getNamespaceURI(prefix)) ;
+            if (prefix.length() == 0)
+            {
+                out.setDefaultNamespace(namespaceURI) ;
+                out.writeStartElement(namespaceURI, localName) ;
+                out.writeDefaultNamespace(namespaceURI) ;
+            }
+            else
+            {
+                out.setPrefix(prefix, namespaceURI) ;
+                out.writeStartElement(namespaceURI, localName) ;
+                out.writeNamespace(prefix, namespaceURI) ;
+            }
+            return origNamespace ;
+        }
+        else
+        {
+            out.writeStartElement(namespaceURI, localName) ;
+            return null ;
+        }
+    }
+    
+    /**
+     * Write an end element removing the namespace binding if necessary
+     * @param out The output stream.
+     * @param prefix The element prefix.
+     * @param namespaceURI The previous binding for the prefix.
+     * @throws XMLStreamException for errors during writing.
+     */
+    public static void writeEndElement(final XMLStreamWriter out, final String prefix,
+        final String namespaceURI)
+        throws XMLStreamException
+    {
+        out.writeEndElement() ;
+        if (namespaceURI != null)
+        {
+            final String resetNamespace = (namespaceURI.length() == 0 ? UNBOUND_NAMESPACE : namespaceURI) ;
+            
+            if (prefix.length() == 0)
+            {
+                out.setDefaultNamespace(resetNamespace) ;
+            }
+            else
+            {
+                out.setPrefix(prefix, resetNamespace) ;
+            }
+        }
+    }
+    
+    /**
+     * Write the element to the stream.
+     * @param out The output stream.
+     * @param elementName The name of the element.
+     * @param elementContent The element contents.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeElement(final XMLStreamWriter out, final QName elementName,
+        final ElementContent elementContent)
+        throws XMLStreamException
+    {
+        final String origNamespace = writeStartElement(out, elementName) ;
+        elementContent.writeContent(out) ;
+        writeEndElement(out, elementName.getPrefix(), origNamespace) ;
+    }
+
+    /**
+     * Write the attributes to the stream.
+     * @param out The output stream.
+     * @param attributes The attributes.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeAttributes(final XMLStreamWriter out, final Map attributes)
+        throws XMLStreamException
+    {
+        final Set entrySet = attributes.entrySet() ;
+        final Iterator entryIter = entrySet.iterator() ;
+        while(entryIter.hasNext())
+        {
+            final Map.Entry entry = (Map.Entry)entryIter.next() ;
+            final QName name = (QName)entry.getKey() ;
+            final Object value = entry.getValue() ;
+            writeAttribute(out, name, value) ;
+        }
+    }
+    
+    /**
+     * Write the attribute to the stream.
+     * @param out The output stream.
+     * @param attributeName The attribute name.
+     * @param attributeValue The attribute value.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeAttribute(final XMLStreamWriter out, final QName attributeName,
+        final Object attributeValue)
+        throws XMLStreamException
+    {
+        if (attributeValue instanceof QName)
+        {
+            writeAttribute(out, attributeName, (QName)attributeValue) ;
+        }
+        else
+        {
+            writeAttribute(out, attributeName, attributeValue.toString()) ;
+        }
+    }
+    
+    /**
+     * Write the attribute to the stream.
+     * @param out The output stream.
+     * @param attributeName The attribute name.
+     * @param attributeValue The attribute value as a QName.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeAttribute(final XMLStreamWriter out, final QName attributeName,
+        final QName attributeValue)
+        throws XMLStreamException
+    {
+        final String namespaceURI = QNameHelper.getNormalisedValue(attributeValue.getNamespaceURI()) ;
+        if (namespaceURI.length() == 0)
+        {
+            writeAttribute(out, attributeName, attributeValue.getLocalPart()) ;
+        }
+        else
+        {
+            final NamespaceContext namespaceContext = out.getNamespaceContext() ;
+            final String origPrefix = namespaceContext.getPrefix(namespaceURI) ;
+            
+            if (origPrefix == null)
+            {
+                final String prefix = QNameHelper.getNormalisedValue(attributeValue.getPrefix()) ;
+                writeNamespace(out, prefix, namespaceURI) ;
+                writeAttribute(out, attributeName, QNameHelper.toQualifiedName(attributeValue)) ;
+            }
+            else
+            {
+                // KEV must handle clashes with default namespace
+                writeAttribute(out, attributeName, QNameHelper.toQualifiedName(origPrefix, attributeValue.getLocalPart())) ;
+            }
+        }
+    }
+    
+    /**
+     * Write the attribute to the stream.
+     * @param out The output stream.
+     * @param attributeName The attribute name.
+     * @param attributeValue The attribute value.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeAttribute(final XMLStreamWriter out, final QName attributeName,
+        final String attributeValue)
+        throws XMLStreamException
+    {
+        final String namespaceURI = QNameHelper.getNormalisedValue(attributeName.getNamespaceURI()) ;
+        final String localName = attributeName.getLocalPart() ;
+        
+        if (namespaceURI.length() == 0)
+        {
+            out.writeAttribute(localName, attributeValue) ;
+        }
+        else
+        {
+            // KEV must handle clashes with default namespace
+            final String prefix = QNameHelper.getNormalisedValue(attributeName.getPrefix()) ;
+            writeNamespace(out, prefix, namespaceURI) ;
+            out.writeAttribute(namespaceURI, localName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Write the QName to the stream as text.
+     * @param out The output stream.
+     * @param qName The qualified name.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeQualifiedName(final XMLStreamWriter out, final QName qName)
+        throws XMLStreamException
+    {
+        final String namespaceURI = QNameHelper.getNormalisedValue(qName.getNamespaceURI()) ;
+        
+        if (namespaceURI.length() == 0)
+        {
+            out.writeCharacters(QNameHelper.toQualifiedName(qName)) ;
+        }
+        else
+        {
+            final NamespaceContext namespaceContext = out.getNamespaceContext() ;
+            final String origPrefix = namespaceContext.getPrefix(namespaceURI) ;
+            
+            if (origPrefix == null)
+            {
+                final String prefix = QNameHelper.getNormalisedValue(qName.getPrefix()) ;
+                writeNamespace(out, prefix, namespaceURI) ;
+                out.writeCharacters(QNameHelper.toQualifiedName(qName)) ;
+            }
+            else
+            {
+                // KEV must handle clashes with default namespace
+                out.writeCharacters(QNameHelper.toQualifiedName(origPrefix, qName.getLocalPart())) ;
+            }
+        }
+    }
+    
+    /**
+     * Write the namespace if necessary.
+     * @param out The output stream.
+     * @param prefix The namespace prefix.
+     * @param namespaceURI The namespaceURI.
+     * @throws XMLStreamException Thrown for errors during writing.
+     */
+    public static void writeNamespace(final XMLStreamWriter out, final String prefix, final String namespaceURI)
+        throws XMLStreamException
+    {
+        final NamespaceContext namespaceContext = out.getNamespaceContext() ;
+            
+        final boolean writeNamespace = (namespaceContext.getPrefix(namespaceURI) == null) ;
+        if (writeNamespace)
+        {
+            out.setPrefix(prefix, namespaceURI) ;
+            out.writeNamespace(prefix, namespaceURI) ;
+        }
+    }
+
+    /**
+     * Make sure the stream is at the start of the next element.
+     * @param streamReader The current stream reader.
+     * @throws XMLStreamException For parsing errors.
+     */
+    public static void skipToNextStartElement(final XMLStreamReader streamReader)
+        throws XMLStreamException
+    {
+        if (streamReader.hasNext())
+        {
+            streamReader.nextTag() ;
+            if (streamReader.isEndElement())
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.util.StreamHelper_1") ;
+                final String message = MessageFormat.format(pattern, new Object[] {streamReader.getName()}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.util.StreamHelper_2")) ;
+        }
+    }
+
+    /**
+     * Make sure the stream is at the start of an element.
+     * @param streamReader The current stream reader.
+     * @throws XMLStreamException For parsing errors.
+     */
+    public static void skipToStartElement(final XMLStreamReader streamReader)
+        throws XMLStreamException
+    {
+        while (!streamReader.isStartElement())
+        {
+            if (streamReader.hasNext())
+            {
+                streamReader.next() ;
+            }
+            else
+            {
+                throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.util.StreamHelper_2")) ;
+            }
+        }
+    }
+
+    /**
+     * Check the next start tag is as expected.
+     * @param streamReader The stream reader.
+     * @param expected The expected qualified name.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public static void checkNextStartTag(final XMLStreamReader streamReader, final QName expected)
+        throws XMLStreamException
+    {
+        skipToNextStartElement(streamReader) ;
+        checkTag(streamReader, expected) ;
+    }
+    
+    /**
+     * Compare the element tag with the expected qualified name.
+     * @param streamReader The current stream reader.
+     * @param expected The expected qualified name.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public static void checkTag(final XMLStreamReader streamReader, final QName expected)
+        throws XMLStreamException
+    {
+        final QName elementName = streamReader.getName() ;
+        if (!expected.equals(elementName))
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.util.StreamHelper_3") ;
+            final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+
+    /**
+     * Check to see if the parent element is finished.
+     * @param streamReader The stream reader.
+     * @return true if it is finished, false otherwise.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public static boolean checkParentFinished(final XMLStreamReader streamReader)
+        throws XMLStreamException
+    {
+        return (streamReader.nextTag() == XMLStreamConstants.END_ELEMENT) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/TransportTimer.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/TransportTimer.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/util/TransportTimer.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,89 @@
+/*
+ * 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.util;
+
+import java.util.Timer;
+
+/**
+ * Utility class providing access to a timer and associated properties.
+ * @author kevin
+ */
+public class TransportTimer
+{
+    /**
+     * Daemon timer.
+     */
+    private static final Timer TIMER = new Timer(true) ;
+    
+    /**
+     * The transport timeout.
+     */
+    private static long TIMEOUT = 30000 ;
+    /**
+     * The transport period.
+     */
+    private static long PERIOD = 5000 ;
+
+    /**
+     * Get the transport timer.
+     * @return The transport timer.
+     */
+    public static Timer getTimer()
+    {
+        return TIMER ;
+    }
+    
+    /**
+     * Set the transport timeout.
+     * @param timeout The transport timeout in milliseconds.
+     */
+    public static void setTransportTimeout(final long timeout)
+    {
+       TIMEOUT = timeout ; 
+    }
+    
+    /**
+     * Get the transport timeout.
+     * @return The transport timeout in milliseconds.
+     */
+    public static long getTransportTimeout()
+    {
+        return TIMEOUT ;
+    }
+    
+    /**
+     * Set the transport period.
+     * @param period The transport period in milliseconds.
+     */
+    public static void setTransportPeriod(final long period)
+    {
+       PERIOD = period ; 
+    }
+    
+    /**
+     * Get the transport period.
+     * @return The transport period in milliseconds.
+     */
+    public static long getTransportPeriod()
+    {
+        return PERIOD ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,192 @@
+/*
+ * 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.wsaddr;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-Addressing constants.
+ */
+public interface AddressingConstants
+{
+    /**
+     * The Namespace.
+     */
+    public String WSA_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/08/addressing" ;
+    /**
+     * The Attribute Namespace.
+     */
+    public String WSA_ATTRIBUTE_NAMESPACE = "" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSA_PREFIX = "wsa" ;
+    /**
+     * The attribute namespace prefix.
+     */
+    public String WSA_ATTRIBUTE_PREFIX = "" ;
+    
+    /**
+     * The Action element.
+     */
+    public String WSA_ELEMENT_ACTION = "Action" ;
+    /**
+     * The Action QName.
+     */
+    public QName WSA_ELEMENT_ACTION_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_ACTION, WSA_PREFIX) ;
+    /**
+     * The Endpoint Reference element.
+     */
+    public String WSA_ELEMENT_ENDPOINT_REFERENCE = "EndpointReference" ;
+    /**
+     * The Endpoint Reference QName.
+     */
+    public QName WSA_ELEMENT_ENDPOINT_REFERENCE_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_ENDPOINT_REFERENCE, WSA_PREFIX) ;
+    /**
+     * The Fault To element.
+     */
+    public String WSA_ELEMENT_FAULT_TO = "FaultTo" ;
+    /**
+     * The Fault To QName.
+     */
+    public QName WSA_ELEMENT_FAULT_TO_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_FAULT_TO, WSA_PREFIX) ;
+    /**
+     * The From element.
+     */
+    public String WSA_ELEMENT_FROM = "From" ;
+    /**
+     * The From QName.
+     */
+    public QName WSA_ELEMENT_FROM_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_FROM, WSA_PREFIX) ;
+    /**
+     * The Message ID element.
+     */
+    public String WSA_ELEMENT_MESSAGE_ID = "MessageID" ;
+    /**
+     * The Message ID QName.
+     */
+    public QName WSA_ELEMENT_MESSAGE_ID_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_MESSAGE_ID, WSA_PREFIX) ;
+    /**
+     * The Relates To element.
+     */
+    public String WSA_ELEMENT_RELATES_TO = "RelatesTo" ;
+    /**
+     * The Relates To QName.
+     */
+    public QName WSA_ELEMENT_RELATES_TO_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_RELATES_TO, WSA_PREFIX) ;
+    /**
+     * The Reply To element.
+     */
+    public String WSA_ELEMENT_REPLY_TO = "ReplyTo" ;
+    /**
+     * The Reply To QName.
+     */
+    public QName WSA_ELEMENT_REPLY_TO_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_REPLY_TO, WSA_PREFIX) ;
+    /**
+     * The To element.
+     */
+    public String WSA_ELEMENT_TO = "To" ;
+    /**
+     * The To QName.
+     */
+    public QName WSA_ELEMENT_TO_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_TO, WSA_PREFIX) ;
+    /**
+     * The Address element.
+     */
+    public String WSA_ELEMENT_ADDRESS = "Address" ;
+    /**
+     * The Address QName.
+     */
+    public QName WSA_ELEMENT_ADDRESS_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_ADDRESS, WSA_PREFIX) ;
+    /**
+     * The Reference Properties element.
+     */
+    public String WSA_ELEMENT_REFERENCE_PROPERTIES = "ReferenceProperties" ;
+    /**
+     * The Reference Properties QName.
+     */
+    public QName WSA_ELEMENT_REFERENCE_PROPERTIES_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_REFERENCE_PROPERTIES, WSA_PREFIX) ;
+    /**
+     * The Reference Parameters element.
+     */
+    public String WSA_ELEMENT_REFERENCE_PARAMETERS = "ReferenceParameters" ;
+    /**
+     * The Reference Parameters QName.
+     */
+    public QName WSA_ELEMENT_REFERENCE_PARAMETERS_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_REFERENCE_PARAMETERS, WSA_PREFIX) ;
+    /**
+     * The Port Type element.
+     */
+    public String WSA_ELEMENT_PORT_TYPE = "PortType" ;
+    /**
+     * The Port Type QName.
+     */
+    public QName WSA_ELEMENT_PORT_TYPE_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_PORT_TYPE, WSA_PREFIX) ;
+    /**
+     * The Service Name element.
+     */
+    public String WSA_ELEMENT_SERVICE_NAME = "ServiceName" ;
+    /**
+     * The Service Name QName.
+     */
+    public QName WSA_ELEMENT_SERVICE_NAME_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_SERVICE_NAME, WSA_PREFIX) ;
+    
+    /**
+     * The Relationship Type attribute.
+     */
+    public String WSA_ATTRIBUTE_RELATIONSHIP_TYPE = "RelationshipType" ;
+    /**
+     * The Relationship Type QName.
+     */
+    public QName WSA_ATTRIBUTE_RELATIONSHIP_TYPE_QNAME = new QName(WSA_ATTRIBUTE_NAMESPACE, WSA_ATTRIBUTE_RELATIONSHIP_TYPE, WSA_ATTRIBUTE_PREFIX) ;
+    /**
+     * The Port Name attribute.
+     */
+    public String WSA_ATTRIBUTE_PORT_NAME = "PortName" ;
+    /**
+     * The Port Name QName.
+     */
+    public QName WSA_ATTRIBUTE_PORT_NAME_QNAME = new QName(WSA_ATTRIBUTE_NAMESPACE, WSA_ATTRIBUTE_PORT_NAME, WSA_ATTRIBUTE_PREFIX) ;
+    
+    /**
+     * The value of the Action element for faults.
+     */
+    public String WSA_ACTION_FAULT = WSA_NAMESPACE + "/fault" ;
+
+    /**
+     * The unspecified Message ID for use in relationships. 
+     */
+    public String WSA_MESSAGE_ID_UNSPECIFIED = WSA_NAMESPACE + "/id/unspecified" ;
+    
+    /**
+     * The addres URI representing an anonymous endpoint.
+     */
+    public String WSA_ADDRESS_ANONYMOUS = WSA_NAMESPACE + "/role/anonymous" ;
+    
+    /**
+     * The reply relates to local name.
+     */
+    public String WSA_RELATES_TO_REPLY = "Reply" ;
+    /**
+     * The reply RelatesTo QName.
+     */
+    public QName WSA_RELATES_TO_REPLY_QNAME = new QName(WSA_NAMESPACE, WSA_RELATES_TO_REPLY, WSA_PREFIX) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AddressingContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,491 @@
+/*
+ * 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.wsaddr;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentSupport;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * The complete addressing context.
+ * @author kevin
+ */
+public class AddressingContext extends AnyContentSupport
+{
+    /**
+     * The key used for the addressing context within a message exchange.
+     */
+    private static final byte[] ADDRESSING_CONTEXT_PROPERTY = new byte[0] ;
+    
+    /**
+     * The To header.
+     */
+    private AttributedURIType to ;
+    /**
+     * The Action header.
+     */
+    private AttributedURIType action ;
+    /**
+     * The MessageID header.
+     */
+    private AttributedURIType messageID ;
+    /**
+     * The From header.
+     */
+    private EndpointReferenceType from ;
+    /**
+     * The ReplyTo header.
+     */
+    private EndpointReferenceType replyTo ;
+    /**
+     * The FaultTo header.
+     */
+    private EndpointReferenceType faultTo ;
+    /**
+     * The RelatesTo headers.
+     */
+    private List relatesTo ;
+    
+    /**
+     * Default constructor.
+     */
+    private AddressingContext()
+    {
+    }
+    
+    /**
+     * Construct an addressing context from the input stream.
+     * N.B. This method is for testing purposes only.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public AddressingContext(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the to URI.
+     * @return The to URI.
+     */
+    public AttributedURIType getTo()
+    {
+        return to ;
+    }
+    
+    /**
+     * Set the to URI.
+     * @param to The to URI.
+     */
+    public void setTo(final AttributedURIType to)
+    {
+        this.to = to ;
+    }
+    
+    /**
+     * Get the action.
+     * @return The action.
+     */
+    public AttributedURIType getAction()
+    {
+        return action ;
+    }
+    
+    /**
+     * Set the action.
+     * @param action The action.
+     */
+    public void setAction(final AttributedURIType action)
+    {
+        this.action = action ;
+    }
+    
+    /**
+     * Get the messageID.
+     * @return The messageID.
+     */
+    public AttributedURIType getMessageID()
+    {
+        return messageID ;
+    }
+    
+    /**
+     * Set the messageID.
+     * @param messageID The messageID.
+     */
+    public void setMessageID(final AttributedURIType messageID)
+    {
+        this.messageID = messageID ;
+    }
+    
+    /**
+     * Get the from endpoint reference.
+     * @return The from endpoint reference.
+     */
+    public EndpointReferenceType getFrom()
+    {
+        return from ;
+    }
+    
+    /**
+     * Set the from endpoint reference.
+     * @param from The from endpoint reference.
+     */
+    public void setFrom(final EndpointReferenceType from)
+    {
+        this.from = from ;
+    }
+    
+    /**
+     * Get the reply endpoint reference.
+     * @return The reply endpoint reference.
+     */
+    public EndpointReferenceType getReplyTo()
+    {
+        return replyTo ;
+    }
+    
+    /**
+     * Set the reply endpoint reference.
+     * @param replyTo The reply endpoint reference.
+     */
+    public void setReplyTo(final EndpointReferenceType replyTo)
+    {
+        this.replyTo = replyTo ;
+    }
+    
+    /**
+     * Get the fault endpoint reference.
+     * @return The fault endpoint reference.
+     */
+    public EndpointReferenceType getFaultTo()
+    {
+        return faultTo ;
+    }
+    
+    /**
+     * Set the fault endpoint reference.
+     * @param faultTo The fault endpoint reference.
+     */
+    public void setFaultTo(final EndpointReferenceType faultTo)
+    {
+        this.faultTo = faultTo ;
+    }
+    
+    /**
+     * Get the list of relationships.
+     * @return The list of relationships or null.
+     */
+    public RelationshipType[] getRelatesTo()
+    {
+        return (relatesTo == null ? null : (RelationshipType[]) relatesTo.toArray(new RelationshipType[relatesTo.size()])) ;
+    }
+    
+    /**
+     * Add a relationship to this addressing context.
+     * @param relationship The relationship to add.
+     */
+    public void addRelatesTo(final RelationshipType relationship)
+    {
+        if (relatesTo == null)
+        {
+            relatesTo = new ArrayList() ;
+        }
+        relatesTo.add(relationship) ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wsaddr.AddressingContext_1 [com.arjuna.webservices.wsaddr.AddressingContext_1] - Addressing context is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr.AddressingContext_1")) ;
+       }
+       
+       StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_TO_QNAME, to) ;
+       StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_ACTION_QNAME, action) ;
+       if (messageID != null)
+       {
+           StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_MESSAGE_ID_QNAME, messageID) ;
+       }
+       if (from != null)
+       {
+           StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_FROM_QNAME, from) ;
+       }
+       if (replyTo != null)
+       {
+           StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_REPLY_TO_QNAME, replyTo) ;
+       }
+       if (faultTo != null)
+       {
+           StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_FAULT_TO_QNAME, faultTo) ;
+       }
+       if (relatesTo != null)
+       {
+           final Iterator relatesToIter = relatesTo.iterator() ;
+           while(relatesToIter.hasNext())
+           {
+               final RelationshipType relationship = (RelationshipType)relatesToIter.next() ;
+               StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_RELATES_TO_QNAME, relationship) ;
+           }
+       }
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsaddr.AddressingContext_2 [com.arjuna.webservices.wsaddr.AddressingContext_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (AddressingConstants.WSA_ELEMENT_TO.equals(localPart))
+            {
+                setTo(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_ACTION.equals(localPart))
+            {
+                setAction(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_MESSAGE_ID.equals(localPart))
+            {
+                setMessageID(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_FROM.equals(localPart))
+            {
+                setFrom(new EndpointReferenceType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_REPLY_TO.equals(localPart))
+            {
+                setReplyTo(new EndpointReferenceType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_FAULT_TO.equals(localPart))
+            {
+                setFaultTo(new EndpointReferenceType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_RELATES_TO.equals(localPart))
+            {
+                addRelatesTo(new RelationshipType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr.AddressingContext_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr.AddressingContext_2") ;
+            final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((to != null) && to.isValid()) &&
+            ((action != null) && action.isValid()) &&
+            ((from == null) || from.isValid()) &&
+            ((faultTo == null) || faultTo.isValid()) &&
+            ((replyTo == null) || replyTo.isValid()) &&
+            (((replyTo == null) && (faultTo == null)) || ((messageID != null) && messageID.isValid())) ;
+    }
+
+    /**
+     * Get the addressing context from the message context if present.
+     * @param messageContext The message context.
+     * @return The addressing context or null if not present.
+     */
+    public static AddressingContext getContext(final MessageContext messageContext)
+    {
+        final AddressingContext addressingContext = (AddressingContext)messageContext.getProperty(ADDRESSING_CONTEXT_PROPERTY) ;
+        if (addressingContext != null)
+        {
+            return addressingContext ;
+        }
+        final AddressingContext newAddressingContext = new AddressingContext() ;
+        setContext(messageContext, newAddressingContext) ;
+        return newAddressingContext ;
+    }
+
+    /**
+     * Set the addressing context for the message context.
+     * @param messageContext The message context.
+     * @param addressingContext The addressing context.
+     */
+    public static void setContext(final MessageContext messageContext, final AddressingContext addressingContext)
+    {
+        messageContext.setProperty(ADDRESSING_CONTEXT_PROPERTY, addressingContext) ;
+    }
+
+    /**
+     * Create an addressing context that represents a reply to the specified addressing context.
+     * @param addressingContext The addressing context being replied to.
+     * @param messageID The message id of the new message.
+     * @return The reply addressing context.
+     * 
+     * N.B. Still need to do From, Action, ReplyTo, FaultTo if needed.
+     */
+    public static AddressingContext createResponseContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext responseContext = new AddressingContext() ;
+        initialiseTo(responseContext, addressingContext) ;
+        responseContext.addRelatesTo(new RelationshipType(addressingContext.getMessageID().getValue())) ;
+        responseContext.setMessageID(new AttributedURIType(messageID)) ;
+        
+        return responseContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a fault to the specified addressing context.
+     * @param addressingContext 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 AddressingContext createFaultContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext faultContext = new AddressingContext() ;
+        final EndpointReferenceType faultTo = addressingContext.getFaultTo() ;
+        if (faultTo != null)
+        {
+            initialiseTo(faultContext, faultTo) ;
+        }
+        else
+        {
+            initialiseTo(faultContext, addressingContext) ;
+        }
+        faultContext.addRelatesTo(new RelationshipType(addressingContext.getMessageID().getValue())) ;
+        faultContext.setMessageID(new AttributedURIType(messageID)) ;
+        
+        return faultContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a request to the specified endpoint reference.
+     * @param endpointReference The target endpoint reference.
+     * @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 AddressingContext createRequestContext(final EndpointReferenceType endpointReference, final String messageID)
+    {
+        final AddressingContext requestContext = new AddressingContext() ;
+        initialiseTo(requestContext, endpointReference) ;
+        requestContext.setMessageID(new AttributedURIType(messageID)) ;
+        return requestContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a request to the specified address.
+     * @param address The 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 AddressingContext createRequestContext(final String address, final String messageID)
+    {
+        final AddressingContext requestContext = new AddressingContext() ;
+        requestContext.setTo(new AttributedURIType(address)) ;
+        requestContext.setMessageID(new AttributedURIType(messageID)) ;
+        return requestContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a notification to the specified context.
+     * @param addressingContext The addressing context 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 AddressingContext createNotificationContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext responseContext = new AddressingContext() ;
+        initialiseTo(responseContext, addressingContext) ;
+        responseContext.setMessageID(new AttributedURIType(messageID)) ;
+        
+        return responseContext ;
+    }
+    
+    /**
+     * Initialise the To values from the specified addressing context.
+     * @param newContext The addressing context to initialise.
+     * @param origContext The addressing context to check.
+     */
+    private static void initialiseTo(final AddressingContext newContext, final AddressingContext origContext)
+    {
+        final EndpointReferenceType replyTo = origContext.getReplyTo() ;
+        if (replyTo != null)
+        {
+            initialiseTo(newContext, replyTo) ;
+        }
+        else
+        {
+            initialiseTo(newContext, origContext.getFrom()) ;
+        }
+    }
+    
+    /**
+     * Initialise the To values from the specified endpoint reference.
+     * @param addressingContext The addressing context to initialise.
+     * @param endpointReference The endpoint reference
+     */
+    private static void initialiseTo(final AddressingContext addressingContext, final EndpointReferenceType endpointReference)
+    {
+        addressingContext.setTo(endpointReference.getAddress()) ;
+        addressingContext.copyAnyContents(endpointReference.getReferenceParameters()) ;
+        addressingContext.copyAnyContents(endpointReference.getReferenceProperties()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedQNameType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedQNameType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedQNameType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,127 @@
+/*
+ * 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.wsaddr;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="AttributedQName">
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:QName">
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an AttributedQName
+ * @author kevin
+ */
+public class AttributedQNameType extends AnyAttributeSupport
+{
+    /**
+     * The QName value of this element.
+     */
+    private QName value ;
+    
+    /**
+     * Default constructor.
+     */
+    public AttributedQNameType()
+    {
+    }
+    
+    /**
+     * Construct the attributed QName from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public AttributedQNameType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        final NamespaceContext namespaceContext = in.getNamespaceContext() ;
+        setValue(QNameHelper.toQName(namespaceContext, value)) ;
+    }
+    
+    /**
+     * Set the QName value of this element.
+     * @param value The QName value of the element.
+     */
+    public void setValue(final QName value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Get the QName value of this element.
+     * @return The QName value of the element or null if not set.
+     */
+    public QName getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     * @message com.arjuna.webservices.wsaddr.AttributedQNameType_1 [com.arjuna.webservices.wsaddr.AttributedQNameType_1] - Invalid QName value for attributed QName
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (value == null)
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr.AttributedQNameType_1")) ;
+        }
+        
+        StreamHelper.writeQualifiedName(out, value) ;
+    }
+    
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (value != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedURIType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedURIType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/AttributedURIType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,123 @@
+/*
+ * 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.wsaddr;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+
+/*
+ * <xs:complexType name="AttributedURI">
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:anyURI">
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an AttributedURI
+ * @author kevin
+ */
+public class AttributedURIType extends AnyAttributeSupport
+{
+    /**
+     * The URI value of this element.
+     */
+    private String value ;
+
+    /**
+     * Default constructor.
+     */
+    public AttributedURIType()
+    {
+    }
+    
+    /**
+     * Construct the AttributedURIType with a specific value.
+     * @param value The URI value.
+     */
+    public AttributedURIType(final String value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Construct the attributed uri from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for errors during reading.
+     */
+    public AttributedURIType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Set the URI value of this element.
+     * @param value The URI value of the element.
+     */
+    public void setValue(final String value)
+    {
+        this.value = (value == null ? null : value.trim()) ;
+    }
+    
+    /**
+     * Get the URI value of this element.
+     * @return The URI value of the element or null if not set.
+     */
+    public String getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(value) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (value != null) && (value.trim().length() > 0) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/EndpointReferenceType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/EndpointReferenceType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/EndpointReferenceType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,309 @@
+/*
+ * 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.wsaddr;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="EndpointReferenceType">
+ *   <xs:sequence>
+ *     <xs:element name="Address" type="wsa:AttributedURI"/>
+ *     <xs:element name="ReferenceProperties" type="wsa:ReferencePropertiesType" minOccurs="0"/>
+ *     <xs:element name="ReferenceParameters" type="wsa:ReferenceParametersType" minOccurs="0"/>
+ *     <xs:element name="PortType" type="wsa:AttributedQName" minOccurs="0"/>
+ *     <xs:element name="ServiceName" type="wsa:ServiceNameType" minOccurs="0"/>
+ *     <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+ *       <xs:annotation>
+ *         <xs:documentation>
+ *           If "Policy" elements from namespace "http://schemas.xmlsoap.org/ws/2002/12/policy#policy" are used, they must appear first (before any extensibility elements).
+ *         </xs:documentation>
+ *       </xs:annotation>
+ *     </xs:any>
+ *   </xs:sequence>
+ *   <xs:anyAttribute namespace="##other" processContents="lax"/>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an EndpointReferenceType
+ * @author kevin
+ */
+public class EndpointReferenceType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The address.
+     */
+    private AttributedURIType address ;
+    /**
+     * The reference properties.
+     */
+    private ReferencePropertiesType referenceProperties ;
+    /**
+     * The reference parameters.
+     */
+    private ReferenceParametersType referenceParameters ;
+    /**
+     * The port type.
+     */
+    private AttributedQNameType portType ;
+    /**
+     * The service name.
+     */
+    private ServiceNameType serviceName ;
+
+    /**
+     * Default constructor.
+     */
+    public EndpointReferenceType()
+    {
+    }
+    
+    /**
+     * Construct an endpoint reference to a specified address.
+     * @param address The endpoint reference address.
+     */
+    public EndpointReferenceType(final AttributedURIType address)
+    {
+        setAddress(address) ;
+    }
+    
+    /**
+     * Construct the endpoint reference from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public EndpointReferenceType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the address.
+     * @param address The address.
+     */
+    public void setAddress(final AttributedURIType address)
+    {
+        this.address = address ;
+    }
+    
+    /**
+     * Get the address.
+     * @return The address.
+     */
+    public AttributedURIType getAddress()
+    {
+        return address ;
+    }
+    
+    /**
+     * Get the reference properties.
+     * @return The reference properties.
+     */
+    public ReferencePropertiesType getReferenceProperties()
+    {
+        return referenceProperties ;
+    }
+    
+    /**
+     * Set the reference properties.
+     * @param referenceProperties The reference properties.
+     */
+    public void setReferenceProperties(final ReferencePropertiesType referenceProperties)
+    {
+        this.referenceProperties = referenceProperties ;
+    }
+    
+    /**
+     * Add a reference property.
+     * @param property The reference property.
+     */
+    public void addReferenceProperty(final NamedElement property)
+    {
+        if (referenceProperties == null)
+        {
+            referenceProperties = new ReferencePropertiesType() ;
+        }
+        referenceProperties.putAnyContent(property) ;
+    }
+    
+    /**
+     * Get the reference parameters.
+     * @return The reference parameters.
+     */
+    public ReferenceParametersType getReferenceParameters()
+    {
+        return referenceParameters ;
+    }
+    
+    /**
+     * Set the reference parameters.
+     * @param referenceParameters The reference parameters.
+     */
+    public void setReferenceParameters(final ReferenceParametersType referenceParameters)
+    {
+        this.referenceParameters = referenceParameters ;
+    }
+    
+    /**
+     * Add a reference parameter.
+     * @param parameter The reference parameter.
+     */
+    public void addReferenceParameter(final NamedElement parameter)
+    {
+        if (referenceParameters == null)
+        {
+            referenceParameters = new ReferenceParametersType() ;
+        }
+        referenceParameters.putAnyContent(parameter) ;
+    }
+    
+    /**
+     * get the port type.
+     * @return The port type.
+     */
+    public AttributedQNameType getPortType()
+    {
+        return portType ;
+    }
+    
+    /**
+     * Set the port type.
+     * @param portType The port type.
+     */
+    public void setPortType(final AttributedQNameType portType)
+    {
+        this.portType = portType ;
+    }
+    
+    /**
+     * Get the service name.
+     * @return The service name.
+     */
+    public ServiceNameType getServiceName()
+    {
+        return serviceName ;
+    }
+    
+    /**
+     * Set the service name.
+     * @param serviceName The service name.
+     */
+    public void setServiceName(final ServiceNameType serviceName)
+    {
+        this.serviceName = serviceName ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsaddr.EndpointReferenceType_1 [com.arjuna.webservices.wsaddr.EndpointReferenceType_1] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (AddressingConstants.WSA_ELEMENT_ADDRESS.equals(localPart))
+            {
+                setAddress(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_REFERENCE_PROPERTIES.equals(localPart))
+            {
+                setReferenceProperties(new ReferencePropertiesType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_REFERENCE_PARAMETERS.equals(localPart))
+            {
+                setReferenceParameters(new ReferenceParametersType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_PORT_TYPE.equals(localPart))
+            {
+                setPortType(new AttributedQNameType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_SERVICE_NAME.equals(localPart))
+            {
+                setServiceName(new ServiceNameType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr.EndpointReferenceType_1") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_ADDRESS_QNAME, address) ;
+        if (referenceProperties != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_REFERENCE_PROPERTIES_QNAME, referenceProperties) ;
+        }
+        if (referenceParameters != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_REFERENCE_PARAMETERS_QNAME, referenceParameters) ;
+        }
+        if (portType != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_PORT_TYPE_QNAME, portType) ;
+        }
+        if (serviceName != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_SERVICE_NAME_QNAME, serviceName) ;
+        }
+        super.writeChildContent(out) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((address != null) && address.isValid()) &&
+            ((referenceProperties == null) || referenceProperties.isValid()) &&
+            ((referenceParameters == null) || referenceParameters.isValid()) &&
+            ((portType == null) || portType.isValid()) &&
+            ((serviceName == null) || serviceName.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferenceParametersType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferenceParametersType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferenceParametersType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsaddr;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentSupport;
+
+/*
+ * <xs:complexType name="ReferenceParametersType">
+ *   <xs:sequence>
+ *     <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ *   </xs:sequence>
+ * </xs:complexType>
+ */
+/**
+ * Representation of a ReferenceParametersType
+ * @author kevin
+ */
+public class ReferenceParametersType extends AnyContentSupport
+{
+    /**
+     * Default constructor.
+     */
+    public ReferenceParametersType()
+    {
+    }
+    
+    /**
+     * Construct the reference parameters from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public ReferenceParametersType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferencePropertiesType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferencePropertiesType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ReferencePropertiesType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsaddr;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentSupport;
+
+/*
+ * <xs:complexType name="ReferencePropertiesType">
+ *   <xs:sequence>
+ *     <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ *   </xs:sequence>
+ * </xs:complexType>
+ */
+/**
+ * Representation of a ReferencePropertiesType
+ * @author kevin
+ */
+public class ReferencePropertiesType extends AnyContentSupport
+{
+    /**
+     * Default constructor.
+     */
+    public ReferencePropertiesType()
+    {
+    }
+    
+    /**
+     * Construct the reference properties from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public ReferencePropertiesType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/RelationshipType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/RelationshipType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/RelationshipType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,132 @@
+/*
+ * 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.wsaddr;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="Relationship">
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:anyURI">
+ *       <xs:attribute name="RelationshipType" type="xs:QName" use="optional"/>
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of a Relationship
+ * @author kevin
+ */
+public class RelationshipType extends AttributedURIType
+{
+    /**
+     * The relationship type attribute.
+     */
+    private QName relationshipType ;
+    
+    /**
+     * Default constructor.
+     */
+    public RelationshipType()
+    {
+    }
+    
+    /**
+     * Construct the relationship type.
+     * @param relatesTo The relates to id.
+     */
+    public RelationshipType(final String relatesTo)
+    {
+        setValue(relatesTo) ;
+    }
+    
+    /**
+     * Construct the relationship from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public RelationshipType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        super(in) ;
+    }
+    /**
+     * Get the relationship type.
+     * @return The relationship type or null if not set.
+     */
+    public QName getRelationshipType()
+    {
+        return relationshipType ;
+    }
+    
+    /**
+     * Set the relationship type.
+     * @param relationshipType The relationship type.
+     */
+    public void setRelationshipType(final QName relationshipType)
+    {
+        this.relationshipType = relationshipType ;
+    }
+    
+    /**
+     * Add the attribute value to the list of known attributes.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in, final QName attributeName,
+        final String attributeValue)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_ATTRIBUTE_NAMESPACE.equals(attributeName.getNamespaceURI()) &&
+                AddressingConstants.WSA_ATTRIBUTE_RELATIONSHIP_TYPE.equals(attributeName.getLocalPart()))
+        {
+            final NamespaceContext namespaceContext = in.getNamespaceContext() ;
+            setRelationshipType(QNameHelper.toQName(namespaceContext, attributeValue)) ;
+        }
+        else
+        {
+            super.putAttribute(in, attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (relationshipType != null)
+        {
+            StreamHelper.writeAttribute(out, AddressingConstants.WSA_ATTRIBUTE_RELATIONSHIP_TYPE_QNAME, relationshipType) ;
+        }
+        super.writeAttributes(out) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ServiceNameType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ServiceNameType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/ServiceNameType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,127 @@
+/*
+ * 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.wsaddr;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="ServiceNameType">
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:QName">
+ *       <xs:attribute name="PortName" type="xs:NCName"/>
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of a ServiceName
+ * @author kevin
+ */
+public class ServiceNameType extends AttributedQNameType
+{
+    /**
+     * Default constructor.
+     */
+    public ServiceNameType()
+    {
+    }
+    
+    /**
+     * Construct the service name from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public ServiceNameType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        super(in) ;
+    }
+    
+    /**
+     * The port name attribute.
+     */
+    private String portName ;
+    
+    /**
+     * Get the port name.
+     * @return The port name.
+     */
+    public String getPortName()
+    {
+        return portName ;
+    }
+    
+    /**
+     * Set the port name.
+     * @param portName The port name.
+     */
+    public void setPortName(final String portName)
+    {
+        this.portName = portName ;
+    }
+    
+    /**
+     * Add the attribute value to the list of known attributes.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_ATTRIBUTE_NAMESPACE.equals(attributeName.getNamespaceURI()) &&
+                AddressingConstants.WSA_ATTRIBUTE_PORT_NAME.equals(attributeName.getLocalPart()))
+        {
+            setPortName(attributeValue) ;
+        }
+        else
+        {
+            super.putAttribute(in, attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeAttribute(out, AddressingConstants.WSA_ATTRIBUTE_PORT_NAME_QNAME, portName) ;
+        super.writeAttributes(out) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (portName != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/client/BaseWSAddrClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/client/BaseWSAddrClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/client/BaseWSAddrClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,164 @@
+/*
+ * 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.wsaddr.client;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapClient;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.soap.SoapBodyMessage;
+import com.arjuna.webservices.soap.SoapFaultMessage;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * Base client.
+ * @author kevin
+ */
+public class BaseWSAddrClient
+{
+    /**
+     * Send a request.
+     * @param request The request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param soapService The client SOAP service.
+     * @param from The from endpoint reference.
+     * @param replyTo The replyTo endpoint reference.
+     * @param bodyName The body name for the request.
+     * @param action The action URI for the request.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    protected SoapMessage send(final ElementContent request,
+        final AddressingContext addressingContext, final SoapService soapService,
+        final EndpointReferenceType from, final EndpointReferenceType replyTo,
+        final QName bodyName, final AttributedURIType action)
+        throws SoapFault, IOException
+    {
+        // Initialise From, ReplyTo and Action.  FaultTo should be blank.
+        addressingContext.setFrom(from) ;
+        addressingContext.setReplyTo(replyTo) ;
+        addressingContext.setAction(action) ;
+        final String actionValue = (action == null ? null : action.getValue()) ;
+        
+        final String toURL = addressingContext.getTo().getValue() ;
+        
+        final MessageContext messageContext = new MessageContext() ;
+        AddressingContext.setContext(messageContext, addressingContext) ;
+
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        
+        final String scheme = soapRegistry.getScheme(toURL) ;
+        final NamedElement contents = new NamedElement(bodyName, request) ;
+        final SoapBody soapBody = new SoapBody(contents, actionValue) ;
+        final SoapBodyMessage soapBodyMessage = new SoapBodyMessage(soapBody, null, soapService, messageContext) ; 
+        
+        final SoapClient client = soapRegistry.getSoapClient(scheme) ;
+        return client.invoke(soapBodyMessage, toURL) ;
+    }
+    
+    /**
+     * Send a one way request.
+     * @param request The request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param soapService The client SOAP service.
+     * @param from The from endpoint reference.
+     * @param replyTo The replyTo endpoint reference.
+     * @param bodyName The body name for the request.
+     * @param action The action URI for the request.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    protected void sendOneWay(final ElementContent request,
+        final AddressingContext addressingContext, final SoapService soapService,
+        final EndpointReferenceType from, final EndpointReferenceType replyTo,
+        final QName bodyName, final AttributedURIType action)
+        throws SoapFault, IOException
+    {
+        // Initialise From, ReplyTo and Action.  FaultTo should be blank.
+        addressingContext.setFrom(from) ;
+        addressingContext.setReplyTo(replyTo) ;
+        addressingContext.setAction(action) ;
+        final String actionValue = (action == null ? null : action.getValue()) ;
+        
+        final String toURL = addressingContext.getTo().getValue() ;
+        
+        final MessageContext messageContext = new MessageContext() ;
+        AddressingContext.setContext(messageContext, addressingContext) ;
+
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        
+        final String scheme = soapRegistry.getScheme(toURL) ;
+        final NamedElement contents = new NamedElement(bodyName, request) ;
+        final SoapBody soapBody = new SoapBody(contents, actionValue) ;
+        final SoapBodyMessage soapBodyMessage = new SoapBodyMessage(soapBody, null, soapService, messageContext) ; 
+        
+        final SoapClient client = soapRegistry.getSoapClient(scheme) ;
+        client.invokeOneWay(soapBodyMessage, toURL) ;
+    }
+    
+    /**
+     * Send a fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param soapService The client SOAP service.
+     * @param from The from endpoint reference.
+     * @param action The action URI for the request.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    protected void sendSoapFault(final SoapFault soapFault,
+        final AddressingContext addressingContext, final SoapService soapService,
+        final EndpointReferenceType from, final AttributedURIType action)
+        throws SoapFault, IOException
+    {
+        // Initialise From and Action.  ReplyTo and FaultTo should be blank.
+        addressingContext.setFrom(from) ;
+        addressingContext.setAction(action) ;
+        
+        final String toURL = addressingContext.getTo().getValue() ;
+        
+        final MessageContext messageContext = new MessageContext() ;
+        if (action != null)
+        {
+            soapFault.setAction(action.getValue()) ;
+        }
+        AddressingContext.setContext(messageContext, addressingContext) ;
+
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        
+        final String scheme = soapRegistry.getScheme(toURL) ;
+        final SoapFaultMessage fault = new SoapFaultMessage(soapFault, null, soapService, messageContext) ;
+        
+        final SoapClient client = soapRegistry.getSoapClient(scheme) ;
+        client.invokeOneWay(fault, toURL) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ActionHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ActionHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ActionHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+
+/**
+ * Header handler for parsing the WS-Addressing Action header.
+ * @author kevin
+ */
+public class ActionHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final AttributedURIType action = new AttributedURIType(in) ;
+        AddressingContext.getContext(context).setAction(action) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/AddressingContextHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/AddressingContextHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/AddressingContextHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+
+/**
+ * Header handler for parsing the WS-Addressing RelatesTo header.
+ * @author kevin
+ */
+public class AddressingContextHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        // does nothing, handled by individual handlers
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        if (addressingContext != null)
+        {
+            addressingContext.writeContent(out) ;
+        }
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // KEV - add validation
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FaultToHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FaultToHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FaultToHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * Header handler for parsing the WS-Addressing FaultTo header.
+ * @author kevin
+ */
+public class FaultToHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final EndpointReferenceType faultTo = new EndpointReferenceType(in) ;
+        AddressingContext.getContext(context).setFaultTo(faultTo) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FromHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FromHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/FromHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * Header handler for parsing the WS-Addressing From header.
+ * @author kevin
+ */
+public class FromHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final EndpointReferenceType from = new EndpointReferenceType(in) ;
+        AddressingContext.getContext(context).setFrom(from) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/MessageIDHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/MessageIDHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/MessageIDHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+
+/**
+ * Header handler for parsing the WS-Addressing MessageID header.
+ * @author kevin
+ */
+public class MessageIDHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final AttributedURIType messageID = new AttributedURIType(in) ;
+        AddressingContext.getContext(context).setMessageID(messageID) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/RelationshipHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/RelationshipHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/RelationshipHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+
+/**
+ * Header handler for parsing the WS-Addressing RelatesTo header.
+ * @author kevin
+ */
+public class RelationshipHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final RelationshipType relationship = new RelationshipType(in) ;
+        AddressingContext.getContext(context).addRelatesTo(relationship) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ReplyToHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ReplyToHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ReplyToHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * Header handler for parsing the WS-Addressing ReplyTo header.
+ * @author kevin
+ */
+public class ReplyToHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final EndpointReferenceType replyTo = new EndpointReferenceType(in) ;
+        AddressingContext.getContext(context).setReplyTo(replyTo) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ToHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ToHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/handlers/ToHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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.wsaddr.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+
+/**
+ * Header handler for parsing the WS-Addressing To header.
+ * @author kevin
+ */
+public class ToHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final AttributedURIType to = new AttributedURIType(in) ;
+        AddressingContext.getContext(context).setTo(to) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/policy/AddressingPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/policy/AddressingPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/policy/AddressingPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsaddr.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsaddr.AddressingConstants;
+import com.arjuna.webservices.wsaddr.handlers.ActionHandler;
+import com.arjuna.webservices.wsaddr.handlers.AddressingContextHandler;
+import com.arjuna.webservices.wsaddr.handlers.FaultToHandler;
+import com.arjuna.webservices.wsaddr.handlers.FromHandler;
+import com.arjuna.webservices.wsaddr.handlers.MessageIDHandler;
+import com.arjuna.webservices.wsaddr.handlers.RelationshipHandler;
+import com.arjuna.webservices.wsaddr.handlers.ReplyToHandler;
+import com.arjuna.webservices.wsaddr.handlers.ToHandler;
+
+/**
+ * Policy responsible for binding in the WS-Addressing header handlers.
+ * @author kevin
+ */
+public class AddressingPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_TO_QNAME, new ToHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_ACTION_QNAME, new ActionHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_MESSAGE_ID_QNAME, new MessageIDHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_FROM_QNAME, new FromHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_REPLY_TO_QNAME, new ReplyToHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_FAULT_TO_QNAME, new FaultToHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_RELATES_TO_QNAME, new RelationshipHandler()) ;
+        registry.registerHeaderHandler(null, new AddressingContextHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_TO_QNAME) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_ACTION_QNAME) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_MESSAGE_ID_QNAME) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_FROM_QNAME) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_REPLY_TO_QNAME) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_FAULT_TO_QNAME) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_RELATES_TO_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/processor/BaseWSAddrResponseProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/processor/BaseWSAddrResponseProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr/processor/BaseWSAddrResponseProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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.wsaddr.processor;
+
+import com.arjuna.webservices.base.processors.BaseProcessor;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+
+/**
+ * Utility class handling common response functionality.
+ * @author kevin
+ */
+public abstract class BaseWSAddrResponseProcessor extends BaseProcessor
+{
+    /**
+     * Get the callback ids.
+     * @param addressingContext The addressing context.
+     * @return The callback ids.
+     */
+    protected String[] getIDs(final AddressingContext addressingContext)
+    {
+        final RelationshipType[] relationships = addressingContext.getRelatesTo() ;
+        if (relationships != null)
+        {
+            final int numRelationships = relationships.length ;
+            final String[] ids = new String[numRelationships] ;
+            for(int count = 0 ; count < numRelationships ; count++)
+            {
+                ids[count] = relationships[count].getValue() ;
+            }
+            return ids ;
+        }
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,331 @@
+/*
+ * 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.wsaddr2005;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-Addressing constants.
+ */
+public interface AddressingConstants
+{
+    /**
+     * The Namespace.
+     */
+    public String WSA_NAMESPACE = "http://www.w3.org/2005/08/addressing" ;
+    /**
+     * The Attribute Namespace.
+     */
+    public String WSA_ATTRIBUTE_NAMESPACE = "" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSA_PREFIX = "wsa" ;
+    /**
+     * The attribute namespace prefix.
+     */
+    public String WSA_ATTRIBUTE_PREFIX = "" ;
+    
+    /**
+     * The Action element.
+     */
+    public String WSA_ELEMENT_ACTION = "Action" ;
+    /**
+     * The Action QName.
+     */
+    public QName WSA_ELEMENT_QNAME_ACTION = new QName(WSA_NAMESPACE, WSA_ELEMENT_ACTION, WSA_PREFIX) ;
+    /**
+     * The Endpoint Reference element.
+     */
+    public String WSA_ELEMENT_ENDPOINT_REFERENCE = "EndpointReference" ;
+    /**
+     * The Endpoint Reference QName.
+     */
+    public QName WSA_ELEMENT_QNAME_ENDPOINT_REFERENCE = new QName(WSA_NAMESPACE, WSA_ELEMENT_ENDPOINT_REFERENCE, WSA_PREFIX) ;
+    /**
+     * The Fault To element.
+     */
+    public String WSA_ELEMENT_FAULT_TO = "FaultTo" ;
+    /**
+     * The Fault To QName.
+     */
+    public QName WSA_ELEMENT_QNAME_FAULT_TO = new QName(WSA_NAMESPACE, WSA_ELEMENT_FAULT_TO, WSA_PREFIX) ;
+    /**
+     * The From element.
+     */
+    public String WSA_ELEMENT_FROM = "From" ;
+    /**
+     * The From QName.
+     */
+    public QName WSA_ELEMENT_QNAME_FROM = new QName(WSA_NAMESPACE, WSA_ELEMENT_FROM, WSA_PREFIX) ;
+    /**
+     * The Message ID element.
+     */
+    public String WSA_ELEMENT_MESSAGE_ID = "MessageID" ;
+    /**
+     * The Message ID QName.
+     */
+    public QName WSA_ELEMENT_QNAME_MESSAGE_ID = new QName(WSA_NAMESPACE, WSA_ELEMENT_MESSAGE_ID, WSA_PREFIX) ;
+    /**
+     * The Relates To element.
+     */
+    public String WSA_ELEMENT_RELATES_TO = "RelatesTo" ;
+    /**
+     * The Relates To QName.
+     */
+    public QName WSA_ELEMENT_QNAME_RELATES_TO = new QName(WSA_NAMESPACE, WSA_ELEMENT_RELATES_TO, WSA_PREFIX) ;
+    /**
+     * The Reply To element.
+     */
+    public String WSA_ELEMENT_REPLY_TO = "ReplyTo" ;
+    /**
+     * The Reply To QName.
+     */
+    public QName WSA_ELEMENT_QNAME_REPLY_TO = new QName(WSA_NAMESPACE, WSA_ELEMENT_REPLY_TO, WSA_PREFIX) ;
+    /**
+     * The To element.
+     */
+    public String WSA_ELEMENT_TO = "To" ;
+    /**
+     * The To QName.
+     */
+    public QName WSA_ELEMENT_QNAME_TO = new QName(WSA_NAMESPACE, WSA_ELEMENT_TO, WSA_PREFIX) ;
+    /**
+     * The Address element.
+     */
+    public String WSA_ELEMENT_ADDRESS = "Address" ;
+    /**
+     * The Address QName.
+     */
+    public QName WSA_ELEMENT_QNAME_ADDRESS = new QName(WSA_NAMESPACE, WSA_ELEMENT_ADDRESS, WSA_PREFIX) ;
+    /**
+     * The Reference Parameters element.
+     */
+    public String WSA_ELEMENT_REFERENCE_PARAMETERS = "ReferenceParameters" ;
+    /**
+     * The Reference Parameters QName.
+     */
+    public QName WSA_ELEMENT_QNAME_REFERENCE_PARAMETERS = new QName(WSA_NAMESPACE, WSA_ELEMENT_REFERENCE_PARAMETERS, WSA_PREFIX) ;
+    /**
+     * The Metadata element.
+     */
+    public String WSA_ELEMENT_METADATA = "Metadata" ;
+    /**
+     * The Metadata QName.
+     */
+    public QName WSA_ELEMENT_QNAME_METADATA = new QName(WSA_NAMESPACE, WSA_ELEMENT_METADATA, WSA_PREFIX) ;
+    
+    /**
+     * The Relationship Type attribute.
+     */
+    public String WSA_ATTRIBUTE_RELATIONSHIP_TYPE = "RelationshipType" ;
+    /**
+     * The Relationship Type QName.
+     */
+    public QName WSA_ATTRIBUTE_QNAME_RELATIONSHIP_TYPE = new QName(WSA_ATTRIBUTE_NAMESPACE, WSA_ATTRIBUTE_RELATIONSHIP_TYPE, WSA_ATTRIBUTE_PREFIX) ;
+    
+    /**
+     * The value of the Action element for faults.
+     */
+    public String WSA_ACTION_FAULT = WSA_NAMESPACE + "/fault" ;
+    /**
+     * The value of the Action element for SOAP faults.
+     */
+    public String WSA_ACTION_SOAP_FAULT = WSA_NAMESPACE + "/soap/fault" ;
+
+    /**
+     * The unspecified Message ID for use in relationships.
+     * KEV check 
+     */
+    public String WSA_MESSAGE_ID_UNSPECIFIED = WSA_NAMESPACE + "/unspecified" ;
+    
+    /**
+     * The address URI representing an anonymous endpoint.
+     */
+    public String WSA_ADDRESS_ANONYMOUS = WSA_NAMESPACE + "/anonymous" ;
+    /**
+     * The address URI representing the none endpoint.
+     */
+    public String WSA_ADDRESS_NONE = WSA_NAMESPACE + "/none" ;
+    
+    /**
+     * The relates to reply URI.
+     */
+    public String WSA_RELATES_TO_REPLY = WSA_NAMESPACE + "/reply" ;
+
+    /**
+     * The Is Reference Parameter attribute.
+     */
+    public String WSA_ATTRIBUTE_IS_REFERENCE_PARAMETER = "IsReferenceParameter" ;
+    /**
+     * The Is Reference Parameter QName.
+     */
+    public QName WSA_ATTRIBUTE_QNAME_IS_REFERENCE_PARAMETER = new QName(WSA_NAMESPACE, WSA_ATTRIBUTE_IS_REFERENCE_PARAMETER, WSA_PREFIX) ;
+
+    /**
+     * The Fault Detail element.
+     */
+    public String WSA_ELEMENT_FAULT_DETAIL = "FaultDetail" ;
+    /**
+     * The Fault Detail QName.
+     */
+    public QName WSA_ELEMENT_QNAME_FAULT_DETAIL = new QName(WSA_NAMESPACE, WSA_ELEMENT_FAULT_DETAIL, WSA_PREFIX) ;
+    
+    /**
+     * The Invalid Addressing Header fault code.
+     */
+    public String WSA_FAULT_CODE_INVALID_ADDRESSING_HEADER = "InvalidAddressingHeader" ;
+    /**
+     * The Invalid Addressing Header fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_INVALID_ADDRESSING_HEADER = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_INVALID_ADDRESSING_HEADER, WSA_PREFIX) ;
+    /**
+     * The Invalid Address fault code.
+     */
+    public String WSA_FAULT_CODE_INVALID_ADDRESS = "InvalidAddress" ;
+    /**
+     * The Invalid Address fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_INVALID_ADDRESS = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_INVALID_ADDRESS, WSA_PREFIX) ;
+    /**
+     * The Invalid EPR fault code.
+     */
+    public String WSA_FAULT_CODE_INVALID_EPR = "InvalidEPR" ;
+    /**
+     * The Invalid EPR fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_INVALID_EPR = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_INVALID_EPR, WSA_PREFIX) ;
+    /**
+     * The Invalid Cardinality fault code.
+     */
+    public String WSA_FAULT_CODE_INVALID_CARDINALITY = "InvalidCardinality" ;
+    /**
+     * The Invalid Cardinality fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_INVALID_CARDINALITY = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_INVALID_CARDINALITY, WSA_PREFIX) ;
+    /**
+     * The Missing Address In EPR fault code.
+     */
+    public String WSA_FAULT_CODE_MISSING_ADDRESS_IN_EPR = "MissingAddressInEPR" ;
+    /**
+     * The Missing Address In EPR fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_MISSING_ADDRESS_IN_EPR = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_MISSING_ADDRESS_IN_EPR, WSA_PREFIX) ;
+    /**
+     * The Duplicate Message ID fault code.
+     */
+    public String WSA_FAULT_CODE_DUPLICATE_MESSAGE_ID = "DuplicateMessageID" ;
+    /**
+     * The Duplicate Message ID fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_DUPLICATE_MESSAGE_ID = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_DUPLICATE_MESSAGE_ID, WSA_PREFIX) ;
+    /**
+     * The Action Mismatch fault code.
+     */
+    public String WSA_FAULT_CODE_ACTION_MISMATCH = "ActionMismatch" ;
+    /**
+     * The Action Mismatch fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_ACTION_MISMATCH = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_ACTION_MISMATCH, WSA_PREFIX) ;
+    /**
+     * The Message Addressing Header Required fault code.
+     */
+    public String WSA_FAULT_CODE_MESSAGING_ADDRESSING_HEADER_REQUIRED = "MessageAddressingHeaderRequired" ;
+    /**
+     * The Message Addressing Header Required fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_MESSAGING_ADDRESSING_HEADER_REQUIRED = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_MESSAGING_ADDRESSING_HEADER_REQUIRED, WSA_PREFIX) ;
+    /**
+     * The Destination Unreachable fault code.
+     */
+    public String WSA_FAULT_CODE_DESTINATION_UNREACHABLE = "DestinationUnreachable" ;
+    /**
+     * The Destination Unreachable fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_DESTINATION_UNREACHABLE = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_DESTINATION_UNREACHABLE, WSA_PREFIX) ;
+    /**
+     * The Action Not Supported fault code.
+     */
+    public String WSA_FAULT_CODE_ACTION_NOT_SUPPORTED = "ActionNotSupported" ;
+    /**
+     * The Action Not Supported fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_ACTION_NOT_SUPPORTED = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_ACTION_NOT_SUPPORTED, WSA_PREFIX) ;
+    /**
+     * The Endpoint Unavailable fault code.
+     */
+    public String WSA_FAULT_CODE_ENDPOINT_UNAVAILABLE = "EndpointUnavailable" ;
+    /**
+     * The Endpoint Unavailable fault code QName.
+     */
+    public QName WSA_FAULT_CODE_QNAME_ENDPOINT_UNAVAILABLE = new QName(WSA_NAMESPACE, WSA_FAULT_CODE_ENDPOINT_UNAVAILABLE, WSA_PREFIX) ;
+    
+    /**
+     * The Problem Header element.
+     */
+    public String WSA_ELEMENT_PROBLEM_HEADER = "ProblemHeader" ;
+    /**
+     * The Problem Header QName.
+     */
+    public QName WSA_ELEMENT_QNAME_PROBLEM_HEADER = new QName(WSA_NAMESPACE, WSA_ELEMENT_PROBLEM_HEADER, WSA_PREFIX) ;
+    /**
+     * The Problem Header QName element.
+     */
+    public String WSA_ELEMENT_PROBLEM_HEADER_QNAME = "ProblemHeaderQName" ;
+    /**
+     * The Problem Header QName QName.
+     */
+    public QName WSA_ELEMENT_QNAME_PROBLEM_HEADER_QNAME = new QName(WSA_NAMESPACE, WSA_ELEMENT_PROBLEM_HEADER_QNAME, WSA_PREFIX) ;
+    /**
+     * The Problem IRI element.
+     */
+    public String WSA_ELEMENT_PROBLEM_IRI = "ProblemIRI" ;
+    /**
+     * The Problem IRI QName.
+     */
+    public QName WSA_ELEMENT_QNAME_PROBLEM_IRI = new QName(WSA_NAMESPACE, WSA_ELEMENT_PROBLEM_IRI, WSA_PREFIX) ;
+    /**
+     * The Problem Action element.
+     */
+    public String WSA_ELEMENT_PROBLEM_ACTION = "ProblemAction" ;
+    /**
+     * The Problem Action QName.
+     */
+    public QName WSA_ELEMENT_QNAME_PROBLEM_ACTION = new QName(WSA_NAMESPACE, WSA_ELEMENT_PROBLEM_ACTION, WSA_PREFIX) ;
+    /**
+     * The Soap Action element.
+     */
+    public String WSA_ELEMENT_SOAP_ACTION = "SoapAction" ;
+    /**
+     * The Soap Action QName.
+     */
+    public QName WSA_ELEMENT_QNAME_SOAP_ACTION = new QName(WSA_NAMESPACE, WSA_ELEMENT_SOAP_ACTION, WSA_PREFIX) ;
+    /**
+     * The Retry After element.
+     */
+    public String WSA_ELEMENT_RETRY_AFTER = "RetryAfter" ;
+    /**
+     * The Retry After QName.
+     */
+    public QName WSA_ELEMENT_QNAME_RETRY_AFTER = new QName(WSA_NAMESPACE, WSA_ELEMENT_METADATA, WSA_PREFIX) ;
+    
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,619 @@
+/*
+ * 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.wsaddr2005;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentSupport;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * The complete addressing context.
+ * @author kevin
+ */
+public class AddressingContext extends AnyContentSupport
+{
+    /**
+     * The key used for the addressing context within a message exchange.
+     */
+    protected static final byte[] ADDRESSING_CONTEXT_PROPERTY = new byte[0] ;
+    
+    /**
+     * The To header.
+     */
+    private AttributedURIType to ;
+    /**
+     * The Action header.
+     */
+    private AttributedURIType action ;
+    /**
+     * The MessageID header.
+     */
+    private AttributedURIType messageID ;
+    /**
+     * The From header.
+     */
+    private EndpointReferenceType from ;
+    /**
+     * The ReplyTo header.
+     */
+    private EndpointReferenceType replyTo ;
+    /**
+     * The FaultTo header.
+     */
+    private EndpointReferenceType faultTo ;
+    /**
+     * The RelatesTo headers.
+     */
+    private List relatesTo ;
+    
+    /**
+     * The associated request addressing context.
+     */
+    private AddressingContext requestContext ;
+    
+    /**
+     * Default constructor.
+     */
+    protected AddressingContext()
+    {
+    }
+    
+    /**
+     * Construct an addressing context from the input stream.
+     * N.B. This method is for testing purposes only.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public AddressingContext(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the to URI.
+     * @return The to URI.
+     */
+    public AttributedURIType getTo()
+    {
+        return to ;
+    }
+    
+    /**
+     * Set the to URI.
+     * @param to The to URI.
+     */
+    public void setTo(final AttributedURIType to)
+    {
+        this.to = to ;
+    }
+    
+    /**
+     * Get the action.
+     * @return The action.
+     */
+    public AttributedURIType getAction()
+    {
+        return action ;
+    }
+    
+    /**
+     * Set the action.
+     * @param action The action.
+     */
+    public void setAction(final AttributedURIType action)
+    {
+        this.action = action ;
+    }
+    
+    /**
+     * Get the messageID.
+     * @return The messageID.
+     */
+    public AttributedURIType getMessageID()
+    {
+        return messageID ;
+    }
+    
+    /**
+     * Set the messageID.
+     * @param messageID The messageID.
+     */
+    public void setMessageID(final AttributedURIType messageID)
+    {
+        this.messageID = messageID ;
+    }
+    
+    /**
+     * Get the from endpoint reference.
+     * @return The from endpoint reference.
+     */
+    public EndpointReferenceType getFrom()
+    {
+        return from ;
+    }
+    
+    /**
+     * Set the from endpoint reference.
+     * @param from The from endpoint reference.
+     */
+    public void setFrom(final EndpointReferenceType from)
+    {
+        this.from = from ;
+    }
+    
+    /**
+     * Get the reply endpoint reference.
+     * @return The reply endpoint reference.
+     */
+    public EndpointReferenceType getReplyTo()
+    {
+        return replyTo ;
+    }
+    
+    /**
+     * Set the reply endpoint reference.
+     * @param replyTo The reply endpoint reference.
+     */
+    public void setReplyTo(final EndpointReferenceType replyTo)
+    {
+        this.replyTo = replyTo ;
+    }
+    
+    /**
+     * Get the fault endpoint reference.
+     * @return The fault endpoint reference.
+     */
+    public EndpointReferenceType getFaultTo()
+    {
+        return faultTo ;
+    }
+    
+    /**
+     * Set the fault endpoint reference.
+     * @param faultTo The fault endpoint reference.
+     */
+    public void setFaultTo(final EndpointReferenceType faultTo)
+    {
+        this.faultTo = faultTo ;
+    }
+    
+    /**
+     * Get the list of relationships.
+     * @return The list of relationships or null.
+     */
+    public RelatesToType[] getRelatesTo()
+    {
+        return (relatesTo == null ? null : (RelatesToType[]) relatesTo.toArray(new RelatesToType[relatesTo.size()])) ;
+    }
+    
+    /**
+     * Add a relationship to this addressing context.
+     * @param relationship The relationship to add.
+     */
+    public void addRelatesTo(final RelatesToType relationship)
+    {
+        if (relatesTo == null)
+        {
+            relatesTo = new ArrayList() ;
+        }
+        relatesTo.add(relationship) ;
+    }
+    
+    /**
+     * Get the associated request context.
+     * @return The associated request context or null if no association exists.
+     */
+    public AddressingContext getRequestContext()
+    {
+        return requestContext ;
+    }
+    
+    /**
+     * Set the associated request context.
+     * @param requestContext The associated request context.
+     */
+    private void setRequestContext(final AddressingContext requestContext)
+    {
+        this.requestContext = requestContext ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wsaddr2005.AddressingContext_1 [com.arjuna.webservices.wsaddr2005.AddressingContext_1] - Addressing context is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if ((to != null) && !AddressingConstants.WSA_ADDRESS_ANONYMOUS.equals(to.getValue()))
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_TO, to) ;
+        }
+        if (action != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_ACTION, action) ;
+        }
+        if (messageID != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_MESSAGE_ID, messageID) ;
+        }
+        if (from != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_FROM, from) ;
+        }
+        if (replyTo != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_REPLY_TO, replyTo) ;
+        }
+        if (faultTo != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_FAULT_TO, faultTo) ;
+        }
+        if (relatesTo != null)
+        {
+            final Iterator relatesToIter = relatesTo.iterator() ;
+            while(relatesToIter.hasNext())
+            {
+                final RelatesToType relationship = (RelatesToType)relatesToIter.next() ;
+                StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_RELATES_TO, relationship) ;
+            }
+        }
+       
+        super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsaddr2005.AddressingContext_2 [com.arjuna.webservices.wsaddr2005.AddressingContext_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (AddressingConstants.WSA_ELEMENT_TO.equals(localPart))
+            {
+                setTo(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_ACTION.equals(localPart))
+            {
+                setAction(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_MESSAGE_ID.equals(localPart))
+            {
+                setMessageID(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_FROM.equals(localPart))
+            {
+                setFrom(new EndpointReferenceType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_REPLY_TO.equals(localPart))
+            {
+                setReplyTo(new EndpointReferenceType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_FAULT_TO.equals(localPart))
+            {
+                setFaultTo(new EndpointReferenceType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_RELATES_TO.equals(localPart))
+            {
+                addRelatesTo(new RelatesToType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.AddressingContext_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.AddressingContext_2") ;
+            final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((to == null) || to.isValid()) &&
+            ((from == null) || from.isValid()) &&
+            ((faultTo == null) || faultTo.isValid()) &&
+            ((replyTo == null) || replyTo.isValid()) &&
+            ((action != null) && action.isValid()) &&
+            (((replyTo == null) && (faultTo == null)) || ((messageID != null) && messageID.isValid())) ;
+    }
+    
+    /**
+     * Update a SOAP fault with addressing headers.
+     * @param soapFault The SOAP fault to update.
+     */
+    public void updateSoapFaultHeaders(final SoapFault soapFault)
+    {
+        final List soapFaultHeaders = new ArrayList() ;
+        if (to != null)
+        {
+            soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_TO, to)) ;
+        }
+        if (action != null)
+        {
+            soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_ACTION, action)) ;
+        }
+        if (messageID != null)
+        {
+            soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_MESSAGE_ID, messageID)) ;
+        }
+        if (from != null)
+        {
+            soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_FROM, from)) ;
+        }
+        if (replyTo != null)
+        {
+            soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_REPLY_TO, replyTo)) ;
+        }
+        if (faultTo != null)
+        {
+            soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_TO, faultTo)) ;
+        }
+        if (relatesTo != null)
+        {
+            final Iterator relatesToIter = relatesTo.iterator() ;
+            while(relatesToIter.hasNext())
+            {
+                final RelatesToType relationship = (RelatesToType)relatesToIter.next() ;
+                soapFaultHeaders.add(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_RELATES_TO, relationship)) ;
+            }
+        }
+        final NamedElement[] currentHeaders = soapFault.getHeaderElements() ;
+        final int numHeaderElements = (currentHeaders == null ? 0 : currentHeaders.length) ;
+        for(int count = 0 ; count < numHeaderElements ; count++)
+        {
+            soapFaultHeaders.add(currentHeaders[count]) ;
+        }
+        soapFault.setHeaderElements((NamedElement[]) soapFaultHeaders.toArray(new NamedElement[soapFaultHeaders.size()])) ;
+    }
+
+    /**
+     * Get the addressing context from the message context if present.
+     * @param messageContext The message context.
+     * @return The addressing context or null if not present.
+     */
+    public static AddressingContext getContext(final MessageContext messageContext)
+    {
+        final AddressingContext addressingContext = (AddressingContext)messageContext.getProperty(ADDRESSING_CONTEXT_PROPERTY) ;
+        if (addressingContext != null)
+        {
+            return addressingContext ;
+        }
+        final AddressingContext newAddressingContext = new AddressingContext() ;
+        setContext(messageContext, newAddressingContext) ;
+        return newAddressingContext ;
+    }
+
+    /**
+     * Set the addressing context for the message context.
+     * @param messageContext The message context.
+     * @param addressingContext The addressing context.
+     */
+    public static void setContext(final MessageContext messageContext, final AddressingContext addressingContext)
+    {
+        messageContext.setProperty(ADDRESSING_CONTEXT_PROPERTY, addressingContext) ;
+    }
+
+    /**
+     * Create an addressing context that represents a reply to the specified addressing context.
+     * @param addressingContext The addressing context being replied to.
+     * @param messageID The message id of the new message.
+     * @return The reply addressing context.
+     * 
+     * N.B. Still need to do From, Action, ReplyTo, FaultTo if needed.
+     */
+    public static AddressingContext createOneWayResponseContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext responseContext = new AddressingContext() ;
+        responseContext.setRequestContext(addressingContext) ;
+        initialiseTo(responseContext, addressingContext) ;
+        final AttributedURIType contextMessageID = addressingContext.getMessageID() ;
+        if (contextMessageID != null)
+        {
+            responseContext.addRelatesTo(new RelatesToType(addressingContext.getMessageID().getValue())) ;
+        }
+        responseContext.setMessageID(new AttributedURIType(messageID)) ;
+        
+        return responseContext ;
+    }
+
+    /**
+     * Create an addressing context that represents an inline reply to the specified addressing context.
+     * @param addressingContext The addressing context being replied to.
+     * @param messageID The message id of the new message.
+     * @return The reply addressing context.
+     */
+    public static AddressingContext createResponseContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext responseContext = new AddressingContext() ;
+        responseContext.setRequestContext(addressingContext) ;
+        initialiseTo(responseContext, addressingContext) ;
+        final AttributedURIType contextMessageID = addressingContext.getMessageID() ;
+        if (contextMessageID != null)
+        {
+            responseContext.addRelatesTo(new RelatesToType(contextMessageID.getValue())) ;
+        }
+        responseContext.setMessageID(new AttributedURIType(messageID)) ;
+        
+        return responseContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a fault to the specified addressing context.
+     * @param addressingContext 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 AddressingContext createFaultContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext faultContext = new AddressingContext() ;
+        faultContext.setRequestContext(addressingContext) ;
+        final EndpointReferenceType faultTo = addressingContext.getFaultTo() ;
+        if (faultTo != null)
+        {
+            initialiseTo(faultContext, faultTo) ;
+        }
+        else
+        {
+            initialiseTo(faultContext, addressingContext) ;
+        }
+        final AttributedURIType contextMessageID = addressingContext.getMessageID() ;
+        if (contextMessageID != null)
+        {
+            faultContext.addRelatesTo(new RelatesToType(contextMessageID.getValue())) ;
+        }
+        faultContext.setMessageID(new AttributedURIType(messageID)) ;
+        
+        return faultContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a request to the specified endpoint reference.
+     * @param endpointReference The target endpoint reference.
+     * @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 AddressingContext createRequestContext(final EndpointReferenceType endpointReference, final String messageID)
+    {
+        final AddressingContext requestContext = new AddressingContext() ;
+        initialiseTo(requestContext, endpointReference) ;
+        if (messageID != null)
+        {
+            requestContext.setMessageID(new AttributedURIType(messageID)) ;
+        }
+        return requestContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a request to the specified address.
+     * @param address The 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 AddressingContext createRequestContext(final String address, final String messageID)
+    {
+        final AddressingContext requestContext = new AddressingContext() ;
+        requestContext.setTo(new AttributedURIType(address)) ;
+        if (messageID != null)
+        {
+            requestContext.setMessageID(new AttributedURIType(messageID)) ;
+        }
+        return requestContext ;
+    }
+
+    /**
+     * Create an addressing context that represents a notification to the specified context.
+     * @param addressingContext The addressing context 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 AddressingContext createRequestContext(final AddressingContext addressingContext, final String messageID)
+    {
+        final AddressingContext requestContext = new AddressingContext() ;
+        initialiseTo(requestContext, addressingContext) ;
+        if (messageID != null)
+        {
+            requestContext.setMessageID(new AttributedURIType(messageID)) ;
+        }
+        
+        return requestContext ;
+    }
+    
+    /**
+     * Initialise the To values from the specified addressing context.
+     * @param newContext The addressing context to initialise.
+     * @param origContext The addressing context to check.
+     */
+    private static void initialiseTo(final AddressingContext newContext, final AddressingContext origContext)
+    {
+        final EndpointReferenceType replyTo = origContext.getReplyTo() ;
+        if (replyTo != null)
+        {
+            initialiseTo(newContext, replyTo) ;
+        }
+        else
+        {
+            newContext.setTo(new AttributedURIType(AddressingConstants.WSA_ADDRESS_ANONYMOUS)) ;
+        }
+    }
+    
+    /**
+     * Initialise the To values from the specified endpoint reference.
+     * @param addressingContext The addressing context to initialise.
+     * @param endpointReference The endpoint reference
+     */
+    private static void initialiseTo(final AddressingContext addressingContext, final EndpointReferenceType endpointReference)
+    {
+        if (endpointReference != null)
+        {
+            addressingContext.setTo(endpointReference.getAddress()) ;
+            final ReferenceParametersType referenceParametersType = endpointReference.getReferenceParameters() ;
+            
+            if (referenceParametersType != null)
+            {
+                final NamedElement[] anyContent = referenceParametersType.getAnyContent() ;
+                final int numAnyContent = (anyContent == null ? 0 : anyContent.length) ;
+                for(int count = 0 ; count < numAnyContent ; count++)
+                {
+                    final NamedElement namedElement = anyContent[count] ;
+                    addressingContext.putAnyContent(new NamedElement(namedElement.getName(), new AddressingElementContent(namedElement.getElementContent()))) ;
+                }
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingElementContent.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingElementContent.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AddressingElementContent.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsaddr2005;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * A class representing an addressing header element.
+ * @author kevin
+ *
+ */
+public class AddressingElementContent extends ElementContent
+{
+    /**
+     * The wrapped element content.
+     */
+    private final ElementContent elementContent ;
+    
+    /**
+     * Construct the addressing header element.
+     * @param elementContent The wrapped element content.
+     */
+    AddressingElementContent(final ElementContent elementContent)
+    {
+        this.elementContent = elementContent ;
+    }
+    
+    /**
+     * Write the contents of the element.
+     * @param out The output stream.
+     */
+    public final void writeContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeAttribute(out, AddressingConstants.WSA_ATTRIBUTE_QNAME_IS_REFERENCE_PARAMETER, "true") ;
+        elementContent.writeContent(out) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedAnyType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedAnyType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedAnyType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,162 @@
+/*
+ * 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.wsaddr2005;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+import com.arjuna.webservices.stax.AnyElement;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="AttributedAnyType" mixed="false">
+ *   <xs:sequence>
+ *     <xs:any namespace="##any" processContents="lax" minOccurs="1" maxOccurs="1"/>
+ *   </xs:sequence>
+ *   <xs:anyAttribute namespace="##other" processContents="lax"/>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an AttributedAnyType
+ * @author kevin
+ */
+public class AttributedAnyType extends AnyAttributeSupport
+{
+    /**
+     * The Any value of this element.
+     */
+    private NamedElement any ;
+
+    /**
+     * Default constructor.
+     */
+    public AttributedAnyType()
+    {
+    }
+    
+    /**
+     * Construct the AttributedAnyType with a specific value.
+     * @param any The Any.
+     */
+    public AttributedAnyType(final NamedElement any)
+    {
+        this.any = any ;
+    }
+    
+    /**
+     * Construct the AttributedAnyType from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for errors during reading.
+     */
+    public AttributedAnyType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Set the any element.
+     * @param any The any element.
+     */
+    public void setAny(final NamedElement any)
+    {
+        this.any = any ;
+    }
+    
+    /**
+     * Get the any element.
+     * @return The any element.
+     */
+    public NamedElement getAny()
+    {
+        return any ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsaddr2005.AttributedAnyType_1 [com.arjuna.webservices.wsaddr2005.AttributedAnyType_1] - Unexpected second element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (any != null)
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.AttributedAnyType_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+            throw new XMLStreamException(message) ;
+        }
+        final AnyElement anyElement = new AnyElement(in) ;
+        setAny(new NamedElement(elementName, anyElement)) ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (any != null)
+        {
+            final QName name = any.getName() ;
+            
+            if (name != null)
+            {
+                final String origNamespace = StreamHelper.writeStartElement(out, name) ;
+                any.getElementContent().writeContent(out) ;
+                StreamHelper.writeEndElement(out, name.getPrefix(), origNamespace) ;
+            }
+            else
+            {
+                any.getElementContent().writeContent(out) ;
+            }
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        if (any != null)
+        {
+            final QName name = any.getName() ;
+            if (name != null)
+            {
+                final ElementContent elementContent = any.getElementContent() ;
+                return ((elementContent != null) && elementContent.isValid()) ;
+            }
+        }
+        return false ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedQNameType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedQNameType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedQNameType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,129 @@
+/*
+ * 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.wsaddr2005;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="AttributedQName">
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:QName">
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an AttributedQName
+ * @author kevin
+ */
+public class AttributedQNameType extends AnyAttributeSupport
+{
+    /**
+     * The QName value of this element.
+     */
+    private QName value ;
+    
+    /**
+     * Construct the attributed QName with the specified value.
+     * @param value The qualified name.
+     */
+    public AttributedQNameType(final QName value)
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Construct the attributed QName from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public AttributedQNameType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        final NamespaceContext namespaceContext = in.getNamespaceContext() ;
+        setValue(QNameHelper.toQName(namespaceContext, value)) ;
+    }
+    
+    /**
+     * Set the QName value of this element.
+     * @param value The QName value of the element.
+     */
+    public void setValue(final QName value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Get the QName value of this element.
+     * @return The QName value of the element or null if not set.
+     */
+    public QName getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     * @message com.arjuna.webservices.wsaddr2005.AttributedQNameType_1 [com.arjuna.webservices.wsaddr2005.AttributedQNameType_1] - Invalid QName value for attributed QName
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (value == null)
+        {
+            throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.AttributedQNameType_1")) ;
+        }
+        
+        StreamHelper.writeQualifiedName(out, value) ;
+    }
+    
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (value != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedURIType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedURIType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedURIType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,123 @@
+/*
+ * 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.wsaddr2005;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+
+/*
+ * <xs:complexType name="AttributedURI">
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:anyURI">
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an AttributedURI
+ * @author kevin
+ */
+public class AttributedURIType extends AnyAttributeSupport
+{
+    /**
+     * The URI value of this element.
+     */
+    private String value ;
+
+    /**
+     * Default constructor.
+     */
+    public AttributedURIType()
+    {
+    }
+    
+    /**
+     * Construct the AttributedURIType with a specific value.
+     * @param value The URI value.
+     */
+    public AttributedURIType(final String value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Construct the attributed uri from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for errors during reading.
+     */
+    public AttributedURIType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Set the URI value of this element.
+     * @param value The URI value of the element.
+     */
+    public void setValue(final String value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Get the URI value of this element.
+     * @return The URI value of the element or null if not set.
+     */
+    public String getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(value) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (value != null) && (value.trim().length() > 0) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedUnsignedLongType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedUnsignedLongType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/AttributedUnsignedLongType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsaddr2005;
+
+import java.math.BigInteger;
+import java.text.MessageFormat;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+
+/*
+ * <xs:complexType>
+ *   <xs:simpleContent>
+ *     <xs:extension base="xs:unsignedLong">
+ *       <xs:anyAttribute namespace="##other" processContents="lax"/>
+ *     </xs:extension>
+ *   </xs:simpleContent>
+ * </xs:complexType>
+ */
+/**
+ * Representation of an attributed unsigned long type.
+ * @author kevin
+ */
+public class AttributedUnsignedLongType extends AnyAttributeSupport
+{
+    /**
+     * The maximum value of an unsigned long.
+     */
+    private static final BigInteger MAX_UNSIGNED_LONG = BigInteger.ONE.shiftLeft(64) ;
+    
+    /**
+     * Default constructor.
+     */
+    public AttributedUnsignedLongType()
+    {
+    }
+    
+    /**
+     * Construct the attributed unsigned int type with the specific value.
+     * @param value The unsigned int value.
+     */
+    public AttributedUnsignedLongType(final BigInteger value)
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Construct the attributed unsigned int type from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public AttributedUnsignedLongType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * The value of this element.
+     */
+    private BigInteger value ;
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        try
+        {
+            setValue(new BigInteger(value.trim())) ;
+        }
+        catch (final NumberFormatException nfe)
+        {
+            final String pattern = "non numerical value: {0}" ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * Set the unsigned int value of this element.
+     * @param value The unsigned int value of the element.
+     */
+    public void setValue(final BigInteger value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Get the unsigned int value of this element.
+     * @return The unsigned int value of the element.
+     */
+    public BigInteger getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(value.toString()) ;
+    }
+    
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((value != null) && (value.compareTo(MAX_UNSIGNED_LONG) < 0)) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/EndpointReferenceType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/EndpointReferenceType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/EndpointReferenceType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,239 @@
+/*
+ * 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.wsaddr2005;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xs:complexType name="EndpointReferenceType" mixed="false">
+ *   <xs:sequence>
+ *     <xs:element name="Address" type="tns:AttributedURIType"/>
+ *     <xs:element name="ReferenceParameters" type="tns:ReferenceParametersType" 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>
+ */
+/**
+ * Representation of an EndpointReferenceType
+ * @author kevin
+ */
+public class EndpointReferenceType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The address.
+     */
+    private AttributedURIType address ;
+    /**
+     * The reference parameters.
+     */
+    private ReferenceParametersType referenceParameters ;
+    /**
+     * The metadata.
+     */
+    private MetadataType metadata ;
+
+    /**
+     * Default constructor.
+     */
+    public EndpointReferenceType()
+    {
+    }
+    
+    /**
+     * Construct an endpoint reference to a specified address.
+     * @param address The endpoint reference address.
+     */
+    public EndpointReferenceType(final AttributedURIType address)
+    {
+        setAddress(address) ;
+    }
+    
+    /**
+     * Construct the endpoint reference from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public EndpointReferenceType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the address.
+     * @param address The address.
+     */
+    public void setAddress(final AttributedURIType address)
+    {
+        this.address = address ;
+    }
+    
+    /**
+     * Get the address.
+     * @return The address.
+     */
+    public AttributedURIType getAddress()
+    {
+        return address ;
+    }
+    
+    /**
+     * Get the reference parameters.
+     * @return The reference parameters.
+     */
+    public ReferenceParametersType getReferenceParameters()
+    {
+        return referenceParameters ;
+    }
+    
+    /**
+     * Set the reference parameters.
+     * @param referenceParameters The reference parameters.
+     */
+    public void setReferenceParameters(final ReferenceParametersType referenceParameters)
+    {
+        this.referenceParameters = referenceParameters ;
+    }
+    
+    /**
+     * Add a reference parameter.
+     * @param parameter The reference parameter.
+     */
+    public void addReferenceParameter(final NamedElement parameter)
+    {
+        if (referenceParameters == null)
+        {
+            referenceParameters = new ReferenceParametersType() ;
+        }
+        referenceParameters.putAnyContent(parameter) ;
+    }
+    
+    /**
+     * Get the metadata.
+     * @return The metadata.
+     */
+    public MetadataType getMetadata()
+    {
+        return metadata ;
+    }
+    
+    /**
+     * Set the metadata.
+     * @param metadata The metadata.
+     */
+    public void setMetadata(final MetadataType metadata)
+    {
+        this.metadata = metadata ;
+    }
+    
+    /**
+     * Add a metadata.
+     * @param parameter The metadata.
+     */
+    public void addMetadata(final NamedElement parameter)
+    {
+        if (metadata == null)
+        {
+        		metadata = new MetadataType() ;
+        }
+        metadata.putAnyContent(parameter) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsaddr2005.EndpointReferenceType_1 [com.arjuna.webservices.wsaddr2005.EndpointReferenceType_1] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (AddressingConstants.WSA_ELEMENT_ADDRESS.equals(localPart))
+            {
+                setAddress(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_REFERENCE_PARAMETERS.equals(localPart))
+            {
+                setReferenceParameters(new ReferenceParametersType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_METADATA.equals(localPart))
+            {
+                setMetadata(new MetadataType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.EndpointReferenceType_1") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_ADDRESS, address) ;
+        if (referenceParameters != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_REFERENCE_PARAMETERS, referenceParameters) ;
+        }
+        if (metadata != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_METADATA, metadata) ;
+        }
+        super.writeChildContent(out) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((address != null) && address.isValid()) &&
+            ((referenceParameters == null) || referenceParameters.isValid()) &&
+            ((metadata == null) || metadata.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/MetadataType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/MetadataType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/MetadataType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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.wsaddr2005;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of a MetadataType
+ * @author kevin
+ */
+public class MetadataType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Default constructor.
+     */
+    public MetadataType()
+    {
+    }
+    
+    /**
+     * Construct the metadata from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public MetadataType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ProblemActionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ProblemActionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ProblemActionType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,203 @@
+/*
+ * 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.wsaddr2005;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of a ProblemActionType
+ * @author kevin
+ */
+public class ProblemActionType extends AnyAttributeSupport
+{
+    /**
+     * The WS-Addressing action value.
+     */
+    private AttributedURIType action ;
+    /**
+     * The SOAP Action value.
+     */
+    private URI soapAction ;
+
+    /**
+     * Default constructor.
+     */
+    public ProblemActionType()
+    {
+    }
+    
+    /**
+     * Construct the ProblemActionType with a specific action.
+     * @param action The action.
+     */
+    public ProblemActionType(final AttributedURIType action)
+    {
+        this(action, null) ;
+    }
+    
+    /**
+     * Construct the ProblemActionType with a specific SoapAction.
+     * @param soapAction The SoapAction.
+     */
+    public ProblemActionType(final URI soapAction)
+    {
+        this(null, soapAction) ;
+    }
+    
+    /**
+     * Construct the ProblemActionType with a specific action.
+     * @param action The WS-Addressing action.
+     * @param soapAction The SOAP action value.
+     */
+    public ProblemActionType(final AttributedURIType action, final URI soapAction)
+    {
+        this.action = action ;
+        this.soapAction = soapAction ;
+    }
+    
+    /**
+     * Construct the ProblemActionType from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for errors during reading.
+     */
+    public ProblemActionType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Put the action element.
+     * @param action The action element.
+     */
+    public void setAction(final AttributedURIType action)
+    {
+        this.action = action ;
+    }
+    
+    /**
+     * Get the action element.
+     * @return The action element.
+     */
+    public AttributedURIType getAction()
+    {
+        return action ;
+    }
+    
+    /**
+     * Put the soap action element.
+     * @param soapAction The soap action element.
+     */
+    public void setSoapAction(final URI soapAction)
+    {
+        this.soapAction = soapAction ;
+    }
+    
+    /**
+     * Get the soap action element.
+     * @return The soap action element.
+     */
+    public URI getSoapAction()
+    {
+        return soapAction ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsaddr2005.ProblemActionType_1 [com.arjuna.webservices.wsaddr2005.ProblemActionType_1] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (AddressingConstants.WSA_ELEMENT_ACTION.equals(localPart))
+            {
+                setAction(new AttributedURIType(in)) ;
+            }
+            else if (AddressingConstants.WSA_ELEMENT_SOAP_ACTION.equals(localPart))
+            {
+                setSoapAction(new URI(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.ProblemActionType_1") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (action != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_ACTION, action) ;
+        }
+        if (soapAction != null)
+        {
+            StreamHelper.writeElement(out, AddressingConstants.WSA_ELEMENT_QNAME_SOAP_ACTION, soapAction) ;
+        }
+        super.writeChildContent(out) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (((action == null) || action.isValid()) &&
+                ((soapAction == null) || soapAction.isValid())) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ReferenceParametersType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ReferenceParametersType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ReferenceParametersType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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.wsaddr2005;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of a ReferenceParametersType
+ * @author kevin
+ */
+public class ReferenceParametersType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Default constructor.
+     */
+    public ReferenceParametersType()
+    {
+    }
+    
+    /**
+     * Construct the reference parameters from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public ReferenceParametersType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/RelatesToType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/RelatesToType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/RelatesToType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,129 @@
+/*
+ * 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.wsaddr2005;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of a RelatesTo
+ * @author kevin
+ */
+public class RelatesToType extends AttributedURIType
+{
+    /**
+     * The relationship type attribute.
+     */
+    private String relationshipType ;
+    
+    /**
+     * Default constructor.
+     */
+    public RelatesToType()
+    {
+    }
+    
+    /**
+     * Construct the relationship type.
+     * @param relatesTo The relates to id.
+     */
+    public RelatesToType(final String relatesTo)
+    {
+        setValue(relatesTo) ;
+    }
+    
+    /**
+     * Construct the relationship from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public RelatesToType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        super(in) ;
+    }
+    /**
+     * Get the relationship type.
+     * @return The relationship type or null if not set.
+     */
+    public String getRelationshipType()
+    {
+        return relationshipType ;
+    }
+    
+    /**
+     * Set the relationship type.
+     * @param relationshipType The relationship type.
+     */
+    public void setRelationshipType(final String relationshipType)
+    {
+        this.relationshipType = relationshipType ;
+    }
+    
+    /**
+     * Add the attribute value to the list of known attributes.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in, final QName attributeName,
+        final String attributeValue)
+        throws XMLStreamException
+    {
+        if (AddressingConstants.WSA_ATTRIBUTE_NAMESPACE.equals(attributeName.getNamespaceURI()) &&
+                AddressingConstants.WSA_ATTRIBUTE_RELATIONSHIP_TYPE.equals(attributeName.getLocalPart()))
+        {
+        		setRelationshipType(attributeValue) ;
+        }
+        else
+        {
+            super.putAttribute(in, attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        if (relationshipType != null)
+        {
+            StreamHelper.writeAttribute(out, AddressingConstants.WSA_ATTRIBUTE_QNAME_RELATIONSHIP_TYPE, relationshipType) ;
+        }
+        super.writeAttributes(out) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/client/WSAddr2005Client.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/client/WSAddr2005Client.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/client/WSAddr2005Client.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,200 @@
+/*
+ * 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.wsaddr2005.client;
+
+import java.io.IOException;
+import java.text.MessageFormat;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapClient;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapMessage;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.soap.SoapBodyMessage;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.soap.SoapFaultMessage;
+import com.arjuna.webservices.wsaddr2005.AddressingConstants;
+import com.arjuna.webservices.wsaddr2005.AddressingContext;
+import com.arjuna.webservices.wsaddr2005.AttributedURIType;
+import com.arjuna.webservices.wsaddr2005.EndpointReferenceType;
+
+/**
+ * Base WS-Addressing 2005 client.
+ * @author kevin
+ * 
+ * @message com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_1 [com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_1] - Addressing context does not specify destination.
+ * @message com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_2 [com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_2] - Invalid destination specified in addressing context.
+ * @message com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_3 [com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_3] - No SOAP client registered for scheme: {0}.
+ * @message com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_4 [com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_4] - Invalid replyTo specified in addressing context.
+ * @message com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_5 [com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_5] - Unexpected SOAP message type returned.
+ */
+public class WSAddr2005Client
+{
+    /**
+     * Send a request.
+     * @param soapBody The body element to send.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param soapDetails The SOAP details.
+     * @param soapService The client SOAP service.
+     * @return The returned SOAP message or null if a one way request.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public static SoapBody send(final SoapBody soapBody,
+        final AddressingContext addressingContext, final SoapDetails soapDetails,
+        final SoapService soapService)
+        throws SoapFault, IOException
+    {
+        final String toURI = getDestinationURI(addressingContext) ;
+        final MessageContext messageContext = createMessageContext(addressingContext) ;
+        final SoapClient client = getSoapClient(toURI) ;
+        
+        final SoapBodyMessage soapBodyMessage = new SoapBodyMessage(soapBody, soapDetails, soapService, messageContext) ; 
+        
+        final EndpointReferenceType replyTo = addressingContext.getReplyTo() ;
+        if (replyTo != null)
+        {
+            if (!replyTo.isValid())
+            {
+                throw new IOException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_4")) ;
+            }
+            final AttributedURIType address = replyTo.getAddress() ;
+            if (!AddressingConstants.WSA_ADDRESS_ANONYMOUS.equals(address.getValue()))
+            {
+                client.invokeOneWay(soapBodyMessage, toURI) ;
+                return null ;
+            }
+        }
+        
+        final SoapMessage response = client.invoke(soapBodyMessage, toURI) ;
+        if (response instanceof SoapBodyMessage)
+        {
+            return ((SoapBodyMessage)response).getSoapBody() ;
+        }
+        throw new IOException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_5")) ;
+    }
+    
+    /**
+     * Send a one way request.
+     * @param soapBody The body element to send.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param soapDetails The SOAP details.
+     * @param soapService The client SOAP service.
+     * @param replyTo The replyTo endpoint reference.
+     * @param action The action URI for the request.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public static void sendOneWay(final SoapBody soapBody,
+        final AddressingContext addressingContext, final SoapDetails soapDetails,
+        final SoapService soapService)
+        throws SoapFault, IOException
+    {
+        final String toURI = getDestinationURI(addressingContext) ;
+        final MessageContext messageContext = createMessageContext(addressingContext) ;
+        final SoapClient client = getSoapClient(toURI) ;
+        
+        final SoapBodyMessage soapBodyMessage = new SoapBodyMessage(soapBody, soapDetails, soapService, messageContext) ; 
+        
+        client.invokeOneWay(soapBodyMessage, toURI) ;
+    }
+    
+    /**
+     * Send a fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param soapDetails The SOAP details.
+     * @param soapService The client SOAP service.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public static void sendSoapFault(final SoapFault soapFault,
+        final AddressingContext addressingContext, final SoapDetails soapDetails,
+        final SoapService soapService)
+        throws SoapFault, IOException
+    {
+        final String toURI = getDestinationURI(addressingContext) ;
+        final MessageContext messageContext = createMessageContext(addressingContext) ;
+        final SoapClient client = getSoapClient(toURI) ;
+        
+        final SoapFaultMessage fault = new SoapFaultMessage(soapFault, soapDetails, soapService, messageContext) ;
+        client.invokeOneWay(fault, toURI) ;
+    }
+    
+    /**
+     * Get the destination URI from the addressing context.
+     * @param addressingContext The current addressing context.
+     * @return The destination URI.
+     * @throws IOException For invalid destination.
+     */
+    private static String getDestinationURI(final AddressingContext addressingContext)
+        throws IOException
+    {
+        final AttributedURIType to = addressingContext.getTo() ;
+        if (to == null)
+        {
+            throw new IOException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_1")) ;
+        }
+        if (!to.isValid())
+        {
+            throw new IOException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_2")) ;
+        }
+        return to.getValue() ;
+    }
+    
+    /**
+     * Create a message context using the specified addressing context.
+     * @param addressingContext The current addressing context.
+     * @return The message context.
+     */
+    private static MessageContext createMessageContext(final AddressingContext addressingContext)
+    {
+        final MessageContext messageContext = new MessageContext() ;
+        AddressingContext.setContext(messageContext, addressingContext) ;
+        return messageContext ;
+    }
+    
+    /**
+     * Get the SOAP client corresponding to the specified destination URI.
+     * @param destinationURI The destination URI.
+     * @return The SOAP client.
+     * @throws IOException for unsupported schemes.
+     */
+    private static SoapClient getSoapClient(final String destinationURI)
+        throws IOException
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String scheme = soapRegistry.getScheme(destinationURI) ;
+        final SoapClient client = soapRegistry.getSoapClient(scheme) ;
+        
+        if (client == null)
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client_3") ;
+            final String message = MessageFormat.format(pattern, new Object[] {scheme}) ;
+            throw new IOException(message) ;
+        }
+        
+        return client ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ActionHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ActionHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ActionHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.AttributedURIType;
+
+/**
+ * Header handler for parsing the WS-Addressing Action header.
+ * @author kevin
+ */
+public class ActionHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final QName headerName = in.getName() ;
+        final AttributedURIType action = new AttributedURIType(in) ;
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        if (!addressingContext.isFaultedAction())
+        {
+            if (addressingContext.getAction() != null)
+            {
+                addressingContext.setFaultedAction() ;
+                addressingContext.setAction(null) ;
+                if (addressingContext.getFaultHeaderName() == null)
+                {
+                    addressingContext.setFaultHeaderName(headerName) ;
+                    addressingContext.setFaultHeader(action) ;
+                }
+            }
+            else
+            {
+                addressingContext.setAction(action) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingContextHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingContextHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingContextHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr2005.AddressingContext;
+
+/**
+ * Header handler for parsing the WS-Addressing RelatesTo header.
+ * @author kevin
+ */
+public class AddressingContextHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        // does nothing, handled by individual handlers
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        if (addressingContext != null)
+        {
+            addressingContext.writeContent(out) ;
+        }
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // Handled by AddressingInterceptorHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingHeaderHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingHeaderHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingHeaderHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+
+/**
+ * Base header handler for WS-Addressing.
+ * @author kevin
+ */
+abstract class AddressingHeaderHandler implements HeaderHandler
+{
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        // handled by AddressingContextHandler
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+        // Handled by AddressingInterceptorHandler
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingInterceptorHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingInterceptorHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/AddressingInterceptorHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,349 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.InterceptorChain;
+import com.arjuna.webservices.InterceptorHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.stax.AnyElement;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.wsaddr2005.AddressingConstants;
+import com.arjuna.webservices.wsaddr2005.AddressingContext;
+import com.arjuna.webservices.wsaddr2005.AttributedQNameType;
+import com.arjuna.webservices.wsaddr2005.AttributedURIType;
+import com.arjuna.webservices.wsaddr2005.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr2005.client.WSAddr2005Client;
+import com.arjuna.wsc.messaging.MessageId;
+
+/**
+ * The interceptor handler responsible for handling faults.
+ * @author kevin
+ * 
+ * @message com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_1 [com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_1] -
+ *     Ignoring invalid WS-Addressing replyTo endpoint reference.
+ * @message com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_2 [com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_2] -
+ *     Ignoring invalid WS-Addressing faultTo endpoint reference.
+ * @message com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_3 [com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_3] -
+ *     Unhandled SOAP fault during asynchronous execution of service.
+ * @message com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_4 [com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_4] -
+ *     Ignoring invalid WS-Addressing replyTo endpoint reference.
+ * @message com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_5 [com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_5] -
+ *     Ignoring invalid WS-Addressing faultTo endpoint reference.
+ */
+public class AddressingInterceptorHandler implements InterceptorHandler
+{
+    /**
+     * Invoke the interceptor.
+     * @param chain The interceptor chain.
+     * @param soapService The SOAP service being called.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final InterceptorChain chain, final SoapService soapService,
+        final SoapDetails soapDetails, final MessageContext context, final MessageContext responseContext,
+        final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final EndpointReferenceType replyTo = addressingContext.getReplyTo() ;
+        if (replyTo != null)
+        {
+            if (!replyTo.isValid())
+            {
+                if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_1") ;
+                }
+            }
+            else if (!AddressingConstants.WSA_ADDRESS_ANONYMOUS.equals(replyTo.getAddress().getValue()))
+            {
+                final EndpointReferenceType faultTo = addressingContext.getFaultTo() ;
+                if (faultTo != null)
+                {
+                    if (!faultTo.isValid())
+                    {
+                        if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                        {
+                            WSCLogger.arjLoggerI18N.debug("com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_2") ;
+                        }
+                    }
+                    else if (AddressingConstants.WSA_ADDRESS_ANONYMOUS.equals(faultTo.getAddress().getValue()))
+                    {
+                        return processInvocation(chain, soapService, soapDetails, context, responseContext, action, in) ;
+                    }
+                }
+                TaskManager.getManager().queueTask(new Task() {
+                    public void executeTask()
+                    {
+                        try
+                        {
+                            processInvocation(chain, soapService, soapDetails, context, responseContext, action, in) ;
+                        }
+                        catch (final SoapFault soapFault)
+                        {
+                            WSCLogger.arjLoggerI18N.error("com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_3", soapFault) ;
+                        }
+                    }
+                }) ;
+                return null ;
+            }
+        }
+        return processInvocation(chain, soapService, soapDetails, context, responseContext, action, in) ;
+    }
+    
+    /**
+     * Process the invocation.
+     * @param chain The interceptor chain.
+     * @param soapService The SOAP service being called.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    private SoapBody processInvocation(final InterceptorChain chain, final SoapService soapService,
+            final SoapDetails soapDetails, final MessageContext context, final MessageContext responseContext,
+            final String action, final XMLStreamReader in)
+            throws SoapFault
+    {
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        try
+        {
+            final SoapBody response = invokeNext(chain, soapService, soapDetails, context, responseContext, action, in) ;
+            if (response != null)
+            {
+                final AddressingContext responseAddressingContext = AddressingContext.createResponseContext(addressingContext, MessageId.getMessageId()) ;
+                final String soapBodyAction = response.getAction() ;
+                if (soapBodyAction != null)
+                {
+                    responseAddressingContext.setAction(new AttributedURIType(soapBodyAction)) ;
+                }
+                AddressingContext.setContext(responseContext, responseAddressingContext) ;
+                
+                final AttributedURIType to = responseAddressingContext.getTo() ;
+                if (to != null)
+                {
+                    if (!to.isValid())
+                    {
+                        if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                        {
+                            WSCLogger.arjLoggerI18N.debug("com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_4") ;
+                        }
+                    }
+                    else
+                    {
+                        final String toURI = to.getValue() ;
+                        if (!AddressingConstants.WSA_ADDRESS_ANONYMOUS.equals(toURI))
+                        {
+                            if (!AddressingConstants.WSA_ADDRESS_NONE.equals(toURI))
+                            {
+                                try
+                                {
+                                    WSAddr2005Client.sendOneWay(response, responseAddressingContext, soapDetails, soapService) ;
+                                }
+                                catch (final IOException ioe)
+                                {
+                                    // Something happened while sending an async response so null out the replyTo and throw a fault.
+                                    addressingContext.setReplyTo(null) ;
+                                    
+                                    final AnyElement detail = new AnyElement() ;
+                                    detail.putAnyContent(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_PROBLEM_IRI, responseAddressingContext.getTo())) ;
+                                    final NamedElement detailElement = new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_DETAIL, detail) ;
+                                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, AddressingConstants.WSA_FAULT_CODE_QNAME_DESTINATION_UNREACHABLE,
+                                        "Destination unreachable", detailElement) ;
+                                    soapFault.setAction(AddressingConstants.WSA_ACTION_FAULT) ;
+                                    throw soapFault ;
+                                }
+                            }
+                            return null ;
+                        }
+                    }
+                }
+            }
+            
+            return response ;
+        }
+        catch (final SoapFault soapFault)
+        {
+            final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+            
+            final String soapFaultAction = soapFault.getAction() ;
+            final String faultAction = (soapFaultAction != null ? soapFaultAction : AddressingConstants.WSA_ACTION_SOAP_FAULT) ;
+            
+            faultAddressingContext.setAction(new AttributedURIType(faultAction)) ;
+            
+            final AttributedURIType to = faultAddressingContext.getTo() ;
+            if (to != null)
+            {
+                if (!to.isValid())
+                {
+                    if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler_5") ;
+                    }
+                }
+                else
+                {
+                    final String toURI = to.getValue() ;
+                    if (!AddressingConstants.WSA_ADDRESS_ANONYMOUS.equals(toURI))
+                    {
+                        if (!AddressingConstants.WSA_ADDRESS_NONE.equals(toURI))
+                        {
+                            try
+                            {
+                                WSAddr2005Client.sendSoapFault(soapFault, faultAddressingContext,
+                                        soapDetails, soapService) ;
+                            }
+                            catch (final IOException ioe)
+                            {
+                                throw new SoapFault(ioe) ;
+                            }
+                        }
+                        return null ;
+                    }
+                }
+            }
+            
+            if (soapFault.isHeaderFault())
+            {
+                faultAddressingContext.updateSoapFaultHeaders(soapFault) ;
+            }
+            else
+            {
+                AddressingContext.setContext(responseContext, faultAddressingContext) ;
+            }
+            
+            throw soapFault ;
+        }
+    }
+    
+    /**
+     * Handle the processing of the next interceptor.
+     * @param chain The interceptor chain.
+     * @param soapService The SOAP service.
+     * @param soapDetails The SOAP details.
+     * @param context The current context.
+     * @param responseContext The response context.
+     * @param action The current action.
+     * @param in The XML stream reader.
+     * @return The response.
+     * @throws SoapFault For errors during processing.
+     */
+    private SoapBody invokeNext(final InterceptorChain chain, final SoapService soapService,
+        final SoapDetails soapDetails, final MessageContext context, final MessageContext responseContext,
+        final String action, final XMLStreamReader in)
+        throws SoapFault
+    {
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        final QName faultHeaderName = addressingContext.getFaultHeaderName() ;
+        if (faultHeaderName != null)
+        {
+            final ElementContent faultHeader = addressingContext.getFaultHeader() ;
+            throw initialiseDuplicateHeaderSoapFault(context, faultHeaderName, faultHeader) ;
+        }
+        
+        if (addressingContext.getAction() == null)
+        {
+            throw initialiseMissingActionSoapFault(context) ;
+        }
+        
+        try
+        {
+            return chain.invokeNext(soapService, soapDetails, context, responseContext, action, in) ;
+        }
+        catch (final SoapFault soapFault)
+        {
+            throw soapFault ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SoapFault(th) ;
+        }
+    }
+    
+    /**
+     * Generate a SOAP fault for a duplicate addressing header.
+     * @param context The message context.
+     * @param headerName The qualified name of the header.
+     * @param header The contents of the header.
+     * @return The SOAP fault.
+     */
+    protected SoapFault initialiseMissingActionSoapFault(final MessageContext context)
+    {
+        final AnyElement detail = new AnyElement() ;
+        detail.putAnyContent(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_PROBLEM_HEADER_QNAME, new AttributedQNameType(AddressingConstants.WSA_ELEMENT_QNAME_ACTION))) ;
+        
+        final NamedElement detailElement = new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_DETAIL, detail) ;
+        final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, AddressingConstants.WSA_FAULT_CODE_QNAME_MESSAGING_ADDRESSING_HEADER_REQUIRED,
+            "Missing Addressing Header", detailElement) ;
+        soapFault.setAction(AddressingConstants.WSA_ACTION_FAULT) ;
+        soapFault.setHeaderFault(true) ;
+        return soapFault ;
+    }
+    
+    /**
+     * Generate a SOAP fault for a duplicate addressing header.
+     * @param context The message context.
+     * @param headerName The qualified name of the header.
+     * @param header The contents of the header.
+     * @return The SOAP fault.
+     */
+    protected SoapFault initialiseDuplicateHeaderSoapFault(final MessageContext context, final QName headerName, final ElementContent header)
+    {
+        final AnyElement problemHeader = new AnyElement() ;
+        problemHeader.putAnyContent(new NamedElement(headerName, header)) ;
+
+        final AnyElement detail = new AnyElement() ;
+        detail.putAnyContent(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_PROBLEM_HEADER_QNAME, new AttributedQNameType(headerName))) ;
+        detail.putAnyContent(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_PROBLEM_HEADER, problemHeader)) ;
+        final NamedElement detailElement = new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_DETAIL, detail) ;
+        final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, AddressingConstants.WSA_FAULT_CODE_QNAME_INVALID_ADDRESSING_HEADER,
+            "Duplicate Addressing Header", detailElement) ;
+        soapFault.setSubSubcode(AddressingConstants.WSA_FAULT_CODE_QNAME_INVALID_CARDINALITY) ;
+        soapFault.setAction(AddressingConstants.WSA_ACTION_FAULT) ;
+        soapFault.setHeaderFault(true) ;
+        return soapFault ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FaultToHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FaultToHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FaultToHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.EndpointReferenceType;
+
+/**
+ * Header handler for parsing the WS-Addressing FaultTo header.
+ * @author kevin
+ */
+public class FaultToHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final QName headerName = in.getName() ;
+        final EndpointReferenceType faultTo = new EndpointReferenceType(in) ;
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        if (!addressingContext.isFaultedFaultTo())
+        {
+            if (addressingContext.getFaultTo() != null)
+            {
+                addressingContext.setFaultedFaultTo() ;
+                addressingContext.setFaultTo(null) ;
+                if (addressingContext.getFaultHeaderName() == null)
+                {
+                    addressingContext.setFaultHeaderName(headerName) ;
+                    addressingContext.setFaultHeader(faultTo) ;
+                }
+            }
+            else
+            {
+                addressingContext.setFaultTo(faultTo) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FromHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FromHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/FromHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.EndpointReferenceType;
+
+/**
+ * Header handler for parsing the WS-Addressing From header.
+ * @author kevin
+ */
+public class FromHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final QName headerName = in.getName() ;
+        final EndpointReferenceType from = new EndpointReferenceType(in) ;
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        if (!addressingContext.isFaultedFrom())
+        {
+            if (addressingContext.getFrom() != null)
+            {
+                addressingContext.setFaultedFrom() ;
+                addressingContext.setFrom(null) ;
+                if (addressingContext.getFaultHeaderName() == null)
+                {
+                    addressingContext.setFaultHeaderName(headerName) ;
+                    addressingContext.setFaultHeader(from) ;
+                }
+            }
+            else
+            {
+                addressingContext.setFrom(from) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/HandlerAddressingContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/HandlerAddressingContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/HandlerAddressingContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,230 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.wsaddr2005.AddressingContext;
+
+/**
+ * Extension of the standard addressing context to include fault information.
+ * @author kevin
+ */
+class HandlerAddressingContext extends AddressingContext
+{
+    /**
+     * The fault header name.
+     */
+    private QName faultHeaderName ;
+    /**
+     * The fault header.
+     */
+    private ElementContent faultHeader ;
+
+    /**
+     * The faulted To flag.
+     */
+    private boolean faultedTo ;
+    /**
+     * The faulted Action flag.
+     */
+    private boolean faultedAction ;
+    /**
+     * The faulted MessageID flag.
+     */
+    private boolean faultedMessageID ;
+    /**
+     * The faulted From flag.
+     */
+    private boolean faultedFrom ;
+    /**
+     * The faulted ReplyTo flag.
+     */
+    private boolean faultedReplyTo ;
+    /**
+     * The faulted FaultTo flag.
+     */
+    private boolean faultedFaultTo ;
+
+    /**
+     * Default constructor.
+     */
+    private HandlerAddressingContext()
+    {
+    }
+
+    /**
+     * Get the fault header name.
+     * @return The fault header name.
+     */
+    QName getFaultHeaderName()
+    {
+        return faultHeaderName ;
+    }
+    
+    /**
+     * Set the fault header name.
+     * @param faultHeaderName The fault header name.
+     */
+    void setFaultHeaderName(final QName faultHeaderName)
+    {
+        this.faultHeaderName = faultHeaderName;
+    }
+    
+    /**
+     * Get the fault header.
+     * @return The fault header.
+     */
+    ElementContent getFaultHeader()
+    {
+        return faultHeader ;
+    }
+    
+    /**
+     * Set the fault header.
+     * @param faultHeader The fault header.
+     */
+    void setFaultHeader(final ElementContent faultHeader)
+    {
+        this.faultHeader = faultHeader;
+    }
+
+    /**
+     * Has the To header been faulted?
+     * @return true if it has faulted, false otherwise.
+     */
+    boolean isFaultedTo()
+    {
+        return faultedTo ;
+    }
+    
+    /**
+     * Set the faulted To flag.
+     */
+    void setFaultedTo()
+    {
+        faultedTo = true ;
+    }
+
+    /**
+     * Has the Action header been faulted?
+     * @return true if it has faulted, false otherwise.
+     */
+    boolean isFaultedAction()
+    {
+        return faultedAction ;
+    }
+    
+    /**
+     * Set the faulted Action flag.
+     */
+    void setFaultedAction()
+    {
+        faultedAction = true ;
+    }
+
+    /**
+     * Has the MessageID header been faulted?
+     * @return true if it has faulted, false otherwise.
+     */
+    boolean isFaultedMessageID()
+    {
+        return faultedMessageID ;
+    }
+    
+    /**
+     * Set the faulted MessageID flag.
+     */
+    void setFaultedMessageID()
+    {
+        faultedMessageID = true ;
+    }
+
+    /**
+     * Has the From header been faulted?
+     * @return true if it has faulted, false otherwise.
+     */
+    boolean isFaultedFrom()
+    {
+        return faultedFrom ;
+    }
+    
+    /**
+     * Set the faulted From flag.
+     */
+    void setFaultedFrom()
+    {
+        faultedFrom = true ;
+    }
+
+    /**
+     * Has the ReplyTo header been faulted?
+     * @return true if it has faulted, false otherwise.
+     */
+    boolean isFaultedReplyTo()
+    {
+        return faultedReplyTo ;
+    }
+    
+    /**
+     * Set the faulted ReplyTo flag.
+     */
+    void setFaultedReplyTo()
+    {
+        faultedReplyTo = true ;
+    }
+
+    /**
+     * Has the FaultTo header been faulted?
+     * @return true if it has faulted, false otherwise.
+     */
+    boolean isFaultedFaultTo()
+    {
+        return faultedFaultTo ;
+    }
+    
+    /**
+     * Set the faulted FaultTo flag.
+     */
+    void setFaultedFaultTo()
+    {
+        faultedFaultTo = true ;
+    }
+
+    /**
+     * Get the addressing context from the message context if present.
+     * @param messageContext The message context.
+     * @return The addressing context or null if not present.
+     */
+    public static HandlerAddressingContext getHandlerContext(final MessageContext messageContext)
+    {
+        final HandlerAddressingContext addressingContext = (HandlerAddressingContext)messageContext.getProperty(ADDRESSING_CONTEXT_PROPERTY) ;
+        if (addressingContext != null)
+        {
+            return addressingContext ;
+        }
+        final HandlerAddressingContext newAddressingContext = new HandlerAddressingContext() ;
+        setContext(messageContext, newAddressingContext) ;
+        return newAddressingContext ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/MessageIDHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/MessageIDHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/MessageIDHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.AttributedURIType;
+
+/**
+ * Header handler for parsing the WS-Addressing MessageID header.
+ * @author kevin
+ */
+public class MessageIDHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final QName headerName = in.getName() ;
+        final AttributedURIType messageID = new AttributedURIType(in) ;
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        if (!addressingContext.isFaultedMessageID())
+        {
+            if (addressingContext.getMessageID() != null)
+            {
+                addressingContext.setFaultedMessageID() ;
+                if (addressingContext.getFaultHeaderName() == null)
+                {
+                    addressingContext.setFaultHeaderName(headerName) ;
+                    addressingContext.setFaultHeader(messageID) ;
+                }
+            }
+            else
+            {
+                addressingContext.setMessageID(messageID) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/RelationshipHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/RelationshipHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/RelationshipHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.AddressingContext;
+import com.arjuna.webservices.wsaddr2005.RelatesToType;
+
+/**
+ * Header handler for parsing the WS-Addressing RelatesTo header.
+ * @author kevin
+ */
+public class RelationshipHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @param responseContext The current message response context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final RelatesToType relationship = new RelatesToType(in) ;
+        AddressingContext.getContext(context).addRelatesTo(relationship) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ReplyToHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ReplyToHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ReplyToHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.EndpointReferenceType;
+
+/**
+ * Header handler for parsing the WS-Addressing ReplyTo header.
+ * @author kevin
+ */
+public class ReplyToHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final QName headerName = in.getName() ;
+        final EndpointReferenceType replyTo = new EndpointReferenceType(in) ;
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        if (!addressingContext.isFaultedReplyTo())
+        {
+            if (addressingContext.getReplyTo() != null)
+            {
+                addressingContext.setFaultedReplyTo() ;
+                addressingContext.setReplyTo(null) ;
+                if (addressingContext.getFaultHeaderName() == null)
+                {
+                    addressingContext.setFaultHeaderName(headerName) ;
+                    addressingContext.setFaultHeader(replyTo) ;
+                }
+            }
+            else
+            {
+                addressingContext.setReplyTo(replyTo) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ToHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ToHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/handlers/ToHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.wsaddr2005.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr2005.AttributedURIType;
+
+/**
+ * Header handler for parsing the WS-Addressing To header.
+ * @author kevin
+ */
+public class ToHandler extends AddressingHeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final QName headerName = in.getName() ;
+        final AttributedURIType to = new AttributedURIType(in) ;
+        final HandlerAddressingContext addressingContext = HandlerAddressingContext.getHandlerContext(context) ;
+        if (!addressingContext.isFaultedTo())
+        {
+            if (addressingContext.getTo() != null)
+            {
+                addressingContext.setFaultedTo() ;
+                addressingContext.setTo(null) ;
+                if (addressingContext.getFaultHeaderName() == null)
+                {
+                    addressingContext.setFaultHeaderName(headerName) ;
+                    addressingContext.setFaultHeader(to) ;
+                }
+            }
+            else
+            {
+                addressingContext.setTo(to) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/policy/AddressingPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/policy/AddressingPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/policy/AddressingPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsaddr2005.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.InterceptorHandler;
+import com.arjuna.webservices.wsaddr2005.AddressingConstants;
+import com.arjuna.webservices.wsaddr2005.handlers.ActionHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.AddressingContextHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.AddressingInterceptorHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.FaultToHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.FromHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.MessageIDHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.RelationshipHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.ReplyToHandler;
+import com.arjuna.webservices.wsaddr2005.handlers.ToHandler;
+
+/**
+ * Policy responsible for binding in the WS-Addressing header handlers.
+ * @author kevin
+ */
+public class AddressingPolicy
+{
+    /**
+     * The addressing interceptor handler.
+     */
+    private static final InterceptorHandler interceptorHandler = new AddressingInterceptorHandler() ;
+    
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_TO, new ToHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_ACTION, new ActionHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_MESSAGE_ID, new MessageIDHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_FROM, new FromHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_REPLY_TO, new ReplyToHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_TO, new FaultToHandler()) ;
+        registry.registerHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_RELATES_TO, new RelationshipHandler()) ;
+        registry.registerHeaderHandler(null, new AddressingContextHandler()) ;
+        registry.registerInterceptorHandler(interceptorHandler) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_TO) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_ACTION) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_MESSAGE_ID) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_FROM) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_REPLY_TO) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_TO) ;
+        registry.removeHeaderHandler(AddressingConstants.WSA_ELEMENT_QNAME_RELATES_TO) ;
+        registry.removeHeaderHandler(null) ;
+        registry.removeInterceptorHandler(interceptorHandler) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/processor/BaseWSAddr2005ResponseProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/processor/BaseWSAddr2005ResponseProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/processor/BaseWSAddr2005ResponseProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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.wsaddr2005.processor;
+
+import com.arjuna.webservices.base.processors.BaseProcessor;
+import com.arjuna.webservices.wsaddr2005.AddressingContext;
+import com.arjuna.webservices.wsaddr2005.RelatesToType;;
+
+/**
+ * Utility class handling common response functionality.
+ * @author kevin
+ */
+public abstract class BaseWSAddr2005ResponseProcessor extends BaseProcessor
+{
+    /**
+     * Get the callback ids.
+     * @param addressingContext The addressing context.
+     * @return The callback ids.
+     */
+    protected String[] getIDs(final AddressingContext addressingContext)
+    {
+        final RelatesToType[] relationships = addressingContext.getRelatesTo() ;
+        if (relationships != null)
+        {
+            final int numRelationships = relationships.length ;
+            final String[] ids = new String[numRelationships] ;
+            for(int count = 0 ; count < numRelationships ; count++)
+            {
+                ids[count] = relationships[count].getValue() ;
+            }
+            return ids ;
+        }
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ws-addr.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ws-addr.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddr2005/ws-addr.xsd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,164 @@
+<!--
+  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 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.3 2005/08/09 13:17:35 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 name="ReferenceParameters" type="tns:ReferenceParametersType" 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: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="ProblemHeader" type="tns:AttributedAnyType"/>
+	<xs:complexType name="AttributedAnyType" mixed="false">
+		<xs:sequence>
+			<xs:any namespace="##any" processContents="lax" minOccurs="1" maxOccurs="1"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</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/src/com/arjuna/webservices/wsarj/ArjunaConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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 javax.xml.namespace.QName;
+
+/**
+ * Interface containing Arjuna WS constants.
+ */
+public interface ArjunaConstants
+{
+    /**
+     * The Namespace.
+     */
+    public String WSARJ_NAMESPACE = "http://schemas.arjuna.com/ws/2005/10/wsarj" ;
+    /**
+     * The Attribute Namespace.
+     */
+    public String WSARJ_ATTRIBUTE_NAMESPACE = "" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSARJ_PREFIX = "wsarj" ;
+    /**
+     * The attribute namespace prefix.
+     */
+    public String WSARJ_ATTRIBUTE_PREFIX = "" ;
+
+    /**
+     * The InstanceIdentifier element.
+     */
+    public String WSARJ_ELEMENT_INSTANCE_IDENTIFIER = "InstanceIdentifier" ;
+    /**
+     * The InstanceIdentifier QName.
+     */
+    public QName WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME = new QName(WSARJ_NAMESPACE, WSARJ_ELEMENT_INSTANCE_IDENTIFIER, WSARJ_PREFIX) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,174 @@
+/*
+ * 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 java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentSupport;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * The arjuna context.
+ * @author kevin
+ */
+public class ArjunaContext extends AnyContentSupport
+{
+    /**
+     * The key used for the arjuna context within a message exchange.
+     */
+    private static final byte[] ARJUNA_CONTEXT_PROPERTY = new byte[0] ;
+    
+    /**
+     * The InstanceIdentifier header.
+     */
+    private InstanceIdentifier instanceIdentifier ;
+    
+    /**
+     * Default constructor.
+     */
+    private ArjunaContext()
+    {
+    }
+    
+    /**
+     * Construct an arjuna context from the input stream.
+     * N.B. This method is for testing purposes only.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public ArjunaContext(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the instance identifier.
+     * @return The instance identifier.
+     */
+    public InstanceIdentifier getInstanceIdentifier()
+    {
+        return instanceIdentifier ;
+    }
+    
+    /**
+     * Set the instance identifier.
+     * @param instanceIdentifier The instance identifier.
+     */
+    public void setInstanceIdentifier(final InstanceIdentifier instanceIdentifier)
+    {
+        this.instanceIdentifier = instanceIdentifier ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wsarj.ArjunaContext_1 [com.arjuna.webservices.wsarj.ArjunaContext_1] - Arjuna context is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsarj.ArjunaContext_1")) ;
+       }
+       
+       StreamHelper.writeElement(out, ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME, instanceIdentifier) ;
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsarj.ArjunaContext_2 [com.arjuna.webservices.wsarj.ArjunaContext_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (ArjunaConstants.WSARJ_ATTRIBUTE_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER.equals(localPart))
+            {
+                setInstanceIdentifier(new InstanceIdentifier(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsarj.ArjunaContext_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wsarj.ArjunaContext_2") ;
+            final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * 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 ArjunaContext getCurrentContext(final MessageContext messageContext)
+    {
+        return (ArjunaContext)messageContext.getProperty(ARJUNA_CONTEXT_PROPERTY) ;
+    }
+
+    /**
+     * Get the arjuna context from the message context.
+     * @param messageContext The message context.
+     * @return The arjuna context.
+     */
+    public static ArjunaContext getContext(final MessageContext messageContext)
+    {
+        final ArjunaContext current = (ArjunaContext)messageContext.getProperty(ARJUNA_CONTEXT_PROPERTY) ;
+        if (current != null)
+        {
+            return current ;
+        }
+        final ArjunaContext newContext = new ArjunaContext() ;
+        messageContext.setProperty(ARJUNA_CONTEXT_PROPERTY, newContext) ;
+        return newContext ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifier.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifier.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifier.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,161 @@
+/*
+ * 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 javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * Representation of an InstanceIdentifier element.
+ * @author kevin
+ */
+public class InstanceIdentifier extends ElementContent
+{
+    /**
+     * The instance identifier.
+     */
+    private String instanceIdentifier ;
+    
+    /**
+     * Default constructor.
+     */
+    public InstanceIdentifier()
+    {
+    }
+    
+    /**
+     * Construct an instance identifier with the specific identifier
+     * @param instanceIdentifier The instance identifier.
+     */
+    public InstanceIdentifier(final String instanceIdentifier)
+    {
+        this.instanceIdentifier = instanceIdentifier ;
+    }
+    
+    /**
+     * Construct the InstanceIdentifier from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public InstanceIdentifier(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsarj.InstanceIdentifier_1 [com.arjuna.webservices.wsarj.InstanceIdentifier_1] - InstanceIdentifier elements cannot have embedded elements.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wsarj.InstanceIdentifier_1")) ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value of this element.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        instanceIdentifier = value ;
+    }
+    
+    /**
+     * 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 ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(instanceIdentifier) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (instanceIdentifier != null) && (instanceIdentifier.trim().length() > 0)
+            && super.isValid() ;
+    }
+    
+    /**
+     * Get a string representation of this instance identifier.
+     * @return the string representation.
+     */
+    public String toString()
+    {
+        return (instanceIdentifier != null ? instanceIdentifier : "") ;
+    }
+    
+    /**
+     * Set the identifier on the endpoint reference.
+     * @param endpointReference The endpoint reference.
+     * @param identifier The identifier.
+     */
+    public static void setEndpointInstanceIdentifier(final EndpointReferenceType endpointReference, final String identifier)
+    {
+        setEndpointInstanceIdentifier(endpointReference, new InstanceIdentifier(identifier)) ;
+    }
+    
+    /**
+     * Set the identifier on the endpoint reference.
+     * @param endpointReference The endpoint reference.
+     * @param instanceIdentifier The identifier.
+     */
+    public static void setEndpointInstanceIdentifier(final EndpointReferenceType endpointReference, final InstanceIdentifier instanceIdentifier)
+    {
+        endpointReference.addReferenceParameter(new NamedElement(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME, instanceIdentifier)) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsarj.handler;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+
+/**
+ * Header handler for parsing the Arjuna WS instance identifier header.
+ * @author kevin
+ */
+public class InstanceIdentifierHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param context The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext context)
+        throws XMLStreamException, SoapFault
+    {
+        final InstanceIdentifier action = new InstanceIdentifier(in) ;
+        ArjunaContext.getContext(context).setInstanceIdentifier(action) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        final ArjunaContext arjunaContext = ArjunaContext.getCurrentContext(context) ;
+        if (arjunaContext != null)
+        {
+            final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            if (instanceIdentifier != null)
+            {
+                StreamHelper.writeElement(out, headerElementName, instanceIdentifier) ;
+            }
+        }
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/policy/ArjunaPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/policy/ArjunaPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/policy/ArjunaPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,50 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsarj.ArjunaConstants;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandler;
+
+/**
+ * Policy responsible for binding in the Arjuna header handlers.
+ * @author kevin
+ */
+public class ArjunaPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerHeaderHandler(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME, new InstanceIdentifierHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.removeHeaderHandler(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsarj.processor;
+
+import com.arjuna.webservices.base.processors.BaseProcessor;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+
+/**
+ * Utility class handling common response functionality.
+ * @author kevin
+ */
+public abstract class BaseNotificationProcessor extends BaseProcessor
+{
+    /**
+     * Get the callback ids.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * @return The callback ids.
+     */
+    protected String[] getIDs(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        if (arjunaContext != null)
+        {
+            final InstanceIdentifier 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/AttributedUnsignedIntType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/AttributedUnsignedIntType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/AttributedUnsignedIntType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,142 @@
+/*
+ * 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;
+
+import java.text.MessageFormat;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyAttributeSupport;
+
+/*
+ * <xsd:complexType>
+ *   <xsd:simpleContent>
+ *     <xsd:extension base="xsd:unsignedInt">
+ *       <xsd:anyAttribute namespace="##other"/>
+ *     </xsd:extension>
+ *   </xsd:simpleContent>
+ * </xsd:complexType>
+ */
+/**
+ * Representation of an attributed unsigned int type.
+ * @author kevin
+ */
+public class AttributedUnsignedIntType extends AnyAttributeSupport
+{
+    /**
+     * The maximum value of an unsigned int.
+     */
+    private static final long MAX_UNSIGNED_INT = (1L<<32)-1 ;
+    
+    /**
+     * Default constructor.
+     */
+    public AttributedUnsignedIntType()
+    {
+    }
+    
+    /**
+     * Construct the attributed unsigned int type with the specific value.
+     * @param value The unsigned int value.
+     */
+    public AttributedUnsignedIntType(final long value)
+    {
+        setValue(value) ;
+    }
+    
+    /**
+     * Construct the attributed unsigned int type from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public AttributedUnsignedIntType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * The value of this element.
+     */
+    private long value ;
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value.
+     * @message com.arjuna.webservices.wscoor.AttributedUnsignedIntType_1 [com.arjuna.webservices.wscoor.AttributedUnsignedIntType_1] - non numerical value: {0}
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        try
+        {
+            setValue(Long.parseLong(value.trim())) ;
+        }
+        catch (final NumberFormatException nfe)
+        {
+            final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.AttributedUnsignedIntType_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new XMLStreamException(message) ;
+        }
+    }
+    
+    /**
+     * Set the unsigned int value of this element.
+     * @param value The unsigned int value of the element.
+     */
+    public void setValue(final long value)
+    {
+        this.value = value ;
+    }
+    
+    /**
+     * Get the unsigned int value of this element.
+     * @return The unsigned int value of the element.
+     */
+    public long getValue()
+    {
+        return value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(Long.toString(value)) ;
+    }
+    
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((value >= 0) && (value <= MAX_UNSIGNED_INT)) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,241 @@
+/*
+ * 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;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-Coordination constants.
+ */
+public interface CoordinationConstants
+{
+    /**
+     * The activation coordinator service name.
+     */
+    public String SERVICE_ACTIVATION_COORDINATOR = "ActivationCoordinator" ;
+    /**
+     * The activation requester service name.
+     */
+    public String SERVICE_ACTIVATION_REQUESTER = "ActivationRequester" ;
+    /**
+     * The registration coordinator service name.
+     */
+    public String SERVICE_REGISTRATION_COORDINATOR = "RegistrationCoordinator" ;
+    /**
+     * The registration requester service name.
+     */
+    public String SERVICE_REGISTRATION_REQUESTER = "RegistrationRequester" ;
+    
+    /**
+     * The Namespace.
+     */
+    public String WSCOOR_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/10/wscoor" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSCOOR_PREFIX = "wscoor" ;
+    
+    /**
+     * 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 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 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 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/CoordinationContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+/*
+ * 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;
+
+import com.arjuna.webservices.MessageContext;
+
+/**
+ * The coordination context.
+ * @author kevin
+ */
+public class CoordinationContext
+{
+    /**
+     * The key used for the coordination context within a message exchange.
+     */
+    private static final byte[] COORDINATION_CONTEXT_PROPERTY = new byte[0] ;
+    /**
+     * The coordination context associated with the thread.
+     */
+    private static final ThreadLocal THREAD_CONTEXT = new ThreadLocal() ;
+    
+    /**
+     * Get the coordination context from the message context if present.
+     * @param messageContext The message context.
+     * @return The coordination context or null if not present.
+     */
+    public static CoordinationContextType getContext(final MessageContext messageContext)
+    {
+        return (CoordinationContextType)messageContext.getProperty(COORDINATION_CONTEXT_PROPERTY) ;
+    }
+
+    /**
+     * Set the coordination context for the message context.
+     * @param messageContext The message context.
+     * @param coordinationContext The coordination context.
+     */
+    public static void setContext(final MessageContext messageContext, final CoordinationContextType coordinationContext)
+    {
+        messageContext.setProperty(COORDINATION_CONTEXT_PROPERTY, coordinationContext) ;
+    }
+    
+    /**
+     * Get the coordination context from the current thread if present.
+     * @return The coordination context or null if not present.
+     */
+    public static CoordinationContextType getThreadContext()
+    {
+        return (CoordinationContextType)THREAD_CONTEXT.get() ;
+    }
+
+    /**
+     * Set the coordination context for the current thread.
+     * @param coordinationContext The coordination context.
+     */
+    public static void setThreadContext(final CoordinationContextType coordinationContext)
+    {
+        THREAD_CONTEXT.set(coordinationContext) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContextType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContextType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationContextType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,251 @@
+/*
+ * 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;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/*
+ * <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>
+ * 
+ * Also added at the end of the sequence 
+ *   <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ */
+/**
+ * Representation of the Coordination Context type.
+ * @author kevin
+ */
+public class CoordinationContextType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The Identifier element.
+     */
+    private AttributedURIType identifier ;
+    /**
+     * The Expires element.
+     */
+    private AttributedUnsignedIntType expires ;
+    /**
+     * The Coordination Type uri.
+     */
+    private URI coordinationType ;
+    /**
+     * The registration service.
+     */
+    private EndpointReferenceType registrationService ;
+    
+    /**
+     * Default constructor.
+     */
+    public CoordinationContextType()
+    {
+    }
+    
+    /**
+     * Construct a coordination context from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public CoordinationContextType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the identifier URI.
+     * @return The identifier URI.
+     */
+    public AttributedURIType getIdentifier()
+    {
+        return identifier ;
+    }
+    
+    /**
+     * Set the identifier URI.
+     * @param identifier The to URI.
+     */
+    public void setIdentifier(final AttributedURIType identifier)
+    {
+        this.identifier = identifier ;
+    }
+    
+    /**
+     * Get the expires data.
+     * @return The expires information or null if not present.
+     */
+    public AttributedUnsignedIntType getExpires()
+    {
+        return expires ;
+    }
+    
+    /**
+     * Set the expires data.
+     * @param expires The expires data.
+     */
+    public void setExpires(final AttributedUnsignedIntType expires)
+    {
+        this.expires = expires ;
+    }
+    
+    /**
+     * Get the coordination type.
+     * @return The coordination type.
+     */
+    public URI getCoordinationType()
+    {
+        return coordinationType ;
+    }
+    
+    /**
+     * Set the coordination type.
+     * @param coordinationType The coordination type.
+     */
+    public void setCoordinationType(final URI coordinationType)
+    {
+        this.coordinationType = coordinationType ;
+    }
+    
+    /**
+     * Get the registration service endpoint reference.
+     * @return The registration service endpoint reference.
+     */
+    public EndpointReferenceType getRegistrationService()
+    {
+        return registrationService ;
+    }
+    
+    /**
+     * Set the registration service endpoint reference.
+     * @param registrationService The registration service endpoint reference.
+     */
+    public void setRegistrationService(final EndpointReferenceType registrationService)
+    {
+        this.registrationService = registrationService ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wscoor.CoordinationContextType_1 [com.arjuna.webservices.wscoor.CoordinationContextType_1] - Coordination Context is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.CoordinationContextType_1")) ;
+       }
+       
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_IDENTIFIER_QNAME, identifier) ;
+       if (expires != null)
+       {
+           StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_EXPIRES_QNAME, expires) ;
+       }
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_TYPE_QNAME, coordinationType) ;
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_REGISTRATION_SERVICE_QNAME, registrationService) ;
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wscoor.CoordinationContextType_2 [com.arjuna.webservices.wscoor.CoordinationContextType_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        final String namespace = elementName.getNamespaceURI() ;
+        if (CoordinationConstants.WSCOOR_NAMESPACE.equals(namespace))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (CoordinationConstants.WSCOOR_ELEMENT_IDENTIFIER.equals(localPart))
+            {
+                setIdentifier(new AttributedURIType(in)) ;
+            }
+            else if (CoordinationConstants.WSCOOR_ELEMENT_EXPIRES.equals(localPart))
+            {
+                setExpires(new AttributedUnsignedIntType(in)) ;
+            }
+            else if (CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_TYPE.equals(localPart))
+            {
+                setCoordinationType(new URI(in)) ;
+            }
+            else if (CoordinationConstants.WSCOOR_ELEMENT_REGISTRATION_SERVICE.equals(localPart))
+            {
+                setRegistrationService(new EndpointReferenceType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.CoordinationContextType_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((identifier != null) && identifier.isValid()) &&
+            ((expires == null) || expires.isValid()) &&
+            ((coordinationType != null) && coordinationType.isValid()) &&
+            ((registrationService != null) && registrationService.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextResponseType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,147 @@
+/*
+ * 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;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Create Coordination Context Reponse type.
+ * @author kevin
+ */
+public class CreateCoordinationContextResponseType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The CoordinationContext element.
+     */
+    private CoordinationContextType coordinationContext ;
+    
+    /**
+     * Default constructor.
+     */
+    public CreateCoordinationContextResponseType()
+    {
+    }
+    
+    /**
+     * Construct a create coordination context response from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public CreateCoordinationContextResponseType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the coordination context.
+     * @return The coordination context.
+     */
+    public CoordinationContextType getCoordinationContext()
+    {
+        return coordinationContext ;
+    }
+    
+    /**
+     * Set the coordination context.
+     * @param coordinationContext The coordination context.
+     */
+    public void setCoordinationContext(final CoordinationContextType coordinationContext)
+    {
+        this.coordinationContext = coordinationContext ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType_1 [com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType_1] - Create Coordination Context Response is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType_1")) ;
+       }
+       
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT_QNAME, coordinationContext) ;
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType_2 [com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (CoordinationConstants.WSCOOR_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT.equals(localPart))
+            {
+                setCoordinationContext(new CoordinationContextType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((coordinationContext != null) && coordinationContext.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CreateCoordinationContextType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,222 @@
+/*
+ * 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;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Create Coordination Context type.
+ * @author kevin
+ */
+public class CreateCoordinationContextType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The Expires element.
+     */
+    private AttributedUnsignedIntType expires ;
+    /**
+     * The CurrentContext element.
+     */
+    private CoordinationContextType currentContext ;
+    /**
+     * The Coordination Type uri.
+     */
+    private URI coordinationType ;
+    
+    /**
+     * Default constructor.
+     */
+    public CreateCoordinationContextType()
+    {
+    }
+    
+    /**
+     * Construct a create coordination context from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public CreateCoordinationContextType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the expires data.
+     * @return The expires information or null if not present.
+     */
+    public AttributedUnsignedIntType getExpires()
+    {
+        return expires ;
+    }
+    
+    /**
+     * Set the expires data.
+     * @param expires The expires data.
+     */
+    public void setExpires(final AttributedUnsignedIntType expires)
+    {
+        this.expires = expires ;
+    }
+    
+    /**
+     * Get the current context.
+     * @return The current context or null if not present.
+     */
+    public CoordinationContextType getCurrentContext()
+    {
+        return currentContext ;
+    }
+    
+    /**
+     * Set the current context.
+     * @param currentContext The current context.
+     */
+    public void setCurrentContext(final CoordinationContextType currentContext)
+    {
+        this.currentContext = currentContext ;
+    }
+    
+    /**
+     * Get the coordination type.
+     * @return The coordination type.
+     */
+    public URI getCoordinationType()
+    {
+        return coordinationType ;
+    }
+    
+    /**
+     * Set the coordination type.
+     * @param coordinationType The coordination type.
+     */
+    public void setCoordinationType(final URI coordinationType)
+    {
+        this.coordinationType = coordinationType ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wscoor.CreateCoordinationContextType_1 [com.arjuna.webservices.wscoor.CreateCoordinationContextType_1] - Create Coordination Context is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.CreateCoordinationContextType_1")) ;
+       }
+       
+       if (expires != null)
+       {
+           StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_EXPIRES_QNAME, expires) ;
+       }
+       if (currentContext != null)
+       {
+           StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_CURRENT_CONTEXT_QNAME, currentContext) ;
+       }
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_TYPE_QNAME, coordinationType) ;
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wscoor.CreateCoordinationContextType_2 [com.arjuna.webservices.wscoor.CreateCoordinationContextType_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (CoordinationConstants.WSCOOR_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (CoordinationConstants.WSCOOR_ELEMENT_EXPIRES.equals(localPart))
+            {
+                setExpires(new AttributedUnsignedIntType(in)) ;
+            }
+            else if (CoordinationConstants.WSCOOR_ELEMENT_CURRENT_CONTEXT.equals(localPart))
+            {
+                setCurrentContext(new CoordinationContextType(in)) ;
+            }
+            else if (CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_TYPE.equals(localPart))
+            {
+                setCoordinationType(new URI(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.CreateCoordinationContextType_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((expires == null) || expires.isValid()) &&
+            ((currentContext == null) || currentContext.isValid()) &&
+            ((coordinationType != null) && coordinationType.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterResponseType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+/*
+ * 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;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Register Response type.
+ * @author kevin
+ */
+public class RegisterResponseType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The coordinator protocol service.
+     */
+    private EndpointReferenceType coordinatorProtocolService ;
+    
+    /**
+     * Default constructor.
+     */
+    public RegisterResponseType()
+    {
+    }
+    
+    /**
+     * Construct a register response from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public RegisterResponseType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the coordinator protocol service endpoint reference.
+     * @return The coordinator protocol service endpoint reference.
+     */
+    public EndpointReferenceType getCoordinatorProtocolService()
+    {
+        return coordinatorProtocolService ;
+    }
+    
+    /**
+     * Set the coordinator protocol service endpoint reference.
+     * @param coordinatorProtocolService The coordinator protocol service endpoint reference.
+     */
+    public void setCoordinatorProtocolService(final EndpointReferenceType coordinatorProtocolService)
+    {
+        this.coordinatorProtocolService = coordinatorProtocolService ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wscoor.RegisterResponseType_1 [com.arjuna.webservices.wscoor.RegisterResponseType_1] - Register is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.RegisterResponseType_1")) ;
+       }
+       
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_COORDINATOR_PROTOCOL_SERVICE_QNAME, coordinatorProtocolService) ;
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wscoor.RegisterResponseType_2 [com.arjuna.webservices.wscoor.RegisterResponseType_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (CoordinationConstants.WSCOOR_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (CoordinationConstants.WSCOOR_ELEMENT_COORDINATOR_PROTOCOL_SERVICE.equals(localPart))
+            {
+                setCoordinatorProtocolService(new EndpointReferenceType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.RegisterResponseType_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((coordinatorProtocolService != null) && coordinatorProtocolService.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/RegisterType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,178 @@
+/*
+ * 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;
+
+import java.text.MessageFormat;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Register type.
+ * @author kevin
+ */
+public class RegisterType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The ProtocolIdentifier element.
+     */
+    private URI protocolIdentifier ;
+    /**
+     * The participant protocol service.
+     */
+    private EndpointReferenceType participantProtocolService ;
+    
+    /**
+     * Default constructor.
+     */
+    public RegisterType()
+    {
+    }
+    
+    /**
+     * Construct a register from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public RegisterType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Get the procotol identifier URI.
+     * @return The proocol identifier URI.
+     */
+    public URI getProtocolIdentifier()
+    {
+        return protocolIdentifier ;
+    }
+    
+    /**
+     * Set the protocol identifier URI.
+     * @param protocolIdentifier The to URI.
+     */
+    public void setProtocolIdentifier(final URI protocolIdentifier)
+    {
+        this.protocolIdentifier = protocolIdentifier ;
+    }
+    
+    /**
+     * Get the participant protocol service endpoint reference.
+     * @return The participant protocol service endpoint reference.
+     */
+    public EndpointReferenceType getParticipantProtocolService()
+    {
+        return participantProtocolService ;
+    }
+    
+    /**
+     * Set the participant protocol service endpoint reference.
+     * @param participantProtocolService The participant protocol service endpoint reference.
+     */
+    public void setParticipantProtocolService(final EndpointReferenceType participantProtocolService)
+    {
+        this.participantProtocolService = participantProtocolService ;
+    }
+    
+    /**
+     * Write the content of the context to the stream.
+     * @param out The current output stream.
+     * @message com.arjuna.webservices.wscoor.RegisterType_1 [com.arjuna.webservices.wscoor.RegisterType_1] - Register is not valid
+     */
+    public void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+       if (!isValid())
+       {
+           throw new XMLStreamException(WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.RegisterType_1")) ;
+       }
+       
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_PROTOCOL_IDENTIFIER_QNAME, protocolIdentifier) ;
+       StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_PARTICIPANT_PROTOCOL_SERVICE_QNAME, participantProtocolService) ;
+       
+       super.writeChildContent(out) ;
+    }
+
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wscoor.RegisterType_2 [com.arjuna.webservices.wscoor.RegisterType_2] - Unexpected element name: {0}
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (CoordinationConstants.WSCOOR_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (CoordinationConstants.WSCOOR_ELEMENT_PROTOCOL_IDENTIFIER.equals(localPart))
+            {
+                setProtocolIdentifier(new URI(in)) ;
+            }
+            else if (CoordinationConstants.WSCOOR_ELEMENT_PARTICIPANT_PROTOCOL_SERVICE.equals(localPart))
+            {
+                setParticipantProtocolService(new EndpointReferenceType(in)) ;
+            }
+            else
+            {
+                final String pattern = WSCLogger.log_mesg.getString("com.arjuna.webservices.wscoor.RegisterType_2") ;
+                final String message = MessageFormat.format(pattern, new Object[] {elementName}) ;
+                throw new XMLStreamException(message) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((protocolIdentifier != null) && protocolIdentifier.isValid()) &&
+            ((participantProtocolService != null) && participantProtocolService.isValid()) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wscoor.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+
+/**
+ * The Client side of the Activation Coordinator.
+ * @author kevin
+ */
+public class ActivationCoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final ActivationCoordinatorClient CLIENT = new ActivationCoordinatorClient() ;
+    
+    /**
+     * The create coordination context action.
+     */
+    private final AttributedURIType createCoordinationContextAction =
+        new AttributedURIType(CoordinationConstants.WSCOOR_ACTION_CREATE_COORDINATION_CONTEXT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The activation requester URI for replies.
+     */
+    private final EndpointReferenceType activationRequester ;
+    
+    /**
+     * Construct the activation coordinator client.
+     */
+    private ActivationCoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String activationRequesterURI = SoapRegistry.getRegistry().getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_REQUESTER) ;
+        activationRequester = new EndpointReferenceType(new AttributedURIType(activationRequesterURI)) ;
+    }
+    
+    /**
+     * Send a create coordination request.
+     * @param addressingContext 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 void sendCreateCoordination(final AddressingContext addressingContext, final String coordinationType,
+        final AttributedUnsignedIntType expires, final CoordinationContextType currentContext)
+        throws SoapFault, IOException
+    {
+        final CreateCoordinationContextType request = new CreateCoordinationContextType() ;
+        request.setCoordinationType(new URI(coordinationType)) ;
+        request.setCurrentContext(currentContext) ;
+        request.setExpires(expires) ;
+        
+        sendOneWay(request, addressingContext, soapService, activationRequester, activationRequester,
+            CoordinationConstants.WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_QNAME,
+            createCoordinationContextAction) ;
+    }
+    
+    /**
+     * Get the Activation Coordinator client singleton.
+     * @return The Activation Coordinator client singleton.
+     */
+    public static ActivationCoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationRequesterClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationRequesterClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationRequesterClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,126 @@
+/*
+ * 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.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+
+/**
+ * The Client side of the Activation Requester.
+ * @author kevin
+ */
+public class ActivationRequesterClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final ActivationRequesterClient CLIENT = new ActivationRequesterClient() ;
+    
+    /**
+     * The create coordination context response action.
+     */
+    private final AttributedURIType createCoordinationContextResponseAction =
+        new AttributedURIType(CoordinationConstants.WSCOOR_ACTION_CREATE_COORDINATION_CONTEXT_RESPONSE) ;
+    /**
+     * The fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(CoordinationConstants.WSCOOR_ACTION_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The activation coordinator URI for replies.
+     */
+    private final EndpointReferenceType activationCoordinator ;
+    
+    /**
+     * Construct the activition requester client.
+     */
+    private ActivationRequesterClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String activationCoordinatorURI = SoapRegistry.getRegistry().getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+        activationCoordinator = new EndpointReferenceType(new AttributedURIType(activationCoordinatorURI)) ;
+    }
+
+    /**
+     * Send a create coordination response.
+     * @param addressingContext The addressing context initialised with to, message ID and relates to.
+     * @param coordinationContext The coordination context.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCreateCoordinationResponse(final AddressingContext addressingContext, final CoordinationContextType coordinationContext)
+        throws SoapFault, IOException
+    {
+        final CreateCoordinationContextResponseType response = new CreateCoordinationContextResponseType() ;
+        response.setCoordinationContext(coordinationContext) ;
+        
+        sendOneWay(response, addressingContext, soapService, activationCoordinator, null,
+            CoordinationConstants.WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE_QNAME,
+            createCoordinationContextResponseAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault)
+        throws SoapFault, IOException
+    {
+        sendSoapFault(soapFault, addressingContext, soapService, activationCoordinator, faultAction) ;
+    }
+
+    /**
+     * Get the Activation Requester client singleton.
+     * @return The Activation Requester client singleton.
+     */
+    public static ActivationRequesterClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationCoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationCoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationCoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,110 @@
+/*
+ * 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.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.RegisterType;
+
+/**
+ * The Client side of the Registration Coordinator.
+ * @author kevin
+ */
+public class RegistrationCoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final RegistrationCoordinatorClient CLIENT = new RegistrationCoordinatorClient() ;
+    
+    /**
+     * The register action.
+     */
+    private final AttributedURIType registerAction =
+        new AttributedURIType(CoordinationConstants.WSCOOR_ACTION_REGISTER) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The registartion requester URI for replies.
+     */
+    private final EndpointReferenceType registrationRequester ;
+    
+    /**
+     * Construct the registration coordinator client.
+     */
+    private RegistrationCoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String registrationRequesterURI = SoapRegistry.getRegistry().getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER) ;
+        registrationRequester = new EndpointReferenceType(new AttributedURIType(registrationRequesterURI)) ;
+    }
+    
+    /**
+     * Send a register request.
+     * @param addressingContext addressing context initialised with to, message ID and endpoint context.
+     * @param protocolIdentifier The protocol identifier.
+     * @param participantProtocolService The participant protocol service endpoint reference.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendRegister(final AddressingContext addressingContext, final String protocolIdentifier,
+        final EndpointReferenceType participantProtocolService)
+        throws SoapFault, IOException
+    {
+        final RegisterType request = new RegisterType() ;
+        request.setProtocolIdentifier(new URI(protocolIdentifier)) ;
+        request.setParticipantProtocolService(participantProtocolService) ;
+        
+        sendOneWay(request, addressingContext, soapService, registrationRequester, registrationRequester,
+            CoordinationConstants.WSCOOR_ELEMENT_REGISTER_QNAME, registerAction) ;
+    }
+    
+    /**
+     * Get the Registration Coordinator client singleton.
+     * @return The Registration Coordinator client singleton.
+     */
+    public static RegistrationCoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationRequesterClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationRequesterClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/RegistrationRequesterClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,124 @@
+/*
+ * 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.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+
+/**
+ * The Client side of the Registration Requester.
+ * @author kevin
+ */
+public class RegistrationRequesterClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final RegistrationRequesterClient CLIENT = new RegistrationRequesterClient() ;
+    
+    /**
+     * The register response action.
+     */
+    private final AttributedURIType registerResponseAction =
+        new AttributedURIType(CoordinationConstants.WSCOOR_ACTION_REGISTER_RESPONSE) ;
+    /**
+     * The fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(CoordinationConstants.WSCOOR_ACTION_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The registration coordinator URI for replies.
+     */
+    private final EndpointReferenceType registrationCoordinator ;
+    
+    /**
+     * Construct the activition requester client.
+     */
+    private RegistrationRequesterClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String registrationCoordinatorURI = SoapRegistry.getRegistry().getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+    }
+
+    /**
+     * Send a create coordination response.
+     * @param addressingContext The addressing context initialised with to, message ID and relates to.
+     * @param coordinationProtocolService The coordination protocol service endpoint reference.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendRegisterResponse(final AddressingContext addressingContext, final EndpointReferenceType coordinationProtocolService)
+        throws SoapFault, IOException
+    {
+        final RegisterResponseType response = new RegisterResponseType() ;
+        response.setCoordinatorProtocolService(coordinationProtocolService) ;
+        
+        sendOneWay(response, addressingContext, soapService, registrationCoordinator, null,
+            CoordinationConstants.WSCOOR_ELEMENT_REGISTER_RESPONSE_QNAME, registerResponseAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault)
+        throws SoapFault, IOException
+    {
+        sendSoapFault(soapFault, addressingContext, soapService, registrationCoordinator, faultAction) ;
+    }
+    
+    /**
+     * Get the Activation Requester client singleton.
+     * @return The Activation Requester client singleton.
+     */
+    public static RegistrationRequesterClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/ActivationRequesterSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/ActivationRequesterSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/ActivationRequesterSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,66 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterProcessor;
+
+/**
+ * The activation requester fault handler.
+ * @author kevin
+ */
+public class ActivationRequesterSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The r message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ActivationRequesterProcessor.getRequester().handleSoapFault(soapFault, addressingContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CoordinationContextHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CoordinationContextHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CoordinationContextHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,94 @@
+/*
+ * 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.handlers;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.HeaderHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContext;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+/**
+ * Header handler for parsing the Coordination Context header.
+ * @author kevin
+ */
+public class CoordinationContextHandler implements HeaderHandler
+{
+    /**
+     * Handle the header element.
+     * @param in The current streamreader.
+     * @param messageContext The current message context.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     */
+    public void invoke(final XMLStreamReader in, final MessageContext messageContext)
+        throws XMLStreamException, SoapFault
+    {
+        final CoordinationContextType coordinationContext = new CoordinationContextType(in) ;
+        CoordinationContext.setContext(messageContext, coordinationContext) ;
+    }
+    
+    /**
+     * Write the header element in a response.
+     * @param out The output stream.
+     * @param headerElementName The name of the header element.
+     * @param context The current message context.
+     * @param soapDetails The SOAP details.
+     * @throws XMLStreamException 
+     */
+    public void writeContent(final XMLStreamWriter out, final QName headerElementName,
+        final MessageContext context, final SoapDetails soapDetails)
+        throws XMLStreamException
+    {
+        final CoordinationContextType coordinationContext = CoordinationContext.getThreadContext() ;
+        if (coordinationContext != null)
+        {
+            coordinationContext.putAttribute(soapDetails.getMustUnderstandQName(), soapDetails.getMustUnderstandValue()) ;
+            StreamHelper.writeElement(out, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT_QNAME, coordinationContext) ;
+        }
+    }
+    
+    /**
+     * Validate headers after processing.
+     * @param context The current message context.
+     * @throws SoapFault for validation errors.
+     */
+    public void headerValidate(final MessageContext context)
+        throws SoapFault
+    {
+    }
+    
+    /**
+     * Notification of a subsequent header processing fault.
+     * @param context The current message context.
+     */
+    public void headerFaultNotification(final MessageContext context)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wscoor.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+
+/**
+ * The create coordination handler.
+ * @author kevin
+ */
+public class CreateCoordinationContextHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final CreateCoordinationContextType createCoordinationContext = new CreateCoordinationContextType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ActivationCoordinatorProcessor.getCoordinator().createCoordinationContext(createCoordinationContext, addressingContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextResponseHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextResponseHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/CreateCoordinationContextResponseHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wscoor.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterProcessor;
+
+/**
+ * The create coordination response handler.
+ * @author kevin
+ */
+public class CreateCoordinationContextResponseHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final CreateCoordinationContextResponseType createCoordinationContextResponse = new CreateCoordinationContextResponseType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ActivationRequesterProcessor.getRequester().handleCreateCoordinationContextResponse(createCoordinationContextResponse, addressingContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wscoor.RegisterType;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+
+/**
+ * The register handler.
+ * @author kevin
+ */
+public class RegisterHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final RegisterType register = new RegisterType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                RegistrationCoordinatorProcessor.getCoordinator().register(register, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterResponseHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterResponseHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegisterResponseHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wscoor.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterProcessor;
+
+/**
+ * The register response handler.
+ * @author kevin
+ */
+public class RegisterResponseHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final RegisterResponseType registerResponse = new RegisterResponseType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                RegistrationRequesterProcessor.getRequester().handleRegisterResponse(registerResponse, addressingContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegistrationRequesterSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegistrationRequesterSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/handlers/RegistrationRequesterSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,66 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterProcessor;
+
+/**
+ * The registration requester fault handler.
+ * @author kevin
+ */
+public class RegistrationRequesterSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                RegistrationRequesterProcessor.getRequester().handleSoapFault(soapFault, addressingContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationCoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationCoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationCoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.base.handlers.LoggingFaultHandler;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.handlers.CreateCoordinationContextHandler;
+
+/**
+ * Policy responsible for binding in the WS-Coordination server handlers.
+ * @author kevin
+ */
+public class ActivationCoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_QNAME, new CreateCoordinationContextHandler()) ;
+        registry.registerFaultHandler(new LoggingFaultHandler(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR)) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationRequesterPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationRequesterPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/ActivationRequesterPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.handlers.ActivationRequesterSoapFaultHandler;
+import com.arjuna.webservices.wscoor.handlers.CreateCoordinationContextResponseHandler;
+
+/**
+ * Policy responsible for binding in the WS-Coordination client handlers.
+ * @author kevin
+ */
+public class ActivationRequesterPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE_QNAME, new CreateCoordinationContextResponseHandler()) ;
+        registry.registerFaultHandler(new ActivationRequesterSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/CoordinationContextPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/CoordinationContextPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/CoordinationContextPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,50 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.handlers.CoordinationContextHandler;
+
+/**
+ * Policy responsible for binding the WS-Coordination header handlers for a service.
+ * @author kevin
+ */
+public class CoordinationContextPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerHeaderHandler(CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT_QNAME, new CoordinationContextHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.removeHeaderHandler(CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationCoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationCoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationCoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.base.handlers.LoggingFaultHandler;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.handlers.RegisterHandler;
+
+/**
+ * Policy responsible for binding in the WS-Coordination server handlers.
+ * @author kevin
+ */
+public class RegistrationCoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_REGISTER_QNAME, new RegisterHandler()) ;
+        registry.registerFaultHandler(new LoggingFaultHandler(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR)) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_REGISTER_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationRequesterPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationRequesterPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/policy/RegistrationRequesterPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.handlers.RegisterResponseHandler;
+import com.arjuna.webservices.wscoor.handlers.RegistrationRequesterSoapFaultHandler;
+
+/**
+ * Policy responsible for binding in the WS-Coordination client handlers.
+ * @author kevin
+ */
+public class RegistrationRequesterPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_REGISTER_RESPONSE_QNAME, new RegisterResponseHandler()) ;
+        registry.registerFaultHandler(new RegistrationRequesterSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(CoordinationConstants.WSCOOR_ELEMENT_REGISTER_RESPONSE_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+
+/**
+ * The Activation Coordinator processor.
+ * @author kevin
+ */
+public abstract class ActivationCoordinatorProcessor
+{
+    /**
+     * The coordinator.
+     */
+    private static ActivationCoordinatorProcessor COORDINATOR  ;
+    
+    /**
+     * Get the coordinator.
+     * @return The coordinator.
+     */
+    public static ActivationCoordinatorProcessor getCoordinator()
+    {
+        return COORDINATOR ;
+    }
+    
+    /**
+     * Set the coordinator.
+     * @param coordinator The coordinator.
+     * @return The previous coordinator.
+     */
+    public static ActivationCoordinatorProcessor setCoordinator(final ActivationCoordinatorProcessor coordinator)
+    {
+        final ActivationCoordinatorProcessor origCoordinator = COORDINATOR ;
+        COORDINATOR = coordinator ;
+        return origCoordinator ;
+    }
+    
+    /**
+     * Create the coordination context.
+     * @param createCoordinationContext The create coordination context request.
+     * @param addressingContext The addressing context.
+     */
+    public abstract void createCoordinationContext(final CreateCoordinationContextType createCoordinationContext,
+        final AddressingContext addressingContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wscoor.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+
+/**
+ * The callback for the Activation Requester client.
+ * @author kevin
+ */
+public abstract class ActivationRequesterCallback extends Callback
+{
+    /**
+     * A create coordination context response.
+     * @param createCoordinationContextResponse The response.
+     * @param addressingContext The current addressing context.
+     */
+    public abstract void createCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse,
+        final AddressingContext addressingContext) ;
+
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault response.
+     * @param addressingContext The current addressing context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingContext addressingContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationRequesterProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,87 @@
+/*
+ * 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.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.processor.BaseWSAddrResponseProcessor;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+
+/**
+ * The Activation Requester processor.
+ * @author kevin
+ */
+public class ActivationRequesterProcessor extends BaseWSAddrResponseProcessor
+{
+    /**
+     * The requester singleton.
+     */
+    private static final ActivationRequesterProcessor REQUESTER = new ActivationRequesterProcessor() ;
+    
+    /**
+     * Get the requester singleton.
+     * @return The singleton.
+     */
+    public static ActivationRequesterProcessor getRequester()
+    {
+        return REQUESTER ;
+    }
+
+    /**
+     * Handle a create coordination context response.
+     * @param createCoordinationContextResponse The response.
+     * @param addressingContext The current addressing context.
+     */
+    public void handleCreateCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse,
+        final AddressingContext addressingContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((ActivationRequesterCallback)callback).createCoordinationContextResponse(createCoordinationContextResponse, addressingContext) ;
+            }
+        }, getIDs(addressingContext)) ;
+    }
+
+    /**
+     * Register a SOAP fault response.
+     * @param soapFault The SOAP fault response.
+     * @param addressingContext The current addressing context.
+     */
+    public void handleSoapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((ActivationRequesterCallback)callback).soapFault(soapFault, addressingContext) ;
+            }
+        }, getIDs(addressingContext)) ;
+    }
+
+    /**
+     * Register a callback for the specific message id.
+     * @param messageID The message ID.
+     * @param callback The callback for the response.
+     */
+    public void registerCallback(final String messageID, final ActivationRequesterCallback callback)
+    {
+        register(messageID, callback) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wscoor.RegisterType;
+
+
+/**
+ * The Registration Coordinator processor.
+ * @author kevin
+ */
+public abstract class RegistrationCoordinatorProcessor
+{
+    /**
+     * The coordinator.
+     */
+    private static RegistrationCoordinatorProcessor COORDINATOR ;
+    
+    /**
+     * Get the coordinator.
+     * @return The coordinator.
+     */
+    public static RegistrationCoordinatorProcessor getCoordinator()
+    {
+        return COORDINATOR ;
+    }
+    
+    /**
+     * Set the coordinator.
+     * @param coordinator The coordinator.
+     * @return The orig coordinator.
+     */
+    public static RegistrationCoordinatorProcessor setCoordinator(final RegistrationCoordinatorProcessor coordinator)
+    {
+        final RegistrationCoordinatorProcessor 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 void register(final RegisterType register, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wscoor.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+
+/**
+ * The callback for the Registration Requester client.
+ * @author kevin
+ */
+public abstract class RegistrationRequesterCallback extends Callback
+{
+    /**
+     * A register response.
+     * @param registerResponse The response.
+     * @param addressingContext The current addressing context.
+     */
+    public abstract void registerResponse(final RegisterResponseType registerResponse,
+        final AddressingContext addressingContext) ;
+
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault response.
+     * @param addressingContext The current addressing context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingContext addressingContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationRequesterProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,87 @@
+/*
+ * 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.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.processor.BaseWSAddrResponseProcessor;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+
+/**
+ * The Registration Requester processor.
+ * @author kevin
+ */
+public class RegistrationRequesterProcessor extends BaseWSAddrResponseProcessor
+{
+    /**
+     * The requester singleton.
+     */
+    private static final RegistrationRequesterProcessor REQUESTER = new RegistrationRequesterProcessor() ;
+    
+    /**
+     * Get the requester singleton.
+     * @return The singleton.
+     */
+    public static RegistrationRequesterProcessor getRequester()
+    {
+        return REQUESTER ;
+    }
+
+    /**
+     * Handle a register response.
+     * @param registerResponse The response.
+     * @param addressingContext The current addressing context.
+     */
+    public void handleRegisterResponse(final RegisterResponseType registerResponse,
+        final AddressingContext addressingContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((RegistrationRequesterCallback)callback).registerResponse(registerResponse, addressingContext) ;
+            }
+        }, getIDs(addressingContext)) ;
+    }
+
+    /**
+     * Register a SOAP fault response.
+     * @param soapFault The SOAP fault response.
+     * @param addressingContext The current addressing context.
+     */
+    public void handleSoapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((RegistrationRequesterCallback)callback).soapFault(soapFault, addressingContext) ;
+            }
+        }, getIDs(addressingContext)) ;
+    }
+
+    /**
+     * Register a callback for the specific message id.
+     * @param messageID The message ID.
+     * @param callback The callback for the response.
+     */
+    public void registerCallback(final String messageID, final RegistrationRequesterCallback callback)
+    {
+        register(messageID, callback) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.server;
+
+import com.arjuna.services.framework.startup.Sequencer;
+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.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.policy.ActivationCoordinatorPolicy;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Activate the Activation Coordinator service
+ * @author kevin
+ */
+public class ActivationCoordinatorInitialisation 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() {
+               final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+               // Add WS-Addressing
+               AddressingPolicy.register(handlerRegistry) ;
+               // Add Activation coordinator.
+               ActivationCoordinatorPolicy.register(handlerRegistry) ;
+
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR,
+                   new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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/ActivationRequesterInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationRequesterInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationRequesterInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.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.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.policy.ActivationRequesterPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Activation Requester service
+ * @author kevin
+ */
+public class ActivationRequesterInitialisation 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() {
+               final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+               // Add WS-Addressing
+               AddressingPolicy.register(handlerRegistry) ;
+               // Add Activation coordinator.
+               ActivationRequesterPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(CoordinationConstants.SERVICE_ACTIVATION_REQUESTER,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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/RegistrationCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wscoor.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.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.policy.RegistrationCoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Registration Coordinator service
+ * @author kevin
+ */
+public class RegistrationCoordinatorInitialisation 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() {
+               final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+               // Add WS-Addressing
+               AddressingPolicy.register(handlerRegistry) ;
+               // Add Arjuna handlers
+               ArjunaPolicy.register(handlerRegistry) ;
+               // Add Registration coordinator.
+               RegistrationCoordinatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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/RegistrationRequesterInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationRequesterInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationRequesterInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.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.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.policy.RegistrationRequesterPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Registration Requester service
+ * @author kevin
+ */
+public class RegistrationRequesterInitialisation 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() {
+               final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+               // Add WS-Addressing
+               AddressingPolicy.register(handlerRegistry) ;
+               // Add Registration coordinator.
+               RegistrationRequesterPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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/ActivationCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,159 @@
+/*
+ * 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.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+import com.arjuna.webservices.wscoor.client.ActivationCoordinatorClient;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterCallback;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterProcessor;
+
+/**
+ * Wrapper around low level Activation Coordinator messaging.
+ * @author kevin
+ */
+public class ActivationCoordinator
+{
+    /**
+     * 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.
+     * 
+     * @message com.arjuna.wsc.ActivationCoordinator_1 [com.arjuna.wsc.ActivationCoordinator_1] - Callback execution failed
+     * @message com.arjuna.wsc.ActivationCoordinator_2 [com.arjuna.wsc.ActivationCoordinator_2] - Callback wasn't triggered
+     */
+    public static CoordinationContextType createCoordinationContext(final String activationCoordinatorURI,
+        final String messageID, final String coordinationTypeURI, final Long expires,
+        final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException, SoapFault
+    {
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationCoordinatorURI, messageID) ;
+        
+        final AttributedUnsignedIntType expiresValue = (expires == null ? null : new AttributedUnsignedIntType(expires.longValue())) ;
+        final RequestCallback callback = new RequestCallback() ;
+        final ActivationRequesterProcessor activationRequester = ActivationRequesterProcessor.getRequester() ;
+        activationRequester.registerCallback(messageID, callback) ;
+        try
+        {
+            ActivationCoordinatorClient.getClient().sendCreateCoordination(addressingContext,
+                    coordinationTypeURI, expiresValue, null) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final IOException ioe)
+        {
+            throw new SoapFault(ioe) ;
+        }
+        finally
+        {
+            activationRequester.removeCallback(messageID) ;
+        }
+        
+        if (callback.hasFailed())
+        {
+            throw new SoapFault(SoapFaultType.FAULT_RECEIVER, null, WSCLogger.log_mesg.getString("com.arjuna.wsc.ActivationCoordinator_1")) ;
+        }
+        else if (!callback.hasTriggered())
+        {
+            throw new SoapFault(SoapFaultType.FAULT_RECEIVER, null, WSCLogger.log_mesg.getString("com.arjuna.wsc.ActivationCoordinator_2")) ;
+        }
+        
+        final CreateCoordinationContextResponseType response = callback.getCreateCoordinationContextResponse() ;
+        if (response != null)
+        {
+            return response.getCoordinationContext() ;
+        }
+        final SoapFault soapFault = callback.getSoapFault() ;
+        if (CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME.equals(soapFault.getSubcode()))
+        {
+            throw new InvalidCreateParametersException(soapFault.getReason()) ;
+        }
+        throw soapFault ;
+    }
+    
+    /**
+     * The request callback.
+     * @author kevin
+     */
+    private static final class RequestCallback extends ActivationRequesterCallback
+    {
+        /**
+         * The response.
+         */
+        private CreateCoordinationContextResponseType createCoordinationContextResponse ;
+        /**
+         * The SOAP fault.
+         */
+        private SoapFault soapFault ;
+        
+        /**
+         * A create coordination context response.
+         * @param createCoordinationContextResponse The response.
+         * @param addressingContext The current addressing context.
+         */
+        public void createCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse,
+            final AddressingContext addressingContext)
+        {
+            this.createCoordinationContextResponse = createCoordinationContextResponse ;
+        }
+
+        /**
+         * A SOAP fault response.
+         * @param soapFault The SOAP fault response.
+         * @param addressingContext The current addressing context.
+         */
+        public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+        {
+            this.soapFault = soapFault ;
+        }
+        
+        /**
+         * Get the create coordination context response.
+         * @return The create coordination context response.
+         */
+        CreateCoordinationContextResponseType getCreateCoordinationContextResponse()
+        {
+            return createCoordinationContextResponse ;
+        }
+        
+        /**
+         * Get the SOAP fault.
+         * @return The SOAP fault or null.
+         */
+        SoapFault getSoapFault()
+        {
+            return soapFault ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/AlreadyRegisteredException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/AlreadyRegisteredException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/AlreadyRegisteredException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ *
+ * InvalidCreateParametersException.java
+ */
+
+package com.arjuna.wsc;
+
+public class AlreadyRegisteredException extends Exception
+{
+    public AlreadyRegisteredException()
+    {
+    }
+
+    public AlreadyRegisteredException(String message)
+    {
+        super(message);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * ContextFactory.java
+ */
+
+package com.arjuna.wsc;
+
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+public interface ContextFactory
+{
+    /**
+     * 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 CoordinationContextType 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/ContextFactoryMapper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,165 @@
+/*
+ * 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.
+ *
+ * ContextFactoryMapper.java
+ */
+
+package com.arjuna.wsc;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The context factory mapper.
+ * @author kevin
+ */
+public class ContextFactoryMapper
+{
+    /**
+     * The factory singleton.
+     */
+    private static final ContextFactoryMapper FACTORY = new ContextFactoryMapper() ;
+    
+    /**
+     * The context factory map.
+     */
+    private final Map contextFactoryMap = new HashMap() ;
+    /**
+     * The subordinate context factory mapper.
+     */
+    private ContextFactoryMapper subordinateContextFactoryMapper ;
+    /**
+     * The default context factory.
+     */
+    private ContextFactory defaultContextFactory ;
+    
+    /**
+     * Get the context factory mapper singleton.
+     * @return The context factory mapper singleton.
+     */
+    public static ContextFactoryMapper getFactory()
+    {
+        return FACTORY ;
+    }
+    
+    /**
+     * Default constructor
+     */
+    protected ContextFactoryMapper()
+    {
+    }
+    
+    /**
+     * 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 ContextFactory 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 ContextFactory getContextFactory(final String coordinationTypeURI)
+    {
+        final Object localContextFactory ;
+        synchronized(contextFactoryMap)
+        {
+            localContextFactory = contextFactoryMap.get(coordinationTypeURI) ;
+        }
+        if (localContextFactory != null)
+        {
+            return (ContextFactory)localContextFactory ;
+        }
+        if (subordinateContextFactoryMapper != null)
+        {
+            final ContextFactory 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)
+        {
+            ((ContextFactory)localContextFactory).uninstall(coordinationTypeURI) ;
+        }
+    }
+
+    /**
+     * Get the subordinate coordination factory mapper.
+     * @return The subordinate coordination factory mapper.
+     */
+    public ContextFactoryMapper getSubordinateContextFactoryMapper()
+    {
+        return subordinateContextFactoryMapper ;
+    }
+
+    /**
+     * Set a subordinate coordination factory mapper.
+     * @param subordinateContextFactoryMapper The subordinate coordination factory mapper.
+     */
+    public void setSubordinateContextFactoryMapper(final ContextFactoryMapper subordinateContextFactoryMapper)
+    {
+        this.subordinateContextFactoryMapper = subordinateContextFactoryMapper ;
+    }
+
+    /**
+     * Get the default coordination factory.
+     * @return The default coordination factory.
+     */
+    public ContextFactory getDefaultContextFactory()
+    {
+        return defaultContextFactory ;
+    }
+
+    /**
+     * Set the default coordination factory.
+     * @param defaultContextFactory The default coordination factory.
+     */
+    public void setDefaultContextFactory(final ContextFactory defaultContextFactory)
+    {
+        this.defaultContextFactory = defaultContextFactory ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidCreateParametersException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidCreateParametersException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidCreateParametersException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ *
+ * InvalidCreateParametersException.java
+ */
+
+package com.arjuna.wsc;
+
+public class InvalidCreateParametersException extends Exception
+{
+    public InvalidCreateParametersException()
+    {
+    }
+
+    public InvalidCreateParametersException(String message)
+    {
+        super(message);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidProtocolException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidProtocolException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidProtocolException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ *
+ * InvalidCreateParametersException.java
+ */
+
+package com.arjuna.wsc;
+
+public class InvalidProtocolException extends Exception
+{
+    public InvalidProtocolException()
+    {
+    }
+
+    public InvalidProtocolException(String message)
+    {
+        super(message);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidStateException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidStateException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/InvalidStateException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ *
+ * InvalidCreateParametersException.java
+ */
+
+package com.arjuna.wsc;
+
+public class InvalidStateException extends Exception
+{
+    public InvalidStateException()
+    {
+    }
+
+    public InvalidStateException(String message)
+    {
+        super(message);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/NoActivityException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/NoActivityException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/NoActivityException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ *
+ * InvalidCreateParametersException.java
+ */
+
+package com.arjuna.wsc;
+
+public class NoActivityException extends Exception
+{
+    public NoActivityException()
+    {
+    }
+
+    public NoActivityException(String message)
+    {
+        super(message);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/Registrar.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/Registrar.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/Registrar.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * Registrar.java
+ */
+
+package com.arjuna.wsc;
+
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+
+public interface Registrar
+{
+    /**
+     * 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 AlreadyRegisteredException if the participant is already registered for this coordination protocol under
+     *         this activity identifier
+     * @throws InvalidProtocolException if the coordination protocol is not supported
+     * @throws InvalidStateException if the state of the coordinator no longer allows registration for this
+     *         coordination protocol
+     * @throws NoActivityException if the actvity does not exist
+     */
+    public EndpointReferenceType register(final EndpointReferenceType participantProtocolService,
+        final String protocolIdentifier, final InstanceIdentifier 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/RegistrarMapper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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.
+ *
+ * RegistrarMapper.java
+ */
+
+package com.arjuna.wsc;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The registrar mapper.
+ * @author kevin
+ */
+public class RegistrarMapper
+{
+    /**
+     * The factory singleton.
+     */
+    private static final RegistrarMapper FACTORY = new RegistrarMapper() ;
+    
+    /**
+     * The registrar map.
+     */
+    private final Map registrarMap = new HashMap() ;
+    
+    /**
+     * Get the registrar mapper singleton.
+     * @return The registrar mapper singleton.
+     */
+    public static RegistrarMapper getFactory()
+    {
+        return FACTORY ;
+    }
+    
+    /**
+     * Default constructor
+     */
+    protected RegistrarMapper()
+    {
+    }
+    
+    /**
+     * Add a registrar for the specified protocol identifier.
+     * @param protocolIdentifier The protocol identifier.
+     * @param registrar The registrar.
+     */
+    public void addRegistrar(final String protocolIdentifier, final Registrar 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 Registrar getRegistrar(final String protocolIdentifier)
+    {
+        final Object localRegistrar ;
+        synchronized(registrarMap)
+        {
+            localRegistrar = registrarMap.get(protocolIdentifier) ;
+        }
+        return (Registrar)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/RegistrationCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.wsc;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+import com.arjuna.webservices.wscoor.client.RegistrationCoordinatorClient;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterCallback;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterProcessor;
+
+
+/**
+ * Wrapper around low level Registration Coordinator messaging.
+ * @author kevin
+ */
+public class RegistrationCoordinator
+{
+    /**
+     * 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 AlreadyRegisteredException If the participant is already registered. 
+     * @throws InvalidProtocolException If the protocol is unsupported.
+     * @throws InvalidStateException If the state is invalid
+     * @throws NoActivityException If there is to activity context active.
+     * @throws SoapFault for errors during processing.
+     * 
+     * @message com.arjuna.wsc.RegistrationCoordinator_1 [com.arjuna.wsc.RegistrationCoordinator_1] - Callback execution failed
+     * @message com.arjuna.wsc.RegistrationCoordinator_2 [com.arjuna.wsc.RegistrationCoordinator_2] - Callback wasn't triggered
+     */
+    public static EndpointReferenceType register(final CoordinationContextType coordinationContext,
+        final String messageID, final EndpointReferenceType participantProtocolService,
+        final String protocolIdentifier)
+        throws AlreadyRegisteredException, InvalidProtocolException,
+            InvalidStateException, NoActivityException, SoapFault
+    {
+        final EndpointReferenceType endpointReference = coordinationContext.getRegistrationService() ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(endpointReference, messageID) ;
+        
+        final RequestCallback callback = new RequestCallback() ;
+        final RegistrationRequesterProcessor registrationRequester = RegistrationRequesterProcessor.getRequester() ;
+        registrationRequester.registerCallback(messageID, callback) ;
+        try
+        {
+            RegistrationCoordinatorClient.getClient().sendRegister(addressingContext, protocolIdentifier, participantProtocolService) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final IOException ioe)
+        {
+            throw new SoapFault(ioe) ;
+        }
+        finally
+        {
+            registrationRequester.removeCallback(messageID) ;
+        }
+        
+        if (callback.hasFailed())
+        {
+            throw new SoapFault(SoapFaultType.FAULT_RECEIVER, null, WSCLogger.log_mesg.getString("com.arjuna.wsc.RegistrationCoordinator_1")) ;
+        }
+        else if (!callback.hasTriggered())
+        {
+            throw new SoapFault(SoapFaultType.FAULT_RECEIVER, null, WSCLogger.log_mesg.getString("com.arjuna.wsc.RegistrationCoordinator_2")) ;
+        }
+        
+        final RegisterResponseType response = callback.getRegisterResponse() ;
+        if (response != null)
+        {
+            return response.getCoordinatorProtocolService() ;
+        }
+        final SoapFault soapFault = callback.getSoapFault() ;
+        final QName subcode = soapFault.getSubcode() ;
+        if (CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME.equals(subcode))
+        {
+            throw new AlreadyRegisteredException(soapFault.getReason()) ;
+        }
+        else if (CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME.equals(subcode))
+        {
+            throw new InvalidProtocolException(soapFault.getReason()) ;
+        }
+        else if (CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME.equals(subcode))
+        {
+            throw new InvalidStateException(soapFault.getReason()) ;
+        }
+        else if (CoordinationConstants.WSCOOR_ERROR_CODE_NO_ACTIVITY_QNAME.equals(subcode))
+        {
+            throw new NoActivityException(soapFault.getReason()) ;
+        }
+        throw soapFault ;
+    }
+    
+    /**
+     * The request callback.
+     * @author kevin
+     */
+    private static final class RequestCallback extends RegistrationRequesterCallback
+    {
+        /**
+         * The response.
+         */
+        private RegisterResponseType registerResponse ;
+        /**
+         * The SOAP fault.
+         */
+        private SoapFault soapFault ;
+        
+        /**
+         * A register response.
+         * @param registerResponse The response.
+         * @param addressingContext The current addressing context.
+         */
+        public void registerResponse(final RegisterResponseType registerResponse,
+            final AddressingContext addressingContext)
+        {
+            this.registerResponse = registerResponse ;
+        }
+
+        /**
+         * A SOAP fault response.
+         * @param soapFault The SOAP fault response.
+         * @param addressingContext The current addressing context.
+         */
+        public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+        {
+            this.soapFault = soapFault ;
+        }
+        
+        /**
+         * Get the create coordination context response.
+         * @return The create coordination context response.
+         */
+        RegisterResponseType getRegisterResponse()
+        {
+            return registerResponse ;
+        }
+        
+        /**
+         * Get the SOAP fault.
+         * @return The SOAP fault or null.
+         */
+        SoapFault getSoapFault()
+        {
+            return soapFault ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,111 @@
+/*
+ * 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.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+import com.arjuna.webservices.wscoor.client.ActivationRequesterClient;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.ContextFactoryMapper;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.messaging.MessageId;
+
+/**
+ * The Activation Coordinator processor.
+ * @author kevin
+ */
+public class ActivationCoordinatorProcessorImpl extends ActivationCoordinatorProcessor
+{
+    /**
+     * Create the coordination context.
+     * @param createCoordinationContext The create coordination context request.
+     * @param addressingContext The addressing context.
+     * @message com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_1 [com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_1] - Invalid create coordination context parameters
+     * @message com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_2 [com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_2] - Unexpected exception thrown from create: 
+     * @message com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_3 [com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_3] - CreateCoordinationContext called for unknown coordination type: {0}
+     */
+    public void createCoordinationContext(final CreateCoordinationContextType createCoordinationContext,
+        final AddressingContext addressingContext)
+    {
+        final ContextFactoryMapper contextFactoryMapper = ContextFactoryMapper.getFactory() ;
+        try
+        {
+            final String coordinationType = createCoordinationContext.getCoordinationType().getValue() ;
+            final ContextFactory contextFactory = contextFactoryMapper.getContextFactory(coordinationType) ;
+            
+            if (contextFactory != null)
+            {
+                final CoordinationContextType coordinationContext ;
+                final AddressingContext responseAddressingContext ;
+                try
+                {
+                    final AttributedUnsignedIntType expiresElement = createCoordinationContext.getExpires() ;
+                    final Long expires = (expiresElement == null ? null : new Long(expiresElement.getValue())) ;
+                    
+                    coordinationContext = contextFactory.create(coordinationType, expires, createCoordinationContext.getCurrentContext()) ;
+                    responseAddressingContext = AddressingContext.createResponseContext(addressingContext, MessageId.getMessageId()) ;
+                }
+                catch (final InvalidCreateParametersException invalidCreateParametersException)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME,
+                        WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_1")) ;
+                    ActivationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_2", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    ActivationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                ActivationRequesterClient.getClient().sendCreateCoordinationResponse(responseAddressingContext, coordinationContext) ;
+            }
+            else
+            {
+                if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_3", new Object[] {coordinationType}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME,
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl_1")) ;
+                ActivationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageId.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageId.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageId.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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 MessageId
+{
+    /**
+     * Prevent instantiation.
+     */
+    private MessageId()
+    {
+    }
+
+    /**
+     * Get the next message identifier.
+     * @return The next message identifier.
+     */
+    public static String getMessageId()
+    {
+        return new VMID().toString() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.RegisterType;
+import com.arjuna.webservices.wscoor.client.RegistrationRequesterClient;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.Registrar;
+import com.arjuna.wsc.RegistrarMapper;
+import com.arjuna.wsc.messaging.MessageId;
+
+
+/**
+ * The Registration Coordinator processor.
+ * @author kevin
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_1 [com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_1] - Participant already registered
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_2 [com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_2] - Invalid protocol identifier
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_3 [com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_3] - Invalid coordination context state
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_4 [com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_4] - Unknown activity identifier
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_5 [com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_5] - Unexpected exception thrown from create: 
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_6 [com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_6] - Register called for unknown protocol identifier: {0}
+ */
+public class RegistrationCoordinatorProcessorImpl extends RegistrationCoordinatorProcessor
+{
+    /**
+     * Register the participant in the protocol.
+     * @param register The register request.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void register(final RegisterType register, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final RegistrarMapper registrarMapper = RegistrarMapper.getFactory() ;
+        try
+        {
+            final String protocolIdentifier = register.getProtocolIdentifier().getValue() ;
+            final Registrar registrar = registrarMapper.getRegistrar(protocolIdentifier) ;
+            
+            if (registrar != null)
+            {
+                final EndpointReferenceType coordinationProtocolService ;
+                final AddressingContext responseAddressingContext ;
+                try
+                {
+                    final EndpointReferenceType participantProtocolService = register.getParticipantProtocolService() ;
+                    final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier();
+                    coordinationProtocolService = registrar.register(participantProtocolService, protocolIdentifier, instanceIdentifier) ;
+                    
+                    responseAddressingContext = AddressingContext.createResponseContext(addressingContext, MessageId.getMessageId()) ;
+                }
+                catch (final AlreadyRegisteredException alreadyRegisteredException)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME,
+                        WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_1")) ;
+                    RegistrationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                catch (final InvalidProtocolException invalidProtocolException)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME,
+                        WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_2")) ;
+                    RegistrationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                catch (final InvalidStateException InvalidStateException)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME,
+                        WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_3")) ;
+                    RegistrationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                catch (final NoActivityException noActivityException)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_NO_ACTIVITY_QNAME,
+                        WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_4")) ;
+                    RegistrationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_5", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    RegistrationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+                    return ;
+                }
+                RegistrationRequesterClient.getClient().sendRegisterResponse(responseAddressingContext, coordinationProtocolService) ;
+            }
+            else
+            {
+                if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_6", new Object[] {protocolIdentifier}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME,
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl_2")) ;
+                RegistrationRequesterClient.getClient().sendSoapFault(faultAddressingContext, soapFault) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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 javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+import com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl;
+import com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Initialise the coordination services.
+ * @author kevin
+ */
+public class CoordinationInitialisation 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() {
+               ActivationCoordinatorProcessor.setCoordinator(new ActivationCoordinatorProcessorImpl()) ;
+               RegistrationCoordinatorProcessor.setCoordinator(new RegistrationCoordinatorProcessorImpl()) ;
+           }
+        };
+    }
+
+    /**
+     * 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/tests/dd/ws-c-tests_application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_application.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_application.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,35 @@
+<!--
+  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 application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
+
+<application>
+    <display-name>Arjuna Web Services Coordination Tests</display-name>
+
+    <description>Arjuna Web Services Coordination Tests</description>
+
+    <module>
+        <web>
+            <web-uri>ws-c-tests.war</web-uri>
+            <context-root>/ws-c-tests</context-root>
+        </web>
+    </module>
+</application>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/dd/ws-c-tests_web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,97 @@
+<!--
+  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/j2ee/dtds/web-app_2_3.dtd">
+
+<web-app>
+    <display-name>Arjuna Web Services Coordination Tests</display-name>
+
+    <description>Arjuna Web Services Coordination Tests</description>
+
+    <!--  Initialise WS-C services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationRequesterInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationRequesterInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C  -->
+    <listener>
+        <listener-class>com.arjuna.wsc.messaging.deploy.CoordinationInitialisation</listener-class>
+    </listener>
+
+    <!--  Initialise the HTTP Client -->
+    <listener>
+        <listener-class>com.arjuna.webservices.transport.http.HttpClientInitialisation</listener-class>
+    </listener>
+    
+    <!--  Initialise the tests -->
+    <listener>
+        <listener-class>com.arjuna.wsc.tests.TestInitialisation</listener-class>
+    </listener>
+    
+    <servlet>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <servlet-class>com.arjuna.webservices.transport.http.HttpServiceMultiplexorServlet</servlet-class>
+        <!--
+          The BaseHttpURI and BaseHttpsURI parameters specify the default values
+          used to generate the service URIs without reference to an incoming
+          request.
+         -->
+        <init-param>
+            <param-name>BaseHttpURI</param-name>
+            <param-value>http://@hostname@:@port@/ws-c-tests/soap/</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    
+    <servlet>
+        <servlet-name>JUnit Tests Servlet</servlet-name>
+        <servlet-class>com.arjuna.qa.junit.TestRunnerServlet</servlet-class>
+        <init-param>
+            <param-name>TestSuiteClassName</param-name>
+            <param-value>com.arjuna.wsc.tests.junit.TestSuite</param-value>
+        </init-param>
+        <load-on-startup>4</load-on-startup>
+    </servlet>
+
+	<!-- servlet mappings -->
+    <servlet-mapping>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <url-pattern>/soap/*</url-pattern>
+    </servlet-mapping>
+ 
+    <servlet-mapping>
+        <servlet-name>JUnit Tests Servlet</servlet-name>
+        <url-pattern>/index.html</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,613 @@
+/*
+ * 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.
+ *
+ * TestRunnerServlet.java
+ */
+
+package com.arjuna.qa.junit;
+
+import java.io.*;
+import java.util.*;
+import java.net.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import junit.framework.*;
+
+public class TestRunnerServlet extends HttpServlet
+{
+    public void init(ServletConfig config) throws ServletException
+    {
+        super.init(config);
+
+        _testSuiteClassName = config.getInitParameter("TestSuiteClassName");
+    }
+
+    public void doGet(HttpServletRequest request, HttpServletResponse response)
+        throws ServletException, IOException
+    {
+        try
+        {
+            PrintWriter writer = response.getWriter();
+
+            response.setContentType("text/html");
+            response.setHeader("Cache-Control", "no-cache");
+
+            if (request.getParameter("failednumber") != null)
+                doStatusFailed(writer, request, response);
+            else if (request.getParameter("errornumber") != null)
+                doStatusError(writer, request, response);
+            else
+                doStatus(writer, request, response);
+        }
+        catch (Exception exception)
+        {
+            log("Test Runner: doGet failed", exception);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, exception.toString());
+        }
+        catch (Error error)
+        {
+            log("Test Runner: doGet failed", error);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, error.toString());
+        }
+    }
+
+    public void doPost(HttpServletRequest request, HttpServletResponse response)
+        throws ServletException, IOException
+    {
+        try
+        {
+            PrintWriter writer = response.getWriter();
+
+            response.setContentType("text/html");
+            response.setHeader("Cache-Control", "no-cache");
+
+	    if ((_runnerThread == null) || (! _runnerThread.isAlive()))
+	    {
+                _runnerThread = new RunnerThread();
+                _runnerThread.start();
+            }
+
+            if (request.getParameter("failednumber") != null)
+                doStatusFailed(writer, request, response);
+            else if (request.getParameter("errornumber") != null)
+                doStatusError(writer, request, response);
+            else
+                doStatus(writer, request, response);
+        }
+        catch (Exception exception)
+        {
+            log("Test Runner: doPost failed", exception);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, exception.toString());
+        }
+        catch (Error error)
+        {
+            log("Test Runner: doPost failed", error);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, error.toString());
+        }
+    }
+
+    public void doStatus(PrintWriter writer, HttpServletRequest request, HttpServletResponse response)
+        throws ServletException
+    {
+        writer.println("<HTML>");
+        writer.println("<HEAD>");
+        writer.println("<TITLE>Test Runner</TITLE>");
+        writer.println("</HEAD>");
+        writer.println("<BODY bgcolor=\"white\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+        writer.println("<DIV style=\"font-family: Arial, Helvetica, sans-serif; font-size: large\">&nbsp;<BR>Test Runner: Status<BR>&nbsp;</DIV>");
+
+        writer.println("<TABLE width=\"100%\">");
+
+        writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Status</TD></TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test suite class:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _testSuiteClassName + "</TD>");
+        writer.println("</TR>");
+
+        if ((_runnerThread == null) || (! _runnerThread.isAlive()))
+        {
+            writer.println("<TR>");
+            writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Action:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.print("<FORM method=\"POST\" action=\"" + request.getRequestURL() + "\">");
+            writer.print("<INPUT type=\"button\" value=\"run\" onclick=\"this.form.submit()\">");
+            writer.print("</FORM>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+        }
+        else
+        {
+            writer.println("<TR>");
+            writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Action:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.print("<FORM method=\"GET\" action=\"" + request.getRequestURL() + "\">");
+            writer.print("<INPUT type=\"button\" value=\"reload\" onclick=\"this.form.submit()\">");
+            writer.print("</FORM>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            if (_currentTest != null)
+	    {
+                writer.println("<TR>");
+                writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Current test:</TD>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, _currentTest.toString());
+                writer.println("</TD>");
+                writer.println("</TR>");
+            }
+        }
+        writer.println("</TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Passed count:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _passedTests.size() + "</TD>");
+        writer.println("</TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Failed count:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _failedTests.size() + "</TD>");
+        writer.println("</TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Error count:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _errorTests.size() + "</TD>");
+        writer.println("</TR>");
+
+        writer.println("</TABLE>");
+
+        if (! _passedTests.isEmpty())
+        {
+            writer.println("<BR>");
+
+            writer.println("<TABLE width=\"100%\">");
+
+            writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Passes</TD></TR>");
+
+            writer.println("<TR>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration</TD>");
+            writer.println("</TR>");
+
+            Iterator passedTestsIterator = _passedTests.iterator();
+            while (passedTestsIterator.hasNext())
+            {
+                PassedTest passedTest = (PassedTest) passedTestsIterator.next();
+                writer.println("<TR>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, passedTest.test.toString());
+                writer.println("</TD>");
+                writer.print("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif\">" + passedTest.duration + " ms</TD>");
+                writer.println("</TR>");
+            }
+
+            writer.println("</TABLE>");
+        }
+
+        if (! _failedTests.isEmpty())
+        {
+            writer.println("<BR>");
+
+            writer.println("<TABLE width=\"100%\">");
+
+            writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Failures</TD></TR>");
+            writer.println("<TR>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Message</TD>");
+            writer.println("</TR>");
+
+            int failedNumber = 0;
+            Iterator failedTestsIterator = _failedTests.iterator();
+            while (failedTestsIterator.hasNext())
+            {
+                FailedTest failedTest = (FailedTest) failedTestsIterator.next();
+                writer.println("<TR>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                writer.print("<A href=\"" + request.getRequestURL() + "?failednumber=" + failedNumber + "\">");
+                encode(writer, failedTest.test.toString());
+                writer.print("</A>");
+                writer.println("</TD>");
+                writer.print("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif\">" + failedTest.duration + " ms</TD>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, failedTest.assertionFailedError.getMessage());
+                writer.println("</TD>");
+                writer.println("</TR>");
+                failedNumber++;
+            }
+
+            writer.println("</TABLE>");
+
+            writer.println("<BR>");
+        }
+
+        if (! _errorTests.isEmpty())
+        {
+            writer.println("<TABLE width=\"100%\">");
+            writer.println("<TR>");
+            writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Errors</TD></TR>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Exception/Error</TD>");
+            writer.println("</TR>");
+
+            int errorNumber = 0;
+            Iterator errorTestsIterator = _errorTests.iterator();
+            while (errorTestsIterator.hasNext())
+            {
+                ErrorTest errorTest = (ErrorTest) errorTestsIterator.next();
+                writer.println("<TR>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                writer.print("<A href=\"" + request.getRequestURL() + "?errornumber=" + errorNumber + "\">");
+                encode(writer, errorTest.test.toString());
+                writer.print("</A>");
+                writer.println("</TD>");
+                writer.print("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif\">" + errorTest.duration + " ms</TD>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, errorTest.throwable.toString());
+                writer.println("</TD>");
+                writer.println("</TR>");
+                errorNumber++;
+            }
+
+            writer.println("</TABLE>");
+        }
+
+        writer.println("</BODY>");
+        writer.println("</HTML>");
+    }
+
+    public void doStatusFailed(PrintWriter writer, HttpServletRequest request, HttpServletResponse response)
+        throws ServletException
+    {
+        int        failedIndex = 0;
+        FailedTest failedTest  = null;
+
+        try
+        {
+            String failedIndexString = (String) request.getParameter("failednumber");
+
+            failedIndex = Integer.parseInt(failedIndexString);
+            failedTest  = (FailedTest) _failedTests.get(failedIndex);
+        }
+        catch (Exception exception)
+        {
+            failedTest = null;
+        }
+
+        if (failedTest != null)
+        {
+            writer.println("<HTML>");
+            writer.println("<HEAD>");
+            writer.println("<TITLE>Test Runner</TITLE>");
+            writer.println("</HEAD>");
+            writer.println("<BODY bgcolor=\"white\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<DIV style=\"font-family: Arial, Helvetica, sans-serif; font-size: large\">&nbsp;<BR>Test Runner: Failed Status<BR>&nbsp;</DIV>");
+
+            writer.println("<TABLE>");
+
+            writer.print("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, failedTest.test.toString());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + failedTest.duration + " ms</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Message:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, failedTest.assertionFailedError.getMessage());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.print("<TR>");
+            writer.print("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Stack trace:</TD>");
+            writer.println("</TR>");
+            writer.println("<TR>");
+            writer.println("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<PRE>");
+            CharArrayWriter charArrayWriter = new CharArrayWriter();
+            PrintWriter     printWriter     = new PrintWriter(charArrayWriter, true);
+            failedTest.assertionFailedError.printStackTrace(printWriter);
+            printWriter.close();
+            charArrayWriter.close();
+            encode(writer, charArrayWriter.toString());
+            writer.println("</PRE>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("</TABLE>");
+
+            writer.println("<TABLE width=\"100%\">");
+            writer.println("<TR>");
+            writer.println("<TD align=\"left\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (failedIndex > 0)
+                writer.println("<A href=\"" + request.getRequestURL() + "?failednumber=" + (failedIndex - 1)+ "\">previous</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("<TD align=\"center\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<A href=\"" + request.getRequestURL() + "\">all</A>");
+            writer.println("</TD>");
+            writer.println("<TD align=\"right\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (failedIndex < (_failedTests.size() - 1))
+                writer.println("<A href=\"" + request.getRequestURL() + "?failednumber=" + (failedIndex + 1)+ "\">next</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("</TR>");
+            writer.println("</TABLE>");
+
+            writer.println("</BODY>");
+            writer.println("</HTML>");
+        }
+        else
+            doStatus(writer, request, response);
+    }
+
+    public void doStatusError(PrintWriter writer, HttpServletRequest request, HttpServletResponse response)
+        throws ServletException
+    {
+        int       errorIndex = 0;
+        ErrorTest errorTest  = null;
+
+        try
+        {
+            String errorIndexString = (String) request.getParameter("errornumber");
+
+            errorIndex = Integer.parseInt(errorIndexString);
+            errorTest  = (ErrorTest) _errorTests.get(errorIndex);
+        }
+        catch (Exception exception)
+        {
+            errorTest = null;
+        }
+
+        if (errorTest != null)
+        {
+            writer.println("<HTML>");
+            writer.println("<HEAD>");
+            writer.println("<TITLE>Test Runner</TITLE>");
+            writer.println("</HEAD>");
+            writer.println("<BODY bgcolor=\"white\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<DIV style=\"font-family: Arial, Helvetica, sans-serif; font-size: large\">&nbsp;<BR>Test Runner: Error Status<BR>&nbsp;</DIV>");
+
+            writer.println("<TABLE>");
+
+            writer.print("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, errorTest.test.toString());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + errorTest.duration + " ms</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Exception/error:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, errorTest.throwable.toString());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.print("<TR>");
+            writer.print("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Stack trace:</TD>");
+            writer.println("</TR>");
+            writer.println("<TR>");
+            writer.println("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<PRE>");
+            CharArrayWriter charArrayWriter = new CharArrayWriter();
+            PrintWriter     printWriter     = new PrintWriter(charArrayWriter, true);
+            errorTest.throwable.printStackTrace(printWriter);
+            printWriter.close();
+            charArrayWriter.close();
+            encode(writer, charArrayWriter.toString());
+            writer.println("</PRE>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("</TABLE>");
+
+            writer.println("<TABLE width=\"100%\">");
+            writer.println("<TR>");
+            writer.println("<TD align=\"left\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (errorIndex > 0)
+                writer.println("<A href=\"" + request.getRequestURL() + "?errornumber=" + (errorIndex - 1)+ "\">previous</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("<TD align=\"center\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<A href=\"" + request.getRequestURL() + "\">all</A>");
+            writer.println("</TD>");
+            writer.println("<TD align=\"right\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (errorIndex < (_errorTests.size() - 1))
+                writer.println("<A href=\"" + request.getRequestURL() + "?errornumber=" + (errorIndex + 1)+ "\">next</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("</TR>");
+            writer.println("</TABLE>");
+
+            writer.println("</BODY>");
+            writer.println("</HTML>");
+        }
+        else
+            doStatus(writer, request, response);
+    }
+
+    private class PassedTest
+    {
+        public Test test;
+        public long duration;
+    }
+
+    private class FailedTest
+    {
+        public Test                 test;
+        public long                 duration;
+        public AssertionFailedError assertionFailedError;
+    }
+
+    private class ErrorTest
+    {
+        public Test      test;
+        public long      duration;
+	public Throwable throwable;
+    }
+
+    private class RunnerThread extends Thread
+    {
+        RunnerThread()
+        {
+            super("JUnit Runner Thread") ;
+        }
+        
+        public void run()
+        {
+            try
+            {
+                _passedTests.clear();
+                _failedTests.clear();
+                _errorTests.clear();
+
+                Class        testSuiteClass = Class.forName(_testSuiteClassName);
+                TestListener testListener   = new BasicTestListener();
+
+                _testResult = new TestResult();
+                _testSuite  = (TestSuite) testSuiteClass.newInstance();
+
+                _testResult.addListener(testListener);
+                _testSuite.run(_testResult);
+                _testResult.removeListener(testListener);
+            }
+            catch (Exception exception)
+            {
+                log("Runner Thread: run failed", exception);
+            }
+            catch (Error error)
+            {
+                log("Runner Thread: run failed", error);
+            }
+        }
+    }
+
+    private class BasicTestListener implements TestListener
+    {
+        public void startTest(Test test)
+        {
+            _startTime            = System.currentTimeMillis();
+            _failed               = false;
+            _error                = false;
+            _assertionFailedError = null;
+            _throwable            = null;
+            _currentTest          = test;
+        }
+
+        public void addError(Test test, Throwable throwable)
+        {
+            _error     = true;
+            _throwable = throwable;
+            throwable.printStackTrace(System.out);
+        }
+
+        public void addFailure(Test test, AssertionFailedError assertionFailedError)
+        {
+            _failed               = true;
+            _assertionFailedError = assertionFailedError;
+            assertionFailedError.printStackTrace(System.out);
+        }
+
+        public void endTest(Test test)
+        {
+            if (_failed)
+            {
+                FailedTest failedTest           = new FailedTest();
+                failedTest.test                 = test;
+                failedTest.duration             = System.currentTimeMillis() - _startTime;
+                failedTest.assertionFailedError = _assertionFailedError;
+                _failedTests.add(failedTest);
+	    }
+	    else if (_error)
+            {
+                ErrorTest errorTest = new ErrorTest();
+                errorTest.test      = test;
+                errorTest.duration  = System.currentTimeMillis() - _startTime;
+                errorTest.throwable = _throwable;
+                _errorTests.add(errorTest);
+	    }
+	    else
+            {
+                PassedTest passedTest = new PassedTest();
+                passedTest.test       = test;
+                passedTest.duration   = System.currentTimeMillis() - _startTime;
+                _passedTests.add(passedTest);
+	    }
+
+            _currentTest = null;
+        }
+
+        private long                 _startTime            = 0;
+        private boolean              _failed               = false;
+        private boolean              _error                = false;
+        private AssertionFailedError _assertionFailedError = null;
+        private Throwable            _throwable            = null;
+    }
+
+    private static void encode(PrintWriter writer, String string)
+    {
+        if (string != null)
+        {
+            char[] chars = string.toCharArray();
+
+            for (int index = 0; index < chars.length; index++)
+                if (chars[index] == '<')
+                    writer.print("&lt;");
+                else if (chars[index] == '>')
+                    writer.print("&gt;");
+                else if (chars[index] == '&')
+                    writer.print("&amp;");
+                else
+                    writer.print(chars[index]);
+        }
+        else
+            writer.print("null");
+    }
+
+    private List         _passedTests        = new LinkedList();
+    private List         _failedTests        = new LinkedList();
+    private List         _errorTests         = new LinkedList();
+    private Test         _currentTest        = null;
+    private String       _testSuiteClassName = null;
+    private RunnerThread _runnerThread       = null;
+    private TestResult   _testResult         = null;
+    private TestSuite    _testSuite          = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestContextFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestContextFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestContextFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ *
+ * TestContextFactory.java
+ */
+
+package com.arjuna.wsc.tests;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.NamedElement;
+import com.arjuna.webservices.stax.TextElement;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+
+public class TestContextFactory implements ContextFactory
+{
+    public TestContextFactory(String coordinationType)
+    {
+        _identifier          = 0;
+        _coordinationType    = coordinationType;
+    }
+
+    public void install(final String coordinationTypeURI)
+    {
+    }
+
+    public CoordinationContextType create(final String coordinationTypeURI,
+        final Long expires, final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException
+    {
+        if (coordinationTypeURI.equals(TestUtil.INVALID_CREATE_PARAMETERS_COORDINATION_TYPE))
+            throw new InvalidCreateParametersException();
+
+        CoordinationContextType testCoordinationContext = new CoordinationContextType();
+
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String registrationURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        final EndpointReferenceType registrationService = new EndpointReferenceType(new AttributedURIType(registrationURI)) ;
+        
+        testCoordinationContext.setIdentifier(new AttributedURIType(Integer.toString(nextIdentifier()))) ;
+        testCoordinationContext.setCoordinationType(new URI(_coordinationType)) ;
+        testCoordinationContext.setRegistrationService(registrationService) ;
+        
+        final NamedElement extension = new NamedElement(TestUtil.TEST_ELEMENT_EXTENSION_VALUE_QNAME,
+            new TextElement(TestUtil.TEST_EXTENSION_VALUE)) ;
+        testCoordinationContext.putAnyContent(extension) ;
+        
+        _identifier++;
+
+        return testCoordinationContext;
+    }
+
+    public void uninstall(final String coordinationTypeURI)
+    {
+    }
+    
+    private synchronized int nextIdentifier()
+    {
+        return _identifier++ ;
+    }
+
+    private int           _identifier          = 0;
+    private String        _coordinationType    = null;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.wsc.tests;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.wsc.ContextFactoryMapper;
+import com.arjuna.wsc.RegistrarMapper;
+
+/**
+ * Initialise the test.
+ * @author kevin
+ */
+public class TestInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        final ContextFactoryMapper contextFactoryMapper = ContextFactoryMapper.getFactory() ;
+        final TestContextFactory testContextFactory = new TestContextFactory(TestUtil.COORDINATION_TYPE) ;
+
+        contextFactoryMapper.addContextFactory(TestUtil.COORDINATION_TYPE, testContextFactory) ;
+        contextFactoryMapper.addContextFactory(TestUtil.INVALID_CREATE_PARAMETERS_COORDINATION_TYPE, testContextFactory) ;
+        
+        final RegistrarMapper registrarMapper = RegistrarMapper.getFactory() ;
+        final TestRegistrar testRegistrar = new TestRegistrar() ;
+        
+        registrarMapper.addRegistrar(TestUtil.PROTOCOL_IDENTIFIER, testRegistrar) ;
+        registrarMapper.addRegistrar(TestUtil.ALREADY_REGISTERED_PROTOCOL_IDENTIFIER, testRegistrar) ;
+        registrarMapper.addRegistrar(TestUtil.INVALID_PROTOCOL_PROTOCOL_IDENTIFIER, testRegistrar) ;
+        registrarMapper.addRegistrar(TestUtil.INVALID_STATE_PROTOCOL_IDENTIFIER, testRegistrar) ;
+        registrarMapper.addRegistrar(TestUtil.NO_ACTIVITY_PROTOCOL_IDENTIFIER, testRegistrar) ;
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+        final ContextFactoryMapper contextFactoryMapper = ContextFactoryMapper.getFactory() ;
+        contextFactoryMapper.removeContextFactory(TestUtil.COORDINATION_TYPE);
+        contextFactoryMapper.removeContextFactory(TestUtil.INVALID_CREATE_PARAMETERS_COORDINATION_TYPE);
+        
+        final RegistrarMapper registrarMapper = RegistrarMapper.getFactory() ;
+        registrarMapper.removeRegistrar(TestUtil.PROTOCOL_IDENTIFIER);
+        registrarMapper.removeRegistrar(TestUtil.ALREADY_REGISTERED_PROTOCOL_IDENTIFIER);
+        registrarMapper.removeRegistrar(TestUtil.INVALID_PROTOCOL_PROTOCOL_IDENTIFIER);
+        registrarMapper.removeRegistrar(TestUtil.INVALID_STATE_PROTOCOL_IDENTIFIER);
+        registrarMapper.removeRegistrar(TestUtil.NO_ACTIVITY_PROTOCOL_IDENTIFIER);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestRegistrar.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestRegistrar.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestRegistrar.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ *
+ * TestRegistrar.java
+ */
+
+package com.arjuna.wsc.tests;
+
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.Registrar;
+
+public class TestRegistrar implements Registrar
+{
+    public void install(String protocolIdentifier)
+    {
+    }
+
+    public EndpointReferenceType register(EndpointReferenceType participantProtocolService, String protocolIdentifier, InstanceIdentifier instanceIdentifier)
+        throws AlreadyRegisteredException, InvalidProtocolException, InvalidStateException, NoActivityException
+    {
+        if (protocolIdentifier.equals(TestUtil.ALREADY_REGISTERED_PROTOCOL_IDENTIFIER))
+            throw new AlreadyRegisteredException();
+        else if (protocolIdentifier.equals(TestUtil.INVALID_PROTOCOL_PROTOCOL_IDENTIFIER))
+            throw new InvalidProtocolException();
+        else if (protocolIdentifier.equals(TestUtil.INVALID_STATE_PROTOCOL_IDENTIFIER))
+            throw new InvalidStateException();
+        else if (protocolIdentifier.equals(TestUtil.NO_ACTIVITY_PROTOCOL_IDENTIFIER))
+            throw new NoActivityException();
+
+        return new EndpointReferenceType(new AttributedURIType(TestUtil.PROTOCOL_COORDINATOR_SERVICE)) ;
+    }
+
+    public void uninstall(String protocolIdentifier)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestUtil.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestUtil.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/TestUtil.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ *
+ * TestUtil.java
+ */
+
+package com.arjuna.wsc.tests;
+
+import javax.xml.namespace.QName;
+
+public class TestUtil
+{
+    public static final String COORDINATION_TYPE                           = "http://wsc.example.org/coordination-type";
+    public static final String UNKNOWN_COORDINATION_TYPE                   = "http://wsc.example.org/unknown-coordination-type";
+    public static final String INVALID_CREATE_PARAMETERS_COORDINATION_TYPE = "http://wsc.example.org/invalid-create-parameters-coordination-type";
+
+    public static final String PROTOCOL_IDENTIFIER                         = "http://wsc.example.org/protocol-identifier";
+    public static final String UNKNOWN_PROTOCOL_IDENTIFIER                 = "http://wsc.example.org/unknown-protocol-identifier";
+    public static final String ALREADY_REGISTERED_PROTOCOL_IDENTIFIER      = "http://wsc.example.org/already-registered-protocol-identifier";
+    public static final String INVALID_PROTOCOL_PROTOCOL_IDENTIFIER        = "http://wsc.example.org/invalid-protocol-protocol-identifier";
+    public static final String INVALID_STATE_PROTOCOL_IDENTIFIER           = "http://wsc.example.org/invalid-state-protocol-identifier";
+    public static final String NO_ACTIVITY_PROTOCOL_IDENTIFIER             = "http://wsc.example.org/no-activity-protocol-identifier";
+
+    public static final String PROTOCOL_PARTICIPANT_SERVICE                = "http://wsc.example.org/protocol-participant-service";
+    public static final String PROTOCOL_COORDINATOR_SERVICE                = "http://wsc.example.org/protocol-coordinator-service";
+
+    public static final String TEST_EXTENSION_VALUE                        = "TestExtensionValue";
+    /**
+     * The Namespace.
+     */
+    public static final String TEST_NAMESPACE = "http://example.org/test" ;
+    /**
+     * The namespace prefix.
+     */
+    public static final String TEST_PREFIX = "test" ;
+    /**
+     * The ExtensionValue element.
+     */
+    public static final String TEST_ELEMENT_EXTENSION_VALUE = "ExtensionValue" ;
+    /**
+     * The ExtensionValue QName.
+     */
+    public static final QName TEST_ELEMENT_EXTENSION_VALUE_QNAME = new QName(TEST_NAMESPACE, TEST_ELEMENT_EXTENSION_VALUE, TEST_PREFIX) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceExceptionTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceExceptionTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceExceptionTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * ActivationServiceExceptionTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.wsc.ActivationCoordinator;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.tests.TestUtil;
+
+public class ActivationServiceExceptionTestCase extends TestCase
+{
+    private String activationCoordinatorURI ;
+    
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        activationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+    }
+
+    public void testInvalidCreateParametersException()
+        throws Exception
+    {
+        final String messageID = "testInvalidCreateParametersException" ;
+        final String coordinationTypeURI = TestUtil.INVALID_CREATE_PARAMETERS_COORDINATION_TYPE ;
+        try
+        {
+            ActivationCoordinator.createCoordinationContext(activationCoordinatorURI, messageID, coordinationTypeURI, null, null) ;
+            fail("Expected exception: InvalidCreateParametersException");
+        }
+        catch (final InvalidCreateParametersException icpe) {} // Ignore, expected
+        catch (final Throwable th)
+        {
+            fail("Expected exception: InvalidCreateParametersException");
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,92 @@
+/*
+ * 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.
+ *
+ * ActivationServiceTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ActivationCoordinator;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.tests.TestUtil;
+
+public class ActivationServiceTestCase extends TestCase
+{
+    private String activationCoordinatorURI ;
+    
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        activationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+    }
+
+    public void testKnownCoordinationType()
+        throws Exception
+    {
+        final String messageID = "testKnownCoordinationType" ;
+        final String coordinationTypeURI = TestUtil.COORDINATION_TYPE ;
+        try
+        {
+            final CoordinationContextType coordinationContext = ActivationCoordinator.createCoordinationContext(activationCoordinatorURI, messageID, coordinationTypeURI, null, null) ;
+            
+            assertNotNull(coordinationContext);
+            assertNotNull(coordinationContext.getCoordinationType()) ;
+            assertEquals(TestUtil.COORDINATION_TYPE, coordinationContext.getCoordinationType().getValue());
+            assertNotNull(coordinationContext.getRegistrationService()) ;
+            assertNotNull(coordinationContext.getRegistrationService().getAddress()) ;
+            assertNotNull(coordinationContext.getRegistrationService().getAddress().getValue()) ;
+        }
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th);
+        }
+    }
+
+    public void testUnknownCoordinationType()
+        throws Exception
+    {
+        final String messageID = "testUnknownCoordinationType" ;
+        final String coordinationTypeURI = TestUtil.UNKNOWN_COORDINATION_TYPE ;
+        try
+        {
+            ActivationCoordinator.createCoordinationContext(activationCoordinatorURI, messageID, coordinationTypeURI, null, null) ;
+            fail("Expected exception: InvalidCreateParametersException");
+        }
+        catch (final InvalidCreateParametersException icpe) {} // Ignore, expected
+        catch (final Throwable th)
+        {
+            fail("Expected exception: InvalidCreateParametersException");
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ActivationTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,298 @@
+/*
+ * 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.
+ *
+ * ActivationTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+import com.arjuna.webservices.wscoor.client.ActivationCoordinatorClient;
+import com.arjuna.webservices.wscoor.client.ActivationRequesterClient;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterProcessor;
+import com.arjuna.wsc.tests.TestUtil;
+import com.arjuna.wsc.tests.junit.TestActivationCoordinatorProcessor.CreateCoordinationContextDetails;
+
+public class ActivationTestCase extends TestCase
+{
+    private ActivationCoordinatorProcessor origActivationCoordinatorProcessor ;
+    
+    private TestActivationCoordinatorProcessor testActivationCoordinatorProcessor = new TestActivationCoordinatorProcessor() ;
+    private EndpointReferenceType activationCoordinatorService ;
+    private EndpointReferenceType activationRequesterService ;
+    
+    protected void setUp()
+        throws Exception
+    {
+        origActivationCoordinatorProcessor = ActivationCoordinatorProcessor.setCoordinator(testActivationCoordinatorProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String activationCoordinatorServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+        activationCoordinatorService = new EndpointReferenceType(new AttributedURIType(activationCoordinatorServiceURI)) ;
+        final String activationRequesterServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_REQUESTER) ;
+        activationRequesterService = new EndpointReferenceType(new AttributedURIType(activationRequesterServiceURI)) ;
+    }
+
+    public void testRequestWithoutExpiresWithoutCurrentContext()
+        throws Exception
+    {
+        final String messageId = "testRequestWithoutExpiresWithoutCurrentContext" ;
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final Long expires = null ;
+        final CoordinationContextType coordinationContext = null ;
+        
+        executeRequestTest(messageId, coordinationType, expires, coordinationContext) ;
+    }
+    
+    public void testRequestWithExpiresWithoutCurrentContext()
+        throws Exception
+    {
+        final String messageId = "testRequestWithExpiresWithoutCurrentContext" ;
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final Long expires = new Long(123456L) ;
+        final CoordinationContextType coordinationContext = null ;
+        
+        executeRequestTest(messageId, coordinationType, expires, coordinationContext) ;
+    }
+
+    public void testRequestWithoutExpiresWithCurrentContextWithoutExpires()
+        throws Exception
+    {
+        final String messageId = "testRequestWithoutExpiresWithCurrentContextWithoutExpires" ;
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final Long expires = null ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setRegistrationService(activationCoordinatorService) ;
+        coordinationContext.setIdentifier(new AttributedURIType(TestUtil.PROTOCOL_IDENTIFIER)) ;
+        
+        executeRequestTest(messageId, coordinationType, expires, coordinationContext) ;
+    }
+
+    public void testRequestWithoutExpiresWithCurrentContextWithExpires()
+        throws Exception
+    {
+        final String messageId = "testRequestWithoutExpiresWithCurrentContextWithExpires" ;
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final Long expires = null ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setRegistrationService(activationCoordinatorService) ;
+        coordinationContext.setIdentifier(new AttributedURIType(TestUtil.PROTOCOL_IDENTIFIER)) ;
+        coordinationContext.setExpires(new AttributedUnsignedIntType(123456L)) ;
+        
+        executeRequestTest(messageId, coordinationType, expires, coordinationContext) ;
+    }
+
+    public void testRequestWithExpiresWithCurrentContextWithoutExpires()
+        throws Exception
+    {
+        final String messageId = "testRequestWithExpiresWithCurrentContextWithoutExpires" ;
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final Long expires = new Long(123456L) ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setRegistrationService(activationCoordinatorService) ;
+        coordinationContext.setIdentifier(new AttributedURIType(TestUtil.PROTOCOL_IDENTIFIER)) ;
+        
+        executeRequestTest(messageId, coordinationType, expires, coordinationContext) ;
+    }
+
+    public void testRequestWithExpiresWithCurrentContextWithExpires()
+        throws Exception
+    {
+        final String messageId = "testRequestWithExpiresWithCurrentContextWithExpires" ;
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final Long expires = new Long(123456L) ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setRegistrationService(activationCoordinatorService) ;
+        coordinationContext.setIdentifier(new AttributedURIType(TestUtil.PROTOCOL_IDENTIFIER)) ;
+        coordinationContext.setExpires(new AttributedUnsignedIntType(1234567L)) ;
+        
+        executeRequestTest(messageId, coordinationType, expires, coordinationContext) ;
+    }
+    
+    private void executeRequestTest(final String messageId, final String coordinationType, final Long expires, final CoordinationContextType coordinationContext)
+        throws Exception
+    {
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationCoordinatorService, messageId) ;
+        final AttributedUnsignedIntType expiresValue = (expires == null ? null : new AttributedUnsignedIntType(expires.longValue())) ;
+        ActivationCoordinatorClient.getClient().sendCreateCoordination(addressingContext, coordinationType, expiresValue, coordinationContext) ;
+        
+        final CreateCoordinationContextDetails details = testActivationCoordinatorProcessor.getCreateCoordinationContextDetails(messageId, 10000) ;
+        final CreateCoordinationContextType requestCreateCoordinationContext = details.getCreateCoordinationContext() ;
+        final AddressingContext requestAddressingContext = details.getAddressingContext() ;
+    
+        assertEquals(requestAddressingContext.getTo().getValue(), activationCoordinatorService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getFrom().getAddress().getValue(), activationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getReplyTo().getAddress().getValue(), activationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getMessageID().getValue(), messageId);
+        
+        if (expires == null)
+        {
+            assertNull(requestCreateCoordinationContext.getExpires()) ;
+        }
+        else
+        {
+            assertEquals(expires.longValue(), requestCreateCoordinationContext.getExpires().getValue());
+        }
+        if (coordinationContext == null)
+        {
+            assertNull(requestCreateCoordinationContext.getCurrentContext()) ;
+        }
+        else
+        {
+            assertNotNull(requestCreateCoordinationContext.getCurrentContext()) ;
+            assertEquals(requestCreateCoordinationContext.getCurrentContext().getIdentifier().getValue(),
+                coordinationContext.getIdentifier().getValue()) ;
+            if (coordinationContext.getExpires() == null)
+            {
+                assertNull(requestCreateCoordinationContext.getCurrentContext().getExpires()) ;
+            }
+            else
+            {
+                assertEquals(requestCreateCoordinationContext.getCurrentContext().getExpires().getValue(),
+                    coordinationContext.getExpires().getValue()) ;
+            }
+            assertEquals(requestCreateCoordinationContext.getCurrentContext().getIdentifier().getValue(),
+                coordinationContext.getIdentifier().getValue()) ;
+        }
+        assertEquals(requestCreateCoordinationContext.getCoordinationType().getValue(), coordinationType);
+    }
+
+    public void testResponse()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String relatesTo = "testResponse" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final String identifier = TestUtil.PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setRegistrationService(activationCoordinatorService) ;
+        coordinationContext.setIdentifier(new AttributedURIType(identifier)) ;
+        
+        final TestActivationRequesterCallback callback = new TestActivationRequesterCallback() {
+            public void createCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), activationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), activationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                final CoordinationContextType coordinationContext = createCoordinationContextResponse.getCoordinationContext() ;
+                assertNotNull(coordinationContext) ;
+                assertEquals(coordinationType, coordinationContext.getCoordinationType().getValue()) ;
+                assertEquals(identifier, coordinationContext.getIdentifier().getValue()) ;
+            }
+        };
+        final ActivationRequesterProcessor requester = ActivationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        try
+        {
+            ActivationRequesterClient.getClient().sendCreateCoordinationResponse(addressingContext, coordinationContext) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String relatesTo = "testResponse" ;
+        final String reason = "testResponseReason" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestActivationRequesterCallback callback = new TestActivationRequesterCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), activationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), activationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+            }
+        };
+        final ActivationRequesterProcessor requester = ActivationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        
+        try
+        {
+            ActivationRequesterClient.getClient().sendSoapFault(addressingContext, soapFault) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+    
+    protected void tearDown()
+        throws Exception
+    {
+        ActivationCoordinatorProcessor.setCoordinator(origActivationCoordinatorProcessor) ;
+        origActivationCoordinatorProcessor = null ;
+        testActivationCoordinatorProcessor = null ;
+        activationCoordinatorService = null ;
+        activationRequesterService = null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/EnduranceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/EnduranceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/EnduranceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,428 @@
+/*
+ * 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.
+ *
+ * EnduranceTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+import com.arjuna.webservices.wscoor.RegisterType;
+import com.arjuna.webservices.wscoor.client.ActivationCoordinatorClient;
+import com.arjuna.webservices.wscoor.client.ActivationRequesterClient;
+import com.arjuna.webservices.wscoor.client.RegistrationCoordinatorClient;
+import com.arjuna.webservices.wscoor.client.RegistrationRequesterClient;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterProcessor;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterProcessor;
+import com.arjuna.wsc.tests.TestUtil;
+import com.arjuna.wsc.tests.junit.TestActivationCoordinatorProcessor.CreateCoordinationContextDetails;
+import com.arjuna.wsc.tests.junit.TestRegistrationCoordinatorProcessor.RegisterDetails;
+
+public class EnduranceTestCase extends TestCase
+{
+    private ActivationCoordinatorProcessor origActivationCoordinatorProcessor ;
+    private RegistrationCoordinatorProcessor origRegistrationCoordinatorProcessor ;
+    
+    private TestActivationCoordinatorProcessor testActivationCoordinatorProcessor = new TestActivationCoordinatorProcessor() ;
+    private EndpointReferenceType activationCoordinatorService ;
+    private EndpointReferenceType activationRequesterService ;
+    
+    private TestRegistrationCoordinatorProcessor testRegistrationCoordinatorProcessor = new TestRegistrationCoordinatorProcessor() ;
+    private EndpointReferenceType registrationCoordinatorService ;
+    private EndpointReferenceType registrationRequesterService ;
+    
+    private static final long TEST_DURATION = 30 * 1000;
+
+    protected void setUp()
+        throws Exception
+    {
+        origActivationCoordinatorProcessor = ActivationCoordinatorProcessor.setCoordinator(testActivationCoordinatorProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String activationCoordinatorServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+        activationCoordinatorService = new EndpointReferenceType(new AttributedURIType(activationCoordinatorServiceURI)) ;
+        final String activationRequesterServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_REQUESTER) ;
+        activationRequesterService = new EndpointReferenceType(new AttributedURIType(activationRequesterServiceURI)) ;
+        
+        origRegistrationCoordinatorProcessor = RegistrationCoordinatorProcessor.setCoordinator(testRegistrationCoordinatorProcessor) ;
+        final String registrationCoordinatorServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        registrationCoordinatorService = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorServiceURI)) ;
+        final String registrationRequesterServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER) ;
+        registrationRequesterService = new EndpointReferenceType(new AttributedURIType(registrationRequesterServiceURI)) ;
+    }
+
+    public void testCreateCoordinationContextRequest()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            doCreateCoordinationContextRequest(Integer.toString(dialogIdentifierNumber));
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void testCreateCoordinationContextResponse()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            doCreateCoordinationContextResponse(Integer.toString(dialogIdentifierNumber));
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void testCreateCoordinationContextError()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            doCreateCoordinationContextError(Integer.toString(dialogIdentifierNumber));
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void testRegisterRequest()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            doRegisterRequest(Integer.toString(dialogIdentifierNumber));
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void testRegisterResponse()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            doRegisterResponse(Integer.toString(dialogIdentifierNumber));
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void testRegisterError()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            doRegisterError(Integer.toString(dialogIdentifierNumber));
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void testEachInTurn()
+        throws Exception
+    {
+        long startTime = System.currentTimeMillis();
+
+        int count                  = 0;
+        int dialogIdentifierNumber = 0;
+        while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+        {
+            if (count == 0)
+                doCreateCoordinationContextRequest(Integer.toString(dialogIdentifierNumber));
+            else if (count == 1)
+                doCreateCoordinationContextResponse(Integer.toString(dialogIdentifierNumber));
+            else if (count == 2)
+                doCreateCoordinationContextError(Integer.toString(dialogIdentifierNumber));
+            else if (count == 3)
+                doRegisterRequest(Integer.toString(dialogIdentifierNumber));
+            else if (count == 4)
+                doRegisterResponse(Integer.toString(dialogIdentifierNumber));
+            else
+                doRegisterError(Integer.toString(dialogIdentifierNumber));
+
+            count = (count + 1) % 6;
+            dialogIdentifierNumber++;
+        }
+    }
+
+    public void doCreateCoordinationContextRequest(final String messageId)
+        throws Exception
+    {
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationCoordinatorService, messageId) ;
+        ActivationCoordinatorClient.getClient().sendCreateCoordination(addressingContext, coordinationType, null, null) ;
+        
+        final CreateCoordinationContextDetails details = testActivationCoordinatorProcessor.getCreateCoordinationContextDetails(messageId, 10000) ;
+        final CreateCoordinationContextType requestCreateCoordinationContext = details.getCreateCoordinationContext() ;
+        final AddressingContext requestAddressingContext = details.getAddressingContext() ;
+    
+        assertEquals(requestAddressingContext.getTo().getValue(), activationCoordinatorService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getFrom().getAddress().getValue(), activationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getReplyTo().getAddress().getValue(), activationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getMessageID().getValue(), messageId);
+        
+        assertNull(requestCreateCoordinationContext.getExpires()) ;
+        assertNull(requestCreateCoordinationContext.getCurrentContext()) ;
+        assertEquals(requestCreateCoordinationContext.getCoordinationType().getValue(), coordinationType);
+    }
+
+    public void doCreateCoordinationContextResponse(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doCreateCoordinationContextResponse" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final String identifier = TestUtil.PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setIdentifier(new AttributedURIType(identifier)) ;
+        final EndpointReferenceType registrationService = new EndpointReferenceType(new AttributedURIType("http://www.example.com/registrationService")) ;
+        coordinationContext.setRegistrationService(registrationService) ;
+        
+        final TestActivationRequesterCallback callback = new TestActivationRequesterCallback() {
+            public void createCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), activationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), activationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                final CoordinationContextType coordinationContext = createCoordinationContextResponse.getCoordinationContext() ;
+                assertNotNull(coordinationContext) ;
+                assertEquals(coordinationType, coordinationContext.getCoordinationType().getValue()) ;
+                assertEquals(identifier, coordinationContext.getIdentifier().getValue()) ;
+                assertEquals(registrationService.getAddress().getValue(), coordinationContext.getRegistrationService().getAddress().getValue()) ;
+            }
+        };
+        final ActivationRequesterProcessor requester = ActivationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        try
+        {
+            ActivationRequesterClient.getClient().sendCreateCoordinationResponse(addressingContext, coordinationContext) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void doCreateCoordinationContextError(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doCreateCoordinationContextError" ;
+        final String reason = "doCreateCoordinationContextErrorReason" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestActivationRequesterCallback callback = new TestActivationRequesterCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), activationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), activationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+            }
+        };
+        final ActivationRequesterProcessor requester = ActivationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        
+        try
+        {
+            ActivationRequesterClient.getClient().sendSoapFault(addressingContext, soapFault) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void doRegisterRequest(final String messageId)
+        throws Exception
+    {
+        final String protocolIdentifier = TestUtil.PROTOCOL_IDENTIFIER ;
+        final EndpointReferenceType participantProtocolService = new EndpointReferenceType(new AttributedURIType(TestUtil.PROTOCOL_PARTICIPANT_SERVICE)) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationCoordinatorService, messageId) ;
+        RegistrationCoordinatorClient.getClient().sendRegister(addressingContext, protocolIdentifier, participantProtocolService) ;
+        
+        final RegisterDetails details = testRegistrationCoordinatorProcessor.getRegisterDetails(messageId, 10000) ;
+        final RegisterType requestRegister = details.getRegister() ;
+        final AddressingContext requestAddressingContext = details.getAddressingContext() ;
+        final ArjunaContext requestArjunaContext = details.getArjunaContext() ;
+
+        assertEquals(requestAddressingContext.getTo().getValue(), registrationCoordinatorService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getFrom().getAddress().getValue(), registrationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getReplyTo().getAddress().getValue(), registrationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getMessageID().getValue(), messageId);
+        
+        assertNull(requestArjunaContext.getInstanceIdentifier()) ;
+
+        assertEquals(protocolIdentifier, requestRegister.getProtocolIdentifier().getValue()) ;
+        assertEquals(participantProtocolService.getAddress().getValue(),
+            requestRegister.getParticipantProtocolService().getAddress().getValue()) ;
+    }
+
+    public void doRegisterResponse(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doRegisterResponse" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final EndpointReferenceType coordinationProtocolService = new EndpointReferenceType(new AttributedURIType(TestUtil.PROTOCOL_COORDINATOR_SERVICE)) ;
+        
+        final TestRegistrationRequesterCallback callback = new TestRegistrationRequesterCallback() {
+            public void registerResponse(final RegisterResponseType registerResponse, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), registrationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), registrationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(coordinationProtocolService.getAddress().getValue(),
+                    registerResponse.getCoordinatorProtocolService().getAddress().getValue()) ;
+            } 
+        } ;
+        
+        final RegistrationRequesterProcessor requester = RegistrationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        try
+        {
+            RegistrationRequesterClient.getClient().sendRegisterResponse(addressingContext, coordinationProtocolService) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void doRegisterError(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doRegisterError" ;
+        final String reason = "doRegisterErrorReason" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestRegistrationRequesterCallback callback = new TestRegistrationRequesterCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), registrationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), registrationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+            }
+        };
+        final RegistrationRequesterProcessor requester = RegistrationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        
+        try
+        {
+            RegistrationRequesterClient.getClient().sendSoapFault(addressingContext, soapFault) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        ActivationCoordinatorProcessor.setCoordinator(origActivationCoordinatorProcessor) ;
+        origActivationCoordinatorProcessor = null ;
+        testActivationCoordinatorProcessor = null ;
+        activationCoordinatorService = null ;
+        activationRequesterService = null ;
+        
+        RegistrationCoordinatorProcessor.setCoordinator(origRegistrationCoordinatorProcessor) ;
+        origRegistrationCoordinatorProcessor = null ;
+        testRegistrationCoordinatorProcessor = null ;
+        registrationCoordinatorService = null ;
+        registrationRequesterService = null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceExceptionTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceExceptionTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceExceptionTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ *
+ * RegistrationServiceExceptionTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.RegistrationCoordinator;
+import com.arjuna.wsc.tests.TestUtil;
+
+public class RegistrationServiceExceptionTestCase extends TestCase
+{
+    private EndpointReferenceType registrationRequester ;
+    private EndpointReferenceType registrationCoordinator ;
+    
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String registrationRequesterURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER) ;
+        registrationRequester = new EndpointReferenceType(new AttributedURIType(registrationRequesterURI)) ;
+        final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+    }
+
+    public void testAlreadyRegisteredProtocolIdentifierException()
+        throws Exception
+    {
+        final String messageId = "testAlreadyRegisteredProtocolIdentifierException" ;
+        final String protocolIdentifier = TestUtil.ALREADY_REGISTERED_PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(TestUtil.COORDINATION_TYPE)) ;
+        coordinationContext.setIdentifier(new AttributedURIType("identifier")) ;
+        coordinationContext.setRegistrationService(registrationCoordinator) ;
+        try
+        {
+            RegistrationCoordinator.register(coordinationContext, messageId, registrationRequester, protocolIdentifier) ;
+        }
+        catch (final AlreadyRegisteredException are) {}
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th) ;
+        }
+    }
+
+    public void testInvalidProtocolProtocolIdentifierException()
+        throws Exception
+    {
+        final String messageId = "testInvalidProtocolProtocolIdentifierException" ;
+        final String protocolIdentifier = TestUtil.INVALID_PROTOCOL_PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(TestUtil.COORDINATION_TYPE)) ;
+        coordinationContext.setIdentifier(new AttributedURIType("identifier")) ;
+        coordinationContext.setRegistrationService(registrationCoordinator) ;
+        try
+        {
+            RegistrationCoordinator.register(coordinationContext, messageId, registrationRequester, protocolIdentifier) ;
+        }
+        catch (final InvalidProtocolException ipe) {}
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th) ;
+        }
+    }
+
+    public void testInvalidStateProtocolIdentifierException()
+        throws Exception
+    {
+        final String messageId = "testInvalidStateProtocolIdentifierException" ;
+        final String protocolIdentifier = TestUtil.INVALID_STATE_PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(TestUtil.COORDINATION_TYPE)) ;
+        coordinationContext.setIdentifier(new AttributedURIType("identifier")) ;
+        coordinationContext.setRegistrationService(registrationCoordinator) ;
+        try
+        {
+            RegistrationCoordinator.register(coordinationContext, messageId, registrationRequester, protocolIdentifier) ;
+        }
+        catch (final InvalidStateException ise) {}
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th) ;
+        }
+    }
+
+    public void testNoActivityProtocolIdentifierException()
+        throws Exception
+    {
+        final String messageId = "testNoActivityProtocolIdentifierException" ;
+        final String protocolIdentifier = TestUtil.NO_ACTIVITY_PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(TestUtil.COORDINATION_TYPE)) ;
+        coordinationContext.setIdentifier(new AttributedURIType("identifier")) ;
+        coordinationContext.setRegistrationService(registrationCoordinator) ;
+        try
+        {
+            RegistrationCoordinator.register(coordinationContext, messageId, registrationRequester, protocolIdentifier) ;
+        }
+        catch (final NoActivityException nae) {}
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th) ;
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        registrationCoordinator = null ;
+        registrationRequester = null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ *
+ * RegistrationServiceTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.RegistrationCoordinator;
+import com.arjuna.wsc.tests.TestUtil;
+
+public class RegistrationServiceTestCase extends TestCase
+{
+    private EndpointReferenceType registrationRequester ;
+    private EndpointReferenceType registrationCoordinator ;
+    
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String registrationRequesterURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER) ;
+        registrationRequester = new EndpointReferenceType(new AttributedURIType(registrationRequesterURI)) ;
+        final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+    }
+
+    public void testKnownCoordinationType()
+        throws Exception
+    {
+        final String messageId = "testKnownCoordinationType" ;
+        final String protocolIdentifier = TestUtil.PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(TestUtil.COORDINATION_TYPE)) ;
+        coordinationContext.setIdentifier(new AttributedURIType("identifier")) ;
+        coordinationContext.setRegistrationService(registrationCoordinator) ;
+        try
+        {
+            final EndpointReferenceType registerResponse = RegistrationCoordinator.register(coordinationContext, messageId, registrationRequester, protocolIdentifier) ;
+            
+            assertNotNull(registerResponse) ;
+            assertEquals(TestUtil.PROTOCOL_COORDINATOR_SERVICE, registerResponse.getAddress().getValue()) ;
+        }
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th) ;
+        }
+    }
+    
+    public void testUnknownCoordinationType()
+        throws Exception
+    {
+        final String messageId = "testUnknownCoordinationType" ;
+        final String protocolIdentifier = TestUtil.UNKNOWN_PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(TestUtil.COORDINATION_TYPE)) ;
+        coordinationContext.setIdentifier(new AttributedURIType("identifier")) ;
+        coordinationContext.setRegistrationService(registrationCoordinator) ;
+        try
+        {
+            RegistrationCoordinator.register(coordinationContext, messageId, registrationRequester, protocolIdentifier) ;
+        }
+        catch (final InvalidProtocolException ipe) {}
+        catch (final Throwable th)
+        {
+            fail("Unexpected exception: " + th) ;
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        registrationCoordinator = null ;
+        registrationRequester = null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/RegistrationTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,217 @@
+/*
+ * 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.
+ *
+ * RegistrationTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+import com.arjuna.webservices.wscoor.RegisterType;
+import com.arjuna.webservices.wscoor.client.RegistrationCoordinatorClient;
+import com.arjuna.webservices.wscoor.client.RegistrationRequesterClient;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterProcessor;
+import com.arjuna.wsc.tests.junit.TestRegistrationCoordinatorProcessor.RegisterDetails;
+
+public class RegistrationTestCase extends TestCase
+{
+    private RegistrationCoordinatorProcessor origRegistrationCoordinatorProcessor ;
+    
+    private TestRegistrationCoordinatorProcessor testRegistrationCoordinatorProcessor = new TestRegistrationCoordinatorProcessor() ;
+    private EndpointReferenceType registrationCoordinatorService ;
+    private EndpointReferenceType registrationRequesterService ;
+    
+    protected void setUp()
+        throws Exception
+    {
+        origRegistrationCoordinatorProcessor = RegistrationCoordinatorProcessor.setCoordinator(testRegistrationCoordinatorProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String registrationCoordinatorServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        registrationCoordinatorService = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorServiceURI)) ;
+        final String registrationRequesterServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER) ;
+        registrationRequesterService = new EndpointReferenceType(new AttributedURIType(registrationRequesterServiceURI)) ;
+    }
+
+    public void testRequestWithoutInstanceIdentifier()
+        throws Exception
+    {
+        executeRequest("testRequestWithoutInstanceIdentifier", null) ;
+    }
+
+    public void testRequestWithInstanceIdentifier()
+        throws Exception
+    {
+        executeRequest("testRequestWithInstanceIdentifier", new InstanceIdentifier("identifier")) ;
+    }
+    
+    private void executeRequest(final String messageId, final InstanceIdentifier instanceIdentifier)
+        throws Exception
+    {
+        final String protocolIdentifier = "http://foo.example.org/bar" ;
+        final EndpointReferenceType participantProtocolService = new EndpointReferenceType(new AttributedURIType("http://bar.example.org/foo")) ;
+        final EndpointReferenceType toService ;
+        if (instanceIdentifier == null)
+        {
+            toService = registrationCoordinatorService ;
+        }
+        else
+        {
+            toService = new EndpointReferenceType(registrationCoordinatorService.getAddress()) ;
+            InstanceIdentifier.setEndpointInstanceIdentifier(toService, instanceIdentifier) ;
+        }
+        
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(toService, messageId) ;
+        RegistrationCoordinatorClient.getClient().sendRegister(addressingContext, protocolIdentifier, participantProtocolService) ;
+        
+        final RegisterDetails details = testRegistrationCoordinatorProcessor.getRegisterDetails(messageId, 10000) ;
+        final RegisterType requestRegister = details.getRegister() ;
+        final AddressingContext requestAddressingContext = details.getAddressingContext() ;
+        final ArjunaContext requestArjunaContext = details.getArjunaContext() ;
+
+        assertEquals(requestAddressingContext.getTo().getValue(), registrationCoordinatorService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getFrom().getAddress().getValue(), registrationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getReplyTo().getAddress().getValue(), registrationRequesterService.getAddress().getValue());
+        assertEquals(requestAddressingContext.getMessageID().getValue(), messageId);
+        
+        if (instanceIdentifier == null)
+        {
+            assertNull(requestArjunaContext.getInstanceIdentifier()) ;
+        }
+        else
+        {
+            assertEquals(instanceIdentifier.getInstanceIdentifier(), requestArjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+        }
+
+        assertEquals(protocolIdentifier, requestRegister.getProtocolIdentifier().getValue()) ;
+        assertEquals(participantProtocolService.getAddress().getValue(),
+            requestRegister.getParticipantProtocolService().getAddress().getValue()) ;
+    }
+
+    public void testResponse()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String relatesTo = "testResponse" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final EndpointReferenceType coordinationProtocolService = new EndpointReferenceType(new AttributedURIType("http://foo.example.org/bar")) ;
+        
+        final TestRegistrationRequesterCallback callback = new TestRegistrationRequesterCallback() {
+            public void registerResponse(final RegisterResponseType registerResponse, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), registrationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), registrationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(coordinationProtocolService.getAddress().getValue(),
+                    registerResponse.getCoordinatorProtocolService().getAddress().getValue()) ;
+            } 
+        } ;
+        
+        final RegistrationRequesterProcessor requester = RegistrationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        try
+        {
+            RegistrationRequesterClient.getClient().sendRegisterResponse(addressingContext, coordinationProtocolService) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String relatesTo = "testResponse" ;
+        final String reason = "testResponseReason" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestRegistrationRequesterCallback callback = new TestRegistrationRequesterCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), registrationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), registrationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+            }
+        };
+        final RegistrationRequesterProcessor requester = RegistrationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        
+        try
+        {
+            RegistrationRequesterClient.getClient().sendSoapFault(addressingContext, soapFault) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        RegistrationCoordinatorProcessor.setCoordinator(origRegistrationCoordinatorProcessor) ;
+        origRegistrationCoordinatorProcessor = null ;
+        testRegistrationCoordinatorProcessor = null ;
+        registrationCoordinatorService = null ;
+        registrationRequesterService = null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,97 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextType;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+
+public class TestActivationCoordinatorProcessor extends
+        ActivationCoordinatorProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public void createCoordinationContext(final CreateCoordinationContextType createCoordinationContext,
+        final AddressingContext addressingContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, new CreateCoordinationContextDetails(createCoordinationContext, addressingContext)) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public CreateCoordinationContextDetails getCreateCoordinationContextDetails(final String messageId, long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final CreateCoordinationContextDetails details = (CreateCoordinationContextDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final CreateCoordinationContextDetails details = (CreateCoordinationContextDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+    
+    public static class CreateCoordinationContextDetails
+    {
+        private final CreateCoordinationContextType createCoordinationContext ;
+        private final AddressingContext addressingContext ;
+        
+        CreateCoordinationContextDetails(final CreateCoordinationContextType createCoordinationContext,
+            final AddressingContext addressingContext)
+        {
+            this.createCoordinationContext = createCoordinationContext ;
+            this.addressingContext = addressingContext ;
+        }
+        
+        public CreateCoordinationContextType getCreateCoordinationContext()
+        {
+            return createCoordinationContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationRequesterCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationRequesterCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestActivationRequesterCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterCallback;
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestActivationRequesterCallback extends ActivationRequesterCallback
+{
+    /**
+     * A create coordination context response.
+     * @param createCoordinationContextResponse The response.
+     * @param addressingContext The current addressing context.
+     */
+    public void createCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse,
+        final AddressingContext addressingContext)
+    {
+        throw new RuntimeException("Unexpected create coordination context response") ;
+    }
+
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault response.
+     * @param addressingContext The current addressing context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,105 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wscoor.RegisterType;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+
+public class TestRegistrationCoordinatorProcessor extends
+        RegistrationCoordinatorProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public void register(final RegisterType register, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, new RegisterDetails(register, addressingContext, arjunaContext)) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public RegisterDetails getRegisterDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final RegisterDetails details = (RegisterDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final RegisterDetails details = (RegisterDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+    
+    public static class RegisterDetails
+    {
+        private final RegisterType register ;
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        
+        RegisterDetails(final RegisterType register,
+            final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.register = register ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public RegisterType getRegister()
+        {
+            return register ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationRequesterCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationRequesterCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestRegistrationRequesterCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterCallback;
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestRegistrationRequesterCallback extends RegistrationRequesterCallback
+{
+    /**
+     * A register response.
+     * @param registerResponse The response.
+     * @param addressingContext The current addressing context.
+     */
+    public void registerResponse(final RegisterResponseType registerResponse,
+        final AddressingContext addressingContext)
+    {
+        throw new RuntimeException("Unexpected create coordination context response") ;
+    }
+
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault response.
+     * @param addressingContext The current addressing context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestSuite.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestSuite.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/TestSuite.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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, 2003, Arjuna Technologies Limited.
+ *
+ * TestSuite.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+public class TestSuite extends junit.framework.TestSuite
+{
+    public TestSuite()
+    {
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.ActivationTestCase.class));
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.RegistrationTestCase.class));
+
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.ActivationServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.ActivationServiceExceptionTestCase.class));
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.RegistrationServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.RegistrationServiceExceptionTestCase.class));
+
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.EnduranceTestCase.class));
+        addTest(new junit.framework.TestSuite(com.arjuna.wsc.tests.junit.ThreadedEnduranceTestCase.class));
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ThreadedEnduranceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ThreadedEnduranceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/tests/src/com/arjuna/wsc/tests/junit/ThreadedEnduranceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,369 @@
+/*
+ * 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.
+ *
+ * ThreadedEnduranceTestCase.java
+ */
+
+package com.arjuna.wsc.tests.junit;
+
+import java.util.Random;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CreateCoordinationContextResponseType;
+import com.arjuna.webservices.wscoor.RegisterResponseType;
+import com.arjuna.webservices.wscoor.client.ActivationRequesterClient;
+import com.arjuna.webservices.wscoor.client.RegistrationRequesterClient;
+import com.arjuna.webservices.wscoor.processors.ActivationRequesterProcessor;
+import com.arjuna.webservices.wscoor.processors.RegistrationRequesterProcessor;
+import com.arjuna.wsc.tests.TestUtil;
+
+public class ThreadedEnduranceTestCase extends TestCase
+{
+    private EndpointReferenceType activationCoordinatorService ;
+    private EndpointReferenceType activationRequesterService ;
+    
+    private EndpointReferenceType registrationCoordinatorService ;
+    private EndpointReferenceType registrationRequesterService ;
+    
+    private static final long TEST_DURATION = 60 * 1000;
+    private static final int  TEST_THREADS  = 4;
+
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String activationCoordinatorServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+        activationCoordinatorService = new EndpointReferenceType(new AttributedURIType(activationCoordinatorServiceURI)) ;
+        final String activationRequesterServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_REQUESTER) ;
+        activationRequesterService = new EndpointReferenceType(new AttributedURIType(activationRequesterServiceURI)) ;
+        
+        final String registrationCoordinatorServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+        registrationCoordinatorService = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorServiceURI)) ;
+        final String registrationRequesterServiceURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER) ;
+        registrationRequesterService = new EndpointReferenceType(new AttributedURIType(registrationRequesterServiceURI)) ;
+    }
+
+    public void testCreateCoordinationContextResponse()
+        throws Exception
+    {
+        invoke(0);
+    }
+
+    public void testCreateCoordinationContextError()
+        throws Exception
+    {
+        invoke(1);
+    }
+
+    public void testRegisterResponse()
+        throws Exception
+    {
+        invoke(2);
+    }
+
+    public void testRegisterError()
+        throws Exception
+    {
+        invoke(3);
+    }
+
+    public void invoke(int operation)
+        throws Exception
+    {
+        InvokerThread[] threads = new InvokerThread[TEST_THREADS];
+
+        for (int threadIndex = 0; threadIndex < TEST_THREADS; threadIndex++)
+        {
+            threads[threadIndex] = new InvokerThread(operation, Integer.toString(threadIndex));
+            threads[threadIndex].start();
+        }
+
+        for (int threadIndex = 0; threadIndex < TEST_THREADS; threadIndex++)
+            threads[threadIndex].join();
+
+        for (int threadIndex = 0; threadIndex < TEST_THREADS; threadIndex++)
+            assertFalse(threads[threadIndex].isFailed());
+    }
+
+    private class InvokerThread extends Thread
+    {
+        public InvokerThread(int operation, String dialogIdentifier)
+        {
+            super("JUnit Invoker Thread: " + operation + ", " + dialogIdentifier) ;
+            _operation        = operation;
+            _dialogIdentifier = dialogIdentifier;
+        }
+
+        public void run()
+        {
+            try
+            {
+                long startTime = System.currentTimeMillis();
+
+                if (_operation == 0)
+                {
+                    while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+                        doCreateCoordinationContextResponse(_dialogIdentifier);
+                }
+                else if (_operation == 1)
+                {
+                    while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+                        doCreateCoordinationContextError(_dialogIdentifier);
+                }
+                else if (_operation == 2)
+                {
+                    while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+                        doRegisterResponse(_dialogIdentifier);
+                }
+                else
+                {
+                    while ((System.currentTimeMillis() - startTime) < TEST_DURATION)
+                        doRegisterError(_dialogIdentifier);
+                }
+            }
+            catch (Exception exception)
+            {
+                System.out.print("Exception: ");
+                exception.printStackTrace(System.out);
+                _failed = true;
+            }
+            catch (Error error)
+            {
+                System.out.print("Error: ");
+                error.printStackTrace(System.out);
+                _failed = true;
+            }
+        }
+
+        public boolean isFailed()
+        {
+            return _failed;
+        }
+
+        private boolean _failed           = false;
+        private int     _operation        = 0;
+        private String  _dialogIdentifier = null;
+    }
+
+    public void doCreateCoordinationContextResponse(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doCreateCoordinationContextResponse" + messageId ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final String coordinationType = TestUtil.COORDINATION_TYPE ;
+        final String identifier = TestUtil.PROTOCOL_IDENTIFIER ;
+        final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+        coordinationContext.setCoordinationType(new URI(coordinationType)) ;
+        coordinationContext.setIdentifier(new AttributedURIType(identifier)) ;
+        final EndpointReferenceType registrationService = new EndpointReferenceType(new AttributedURIType("http://www.example.com/registrationService")) ;
+        coordinationContext.setRegistrationService(registrationService) ;
+        
+        final TestActivationRequesterCallback callback = new TestActivationRequesterCallback() {
+            public void createCoordinationContextResponse(final CreateCoordinationContextResponseType createCoordinationContextResponse, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), activationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), activationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                final CoordinationContextType coordinationContext = createCoordinationContextResponse.getCoordinationContext() ;
+                assertNotNull(coordinationContext) ;
+                assertEquals(coordinationType, coordinationContext.getCoordinationType().getValue()) ;
+                assertEquals(identifier, coordinationContext.getIdentifier().getValue()) ;
+                assertEquals(registrationService.getAddress().getValue(), coordinationContext.getRegistrationService().getAddress().getValue()) ;
+            }
+        };
+        final ActivationRequesterProcessor requester = ActivationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        try
+        {
+            ActivationRequesterClient.getClient().sendCreateCoordinationResponse(addressingContext, coordinationContext) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        Thread.sleep(_random.nextInt(6));
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void doCreateCoordinationContextError(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doCreateCoordinationContextError" + messageId ;
+        final String reason = "doCreateCoordinationContextErrorReason" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(activationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestActivationRequesterCallback callback = new TestActivationRequesterCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), activationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), activationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+            }
+        };
+        final ActivationRequesterProcessor requester = ActivationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        
+        try
+        {
+            ActivationRequesterClient.getClient().sendSoapFault(addressingContext, soapFault) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        Thread.sleep(_random.nextInt(6));
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void doRegisterResponse(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doRegisterResponse" + messageId ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final EndpointReferenceType coordinationProtocolService = new EndpointReferenceType(new AttributedURIType(TestUtil.PROTOCOL_COORDINATOR_SERVICE)) ;
+        
+        final TestRegistrationRequesterCallback callback = new TestRegistrationRequesterCallback() {
+            public void registerResponse(final RegisterResponseType registerResponse, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), registrationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), registrationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(coordinationProtocolService.getAddress().getValue(),
+                    registerResponse.getCoordinatorProtocolService().getAddress().getValue()) ;
+            } 
+        } ;
+        
+        final RegistrationRequesterProcessor requester = RegistrationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        try
+        {
+            RegistrationRequesterClient.getClient().sendRegisterResponse(addressingContext, coordinationProtocolService) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        Thread.sleep(_random.nextInt(6));
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void doRegisterError(final String messageId)
+        throws Exception
+    {
+        final String relatesTo = "doRegisterError" + messageId ;
+        final String reason = "doRegisterErrorReason" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(registrationRequesterService, messageId) ;
+        addressingContext.addRelatesTo(new RelationshipType(relatesTo)) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestRegistrationRequesterCallback callback = new TestRegistrationRequesterCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), registrationRequesterService.getAddress().getValue());
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), registrationCoordinatorService.getAddress().getValue());
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+            }
+        };
+        final RegistrationRequesterProcessor requester = RegistrationRequesterProcessor.getRequester() ;
+        requester.registerCallback(relatesTo, callback) ;
+        
+        try
+        {
+            RegistrationRequesterClient.getClient().sendSoapFault(addressingContext, soapFault) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            requester.removeCallback(relatesTo) ;
+        }
+        
+        Thread.sleep(_random.nextInt(6));
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        activationCoordinatorService = null ;
+        activationRequesterService = null ;
+        registrationCoordinatorService = null ;
+        registrationRequesterService = null ;
+    }
+    
+    private Random                  _random                            = new Random();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,226 @@
+<!--
+  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.             -->
+<!--                                                                        -->
+<!--                       Web service - Transaction                        -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<project name="WebServicesTransaction" default="dev-webapps" basedir=".">
+
+    <!-- ================================================================== -->
+
+    <property name="deploy.dir"              value="c:/jwsdp-1.0"/>
+    <property name="hostname" value="localhost"/>
+    <property name="port" value="8080"/>
+    <property name="ws-c.home"               value="../WS-C"/>
+
+    <!-- ================================================================== -->
+
+    <property name="build.dir"               value="build"/>
+    <property name="dev.src.dir"             value="dev/src"/>
+    <property name="dev.dd.dir"              value="dev/dd"/>
+    <property name="tests.src.dir"           value="tests/src"/>
+    <property name="tests.dd.dir"            value="tests/dd"/>
+    <property name="build.dev.classes.dir"   value="${build.dir}/dev/classes"/>
+    <property name="build.dev.lib.dir"       value="${build.dir}/dev/lib"/>
+    <property name="build.dev.dd.dir"        value="${build.dir}/dev/dd"/>
+    <property name="build.dev.webapps.dir"   value="${build.dir}/dev/webapps"/>
+    <property name="build.tests.classes.dir" value="${build.dir}/tests/classes"/>
+    <property name="build.tests.lib.dir"     value="${build.dir}/tests/lib"/>
+    <property name="build.tests.dd.dir"      value="${build.dir}/tests/dd"/>
+    <property name="build.tests.webapps.dir" value="${build.dir}/tests/webapps"/>
+
+    <property name="com.arjuna.buildsystem.dir" location="../../antbuildsystem"/>
+    <property name="com.arjuna.jta.install" location="../../install"/>
+
+    <property name="com.arjuna.buildsystem.lib" location="${com.arjuna.buildsystem.dir}/build/lib"/>
+    <property name="com.arjuna.jta.install.lib" location="${com.arjuna.jta.install}/lib"/>
+    <property name="com.arjuna.jta.install.ext" location="${com.arjuna.jta.install.lib}/ext"/>
+    <property name="com.arjuna.xts.ext" location="../ext"/>
+
+    <property name="ws-c.build.dev.lib.dir"  value="${ws-c.home}/build/dev/lib"/>
+
+    <property name="com.arjuna.buildsystem.lib.jars" value="buildsystem.jar"/>
+
+    <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.compile.jars" value="servlet.jar"/>
+
+    <property name="tests.libs"              value="junit.jar"/>
+    <property name="ws-c.libs"               value="ws-c.jar"/>
+
+    <property name="javac.debug"             value="on"/>
+    <property name="javac.optimize"          value="off"/>
+
+    <path id="ws-c.path">
+        <fileset dir="${ws-c.build.dev.lib.dir}" includes="${ws-c.libs}"/>
+    </path>
+
+    <path id="lib.ext.path">
+        <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}"/>
+    </path>
+
+    <path id="tests.lib.path">
+        <fileset dir="${com.arjuna.xts.ext}" includes="${tests.libs}"/>
+    </path>
+
+	<!-- name of the resource bundle -->
+    <property name="com.arjuna.mwlabs.wst.resourcebundle"
+	      value="wst_msg_en_US.properties"/>
+    <!-- Define classpath builder task -->
+    <path id="com.arjuna.buildsystem.classpath">
+        <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
+    </path>
+    <property name="com.arjuna.buildsystem.classpath" refid="com.arjuna.buildsystem.classpath"/>
+	<taskdef name="classpath-builder" classname="com.hp.mw.buildsystem.ant.ClasspathBuilder" classpathref="com.arjuna.buildsystem.classpath"/>
+	<!-- class path behaviour -->
+	<property name="build.sysclasspath" value="last"/>
+	<property name="com.arjuna.mwlabs.classpathbuilderfilename" location="buildsystem.classpath"/>
+
+    <target name="clean">
+        <delete dir="${build.dir}"/>
+        <delete>
+            <fileset dir="." includes="**/*.bak" defaultexcludes="no"/>
+            <fileset dir="." includes="**/*~"    defaultexcludes="no"/>
+            <fileset dir="." includes="**/#*#"   defaultexcludes="no"/>
+            <fileset dir="." includes="**/.#*"   defaultexcludes="no"/>
+        </delete>
+    </target>
+
+    <target name="init" depends="clean,init-dir"/>
+
+    <target name="init-dir">
+        <mkdir dir="${build.dir}"/>
+        <mkdir dir="${build.dev.classes.dir}"/>
+        <mkdir dir="${build.dev.lib.dir}"/>
+        <mkdir dir="${build.dev.dd.dir}"/>
+        <mkdir dir="${build.dev.webapps.dir}"/>
+        <mkdir dir="${build.tests.classes.dir}"/>
+        <mkdir dir="${build.tests.lib.dir}"/>
+        <mkdir dir="${build.tests.dd.dir}"/>
+        <mkdir dir="${build.tests.webapps.dir}"/>
+    </target>
+
+    <target name="dev-compile" depends="init">
+        <javac destdir="${build.dev.classes.dir}" debug="${javac.debug}" optimize="${javac.optimize}">
+            <classpath>
+                <path refid="lib.ext.path"/>
+                <path refid="ws-c.path"/>
+            </classpath>
+            <src path="${dev.src.dir}"/>
+        </javac>
+    </target>
+
+    <target name="dev-resourcebundle">
+        <echo message="Generating WS-T Bundle"/>
+
+        <classpath-builder filename="${com.arjuna.mwlabs.classpathbuilderfilename}" inproperty="build.classpath"/>
+
+        <javadoc    sourcepath="${dev.src.dir}"
+                    packagenames="com.arjuna.*"
+                    failonerror="yes"
+                    private="yes"
+                    defaultexcludes="yes"
+                    classpath="${build.classpath}">
+
+             <doclet name="com.hp.mw.buildsystem.doclet.resbundledoclet.ResourceBundleDoclet">
+                <path>
+                    <pathelement path="${com.arjuna.buildsystem.classpath}"/>
+                </path>
+                <param name="-basedir" value="${basedir}/${build.dev.classes.dir}"/>
+                <param name="-resourcebundle" value="${com.arjuna.mwlabs.wst.resourcebundle}"/>
+             </doclet>
+        </javadoc>
+    </target>
+
+    <target name="dev-jars" depends="dev-compile, dev-resourcebundle" >
+        <jar jarfile="${build.dev.lib.dir}/ws-t.jar">
+            <fileset dir="${build.dev.classes.dir}"/>
+            <manifest>
+                <attribute name="Class-Path" value="${ws-c.libs}"/>
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="dev-webapps" depends="dev-jars">
+        <copy file="${dev.dd.dir}/ws-t_web-app.xml" tofile="${build.dev.dd.dir}/web-app.xml">
+            <filterset>
+                <filter token="hostname" value="${hostname}"/>
+                <filter token="port" value="${port}"/>
+            </filterset>
+        </copy>
+        <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>
+    </target>
+
+    <target name="tests-compile" depends="dev-webapps">
+        <javac destdir="${build.tests.classes.dir}" debug="${javac.debug}" optimize="${javac.optimize}">
+            <classpath>
+                <pathelement path="${build.dev.lib.dir}/ws-t.jar"/>
+                <path refid="tests.lib.path"/>
+                <path refid="lib.ext.path"/>
+                <path refid="ws-c.path"/>
+            </classpath>
+            <src path="${tests.src.dir}"/>
+        </javac>
+    </target>
+
+    <target name="tests-webapps" depends="tests-compile">
+        <copy file="${tests.dd.dir}/ws-t-tests_web-app.xml" tofile="${build.tests.dd.dir}/web-app.xml">
+            <filterset>
+                <filter token="hostname" value="${hostname}"/>
+                <filter token="port" value="${port}"/>
+            </filterset>
+        </copy>
+        <war warfile="${build.tests.webapps.dir}/ws-t-tests.war" webxml="${build.tests.dd.dir}/web-app.xml">
+            <manifest>
+                <attribute name="Class-Path" value="ws-t.jar ${tests.libs}"/>
+            </manifest>
+            <classes dir="${build.tests.classes.dir}"/>
+        </war>
+        <ear earfile="${build.tests.webapps.dir}/ws-t-tests.ear" appxml="${tests.dd.dir}/ws-t-tests_application.xml">
+            <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars}"/>
+            <fileset dir="${com.arjuna.xts.ext}" includes="${xts.ext.jars} ${tests.libs}"/>
+            <fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
+            <fileset dir="${build.dev.lib.dir}" includes="ws-t.jar"/>
+            <fileset dir="${build.tests.webapps.dir}" includes="ws-t-tests.war"/>
+            <fileset dir="${ws-c.build.dev.lib.dir}" includes="${ws-c.libs}"/>
+        </ear>
+    </target>
+
+    <target name="tests-deploy" depends="tests-webapps, tests-undeploy">
+        <copy file="${build.tests.webapps.dir}/ws-t-tests.ear" tofile="${deploy.dir}/ws-t-tests.ear"/>
+    </target>
+
+    <target name="tests-undeploy">
+        <delete file="${deploy.dir}/ws-t-tests.ear"/>
+    </target>
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<!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</display-name>
+
+    <description>Arjuna Web Services Transaction</description>
+
+    <!-- Initialise Arjuna TX services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationCoordinatorInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-AT services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionInitiatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.ParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-BA services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-T  -->
+    <listener>
+        <listener-class>com.arjuna.wst.messaging.deploy.TransactionInitialisation</listener-class>
+    </listener>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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) 2005,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: WSTLogger.java,v 1.1.2.1 2005/11/22 10:35:00 kconner Exp $
+ */
+
+package com.arjuna.webservices.logging;
+
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
+import com.arjuna.common.util.logging.LogFactory;
+import com.arjuna.common.util.logging.LogNoi18n;
+import com.arjuna.common.util.logging.Logi18n;
+
+public class WSTLogger
+{
+    public static LogNoi18n      arjLogger;
+    public static Logi18n        arjLoggerI18N;
+    public static ResourceBundle log_mesg;
+
+    static
+    {
+        /** Ensure the properties are loaded before initialising the logger **/
+        arjPropertyManager.getPropertyManager();
+            
+    	arjLogger = LogFactory.getLogNoi18n("com.arjuna.webservices.logging.WSTLogger");
+    
+        final String language = commonPropertyManager.propertyManager.getProperty("language","en");
+        final String country  = commonPropertyManager.propertyManager.getProperty("country","US");
+    
+    	final Locale currentLocale = new Locale(language, country);
+    	log_mesg = ResourceBundle.getBundle("wst_msg",currentLocale);
+    	
+    	arjLoggerI18N = LogFactory.getLogi18n("com.arjuna.webservices.logging.WSTLoggerI18N",
+    					     "wst_msg_"+language+"_"+country);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,193 @@
+/*
+ * 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 ArjunaTXConstants
+{
+    /**
+     * The termination coordinator service name.
+     */
+    public String SERVICE_TERMINATION_COORDINATOR = "TerminationCoordinator" ;
+    /**
+     * The termination participant service name.
+     */
+    public String SERVICE_TERMINATION_PARTICIPANT = "TerminationParticipant" ;
+    
+    /**
+     * 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 TerminationService element.
+     */
+    public String WSARJTX_ELEMENT_TERMINATION_SERVICE = "TerminationService" ;
+    /**
+     * The TerminationService QName.
+     */
+    public QName WSARJTX_ELEMENT_TERMINATION_SERVICE_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_TERMINATION_SERVICE, WSARJTX_PREFIX) ;
+
+    /**
+     * The Complete element.
+     */
+    public String WSARJTX_ELEMENT_COMPLETE = "Complete" ;
+    /**
+     * The Complete QName.
+     */
+    public QName WSARJTX_ELEMENT_COMPLETE_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_COMPLETE, WSARJTX_PREFIX) ;
+    /**
+     * The Complete Action.
+     */
+    public String WSARJTX_ACTION_COMPLETE = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_COMPLETE ;
+    /**
+     * The Completed element.
+     */
+    public String WSARJTX_ELEMENT_COMPLETED = "Completed" ;
+    /**
+     * The Completed QName.
+     */
+    public QName WSARJTX_ELEMENT_COMPLETED_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_COMPLETED, WSARJTX_PREFIX) ;
+    /**
+     * The Completed Action.
+     */
+    public String WSARJTX_ACTION_COMPLETED = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_COMPLETED ;
+    /**
+     * The Faulted element.
+     */
+    public String WSARJTX_ELEMENT_FAULTED = "Faulted" ;
+    /**
+     * The Faulted QName.
+     */
+    public QName WSARJTX_ELEMENT_FAULTED_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_FAULTED, WSARJTX_PREFIX) ;
+    /**
+     * The Faulted Action.
+     */
+    public String WSARJTX_ACTION_FAULTED = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_FAULTED ;
+    /**
+     * The Close element.
+     */
+    public String WSARJTX_ELEMENT_CLOSE = "Close" ;
+    /**
+     * The Close QName.
+     */
+    public QName WSARJTX_ELEMENT_CLOSE_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_CLOSE, WSARJTX_PREFIX) ;
+    /**
+     * The Close Action.
+     */
+    public String WSARJTX_ACTION_CLOSE = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_CLOSE ;
+    /**
+     * The Closed element.
+     */
+    public String WSARJTX_ELEMENT_CLOSED = "Closed" ;
+    /**
+     * The Closed QName.
+     */
+    public QName WSARJTX_ELEMENT_CLOSED_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_CLOSED, WSARJTX_PREFIX) ;
+    /**
+     * The Closed Action.
+     */
+    public String WSARJTX_ACTION_CLOSED = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_CLOSED ;
+    /**
+     * The Cancel element.
+     */
+    public String WSARJTX_ELEMENT_CANCEL = "Cancel" ;
+    /**
+     * The Cancel QName.
+     */
+    public QName WSARJTX_ELEMENT_CANCEL_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_CANCEL, WSARJTX_PREFIX) ;
+    /**
+     * The Cancel Action.
+     */
+    public String WSARJTX_ACTION_CANCEL = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_CANCEL ;
+    /**
+     * The Cancelled element.
+     */
+    public String WSARJTX_ELEMENT_CANCELLED = "Cancelled" ;
+    /**
+     * The Cancelled QName.
+     */
+    public QName WSARJTX_ELEMENT_CANCELLED_QNAME = new QName(WSARJTX_NAMESPACE, WSARJTX_ELEMENT_CANCELLED, WSARJTX_PREFIX) ;
+    /**
+     * The Cancelled Action.
+     */
+    public String WSARJTX_ACTION_CANCELLED = WSARJTX_NAMESPACE + "/" + WSARJTX_ELEMENT_CANCELLED ;
+    
+    /**
+     * The SOAP Fault Action.
+     */
+    public String WSARJTX_ACTION_SOAP_FAULT = WSARJTX_NAMESPACE + "/soapFault" ;
+
+    
+    /**
+     * The unknown transaction error code.
+     */
+    public static final String UNKNOWNTRANSACTION_ERROR_CODE = "UnknownTransaction";
+    /**
+     * The unknown transaction error code.
+     */
+    public static final QName  UNKNOWNTRANSACTION_ERROR_CODE_QNAME = new QName(WSARJTX_NAMESPACE, UNKNOWNTRANSACTION_ERROR_CODE, WSARJTX_PREFIX);
+    /**
+     * The transaction rolled back error code.
+     */
+    public static final String TRANSACTIONROLLEDBACK_ERROR_CODE = "TransactionRolledBack";
+    /**
+     * The transaction rolled back error code.
+     */
+    public static final QName  TRANSACTIONROLLEDBACK_ERROR_CODE_QNAME = new QName(WSARJTX_NAMESPACE, TRANSACTIONROLLEDBACK_ERROR_CODE, WSARJTX_PREFIX);
+    /**
+     * The wrong state error code.
+     */
+    public static final String WRONGSTATE_ERROR_CODE         = "WrongState";
+    /**
+     * The wrong state error code.
+     */
+    public static final QName  WRONGSTATE_ERROR_CODE_QNAME = new QName(WSARJTX_NAMESPACE, WRONGSTATE_ERROR_CODE, WSARJTX_PREFIX);
+    /**
+     * The unknown error error code.
+     */
+    public static final String UNKNOWNERROR_ERROR_CODE       = "UnknownError";
+    /**
+     * The unknown error error code.
+     */
+    public static final QName  UNKNOWNERROR_ERROR_CODE_QNAME = new QName(WSARJTX_NAMESPACE, UNKNOWNERROR_ERROR_CODE, WSARJTX_PREFIX);
+    
+    /**
+     * The termination protocol.
+     */
+    public String WSARJTX_PROTOCOL_TERMINATION = WSARJTX_NAMESPACE + "/BATermination";
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/NotificationType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Notification type.
+ * @author kevin
+ */
+public class NotificationType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Default constructor.
+     */
+    public NotificationType()
+    {
+    }
+    
+    /**
+     * Construct a notification from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public NotificationType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,181 @@
+/*
+ * 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 java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+
+/**
+ * The Client side of the Terminator Participant.
+ * @author kevin
+ */
+public class TerminationCoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final TerminationCoordinatorClient CLIENT = new TerminationCoordinatorClient() ;
+    
+    /**
+     * The complete action.
+     */
+    private final AttributedURIType completeAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_COMPLETE) ;
+    /**
+     * The close action.
+     */
+    private final AttributedURIType closeAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_CLOSE) ;
+    /**
+     * The cancel action.
+     */
+    private final AttributedURIType cancelAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_CANCEL) ;
+    /**
+     * The SOAP fault action.
+     */
+    private final AttributedURIType soapFaultAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_SOAP_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The termination participant URI for replies.
+     */
+    private final AttributedURIType terminationParticipant ;
+    
+    /**
+     * Construct the terminator participant client.
+     */
+    private TerminationCoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String terminationParticipantURI =
+            SoapRegistry.getRegistry().getServiceURI(ArjunaTXConstants.SERVICE_TERMINATION_PARTICIPANT) ;
+        terminationParticipant = new AttributedURIType(terminationParticipantURI) ;
+    }
+    
+    /**
+     * Send a complete request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendComplete(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_COMPLETE_QNAME,
+            completeAction) ;
+    }
+    
+    /**
+     * Send a close request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendClose(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_CLOSE_QNAME,
+            closeAction) ;
+    }
+    
+    /**
+     * Send a cancel request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCancel(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_CANCEL_QNAME,
+            cancelAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendSoapFault(soapFault, addressingContext, soapService, endpointReference, soapFaultAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType terminationParticipantEndpoint = new EndpointReferenceType(terminationParticipant) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(terminationParticipantEndpoint, identifier) ;
+        return terminationParticipantEndpoint ;
+    }
+    
+    /**
+     * Get the Terminator Participant client singleton.
+     * @return The Terminator Participant client singleton.
+     */
+    public static TerminationCoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsarjtx.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+
+/**
+ * The Client side of the Terminator Coordinator.
+ * @author kevin
+ */
+public class TerminationParticipantClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final TerminationParticipantClient CLIENT = new TerminationParticipantClient() ;
+    
+    /**
+     * The completed action.
+     */
+    private final AttributedURIType completedAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_COMPLETED) ;
+    /**
+     * The closed action.
+     */
+    private final AttributedURIType closedAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_CLOSED) ;
+    /**
+     * The cancelled action.
+     */
+    private final AttributedURIType cancelledAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_CANCELLED) ;
+    /**
+     * The faulted action.
+     */
+    private final AttributedURIType faultedAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_FAULTED) ;
+    /**
+     * The SOAP fault action.
+     */
+    private final AttributedURIType soapFaultAction =
+        new AttributedURIType(ArjunaTXConstants.WSARJTX_ACTION_SOAP_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The termination coordinator URI for replies.
+     */
+    private final AttributedURIType terminationCoordinator ;
+    
+    /**
+     * Construct the terminator coordinator client.
+     */
+    private TerminationParticipantClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String terminationCoordinatorURI =
+            SoapRegistry.getRegistry().getServiceURI(ArjunaTXConstants.SERVICE_TERMINATION_COORDINATOR) ;
+        terminationCoordinator = new AttributedURIType(terminationCoordinatorURI) ;
+    }
+    
+    /**
+     * Send a completed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompleted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_COMPLETED_QNAME,
+            completedAction) ;
+    }
+    
+    /**
+     * Send a closed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendClosed(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_CLOSED_QNAME,
+            closedAction) ;
+    }
+    
+    /**
+     * Send a cancelled request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCancelled(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_CANCELLED_QNAME,
+            cancelledAction) ;
+    }
+    
+    /**
+     * Send a faulted request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendFaulted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, ArjunaTXConstants.WSARJTX_ELEMENT_FAULTED_QNAME,
+            faultedAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendSoapFault(soapFault, addressingContext, soapService, endpointReference, soapFaultAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType terminatorParticipantEndpoint = new EndpointReferenceType(terminationCoordinator) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(terminatorParticipantEndpoint, identifier) ;
+        return terminatorParticipantEndpoint ;
+    }
+    
+    /**
+     * Get the Terminator Coordinator client singleton.
+     * @return The Terminator Coordinator client singleton.
+     */
+    public static TerminationParticipantClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCancelHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCancelHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCancelHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+
+/**
+ * The terminator participant cancel handler.
+ * @author kevin
+ */
+public class TerminationCoordinatorCancelHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType cancel = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationCoordinatorProcessor.getProcessor().cancel(cancel, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCloseHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCloseHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCloseHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+
+/**
+ * The terminator participant close handler.
+ * @author kevin
+ */
+public class TerminationCoordinatorCloseHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType close = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationCoordinatorProcessor.getProcessor().close(close, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCompleteHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCompleteHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationCoordinatorCompleteHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+
+/**
+ * The terminator participant complete handler.
+ * @author kevin
+ */
+public class TerminationCoordinatorCompleteHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType complete = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationCoordinatorProcessor.getProcessor().complete(complete, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCancelledHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCancelledHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCancelledHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessor;
+
+/**
+ * The participant manager coordinator cancelled handler.
+ * @author kevin
+ */
+public class TerminationParticipantCancelledHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType cancelled = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessor.getProcessor().handleCancelled(cancelled, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantClosedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantClosedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantClosedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessor;
+
+/**
+ * The participant manager coordinator complete handler.
+ * @author kevin
+ */
+public class TerminationParticipantClosedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType complete = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessor.getProcessor().handleClosed(complete, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCompletedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCompletedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantCompletedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessor;
+
+/**
+ * The participant manager coordinator completed handler.
+ * @author kevin
+ */
+public class TerminationParticipantCompletedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType completed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessor.getProcessor().handleCompleted(completed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantFaultedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantFaultedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantFaultedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsarjtx.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessor;
+
+/**
+ * The participant manager coordinator faulted handler.
+ * @author kevin
+ */
+public class TerminationParticipantFaultedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType faulted = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessor.getProcessor().handleFaulted(faulted, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/handlers/TerminationParticipantSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessor;
+
+/**
+ * The terminator SOAP fault handler.
+ * @author kevin
+ */
+public class TerminationParticipantSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context. 
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessor.getProcessor().handleSoapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationCoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationCoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationCoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.base.handlers.LoggingFaultHandler;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationCoordinatorCancelHandler;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationCoordinatorCloseHandler;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationCoordinatorCompleteHandler;
+
+/**
+ * Policy responsible for binding in the terminator participant body handlers.
+ * @author kevin
+ */
+public class TerminationCoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CLOSE_QNAME, new TerminationCoordinatorCloseHandler()) ;
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CANCEL_QNAME, new TerminationCoordinatorCancelHandler()) ;
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_COMPLETE_QNAME, new TerminationCoordinatorCompleteHandler()) ;
+        registry.registerFaultHandler(new LoggingFaultHandler(ArjunaTXConstants.SERVICE_TERMINATION_COORDINATOR)) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_COMPLETE_QNAME) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CANCEL_QNAME) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CLOSE_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationParticipantPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationParticipantPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/policy/TerminationParticipantPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationParticipantCancelledHandler;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationParticipantClosedHandler;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationParticipantCompletedHandler;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationParticipantFaultedHandler;
+import com.arjuna.webservices.wsarjtx.handlers.TerminationParticipantSoapFaultHandler;
+
+/**
+ * Policy responsible for binding in the terminator coordinator body handlers.
+ * @author kevin
+ */
+public class TerminationParticipantPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CLOSED_QNAME, new TerminationParticipantClosedHandler()) ;
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CANCELLED_QNAME, new TerminationParticipantCancelledHandler()) ;
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_COMPLETED_QNAME, new TerminationParticipantCompletedHandler()) ;
+        registry.registerBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_FAULTED_QNAME, new TerminationParticipantFaultedHandler()) ;
+        registry.registerFaultHandler(new TerminationParticipantSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_FAULTED_QNAME) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_COMPLETED_QNAME) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CANCELLED_QNAME) ;
+        registry.removeBodyHandler(ArjunaTXConstants.WSARJTX_ELEMENT_CLOSED_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsarjtx.processors;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.wst.BusinessActivityTerminator;
+
+/**
+ * The Terminator Participant processor.
+ * @author kevin
+ */
+public abstract class TerminationCoordinatorProcessor
+{
+    /**
+     * The participant processor.
+     */
+    private static TerminationCoordinatorProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static TerminationCoordinatorProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+    
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static TerminationCoordinatorProcessor setProcessor(final TerminationCoordinatorProcessor processor)
+    {
+        final TerminationCoordinatorProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final BusinessActivityTerminator participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final BusinessActivityTerminator participant) ;
+    
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancel(final NotificationType cancel, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void close(final NotificationType close, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void complete(final NotificationType complete, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsarjtx.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+
+/**
+ * The Terminator Coordinator callback.
+ * @author kevin
+ */
+public abstract class TerminationParticipantCallback extends Callback
+{
+    /**
+     * A cancelled response.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancelled(final NotificationType cancelled, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * A closed response.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void closed(final NotificationType closed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * A completed response.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * A faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void faulted(final NotificationType faulted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices.wsarjtx.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.processor.BaseNotificationProcessor;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+
+/**
+ * The Terminator Coordinator processor.
+ * @author kevin
+ */
+public class TerminationParticipantProcessor extends BaseNotificationProcessor
+{
+    /**
+     * The coordinator processor.
+     */
+    private static final TerminationParticipantProcessor PROCESSOR = new TerminationParticipantProcessor() ;
+    
+    /**
+     * Get the processor singleton.
+     * @return The singleton.
+     */
+    public static TerminationParticipantProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Handle a cancelled response.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleCancelled(final NotificationType cancelled, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallback)callback).cancelled(cancelled, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, arjunaContext)) ;
+    }
+    
+    /**
+     * Handle a closed response.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleClosed(final NotificationType closed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallback)callback).closed(closed, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, arjunaContext)) ;
+    }
+    
+    /**
+     * Handle a completed response.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleCompleted(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallback)callback).completed(completed, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, arjunaContext)) ;
+    }
+    
+    /**
+     * Handle a faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleFaulted(final NotificationType faulted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallback)callback).faulted(faulted, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, arjunaContext)) ;
+    }
+    
+    /**
+     * Handle a SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleSoapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallback)callback).soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, 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 TerminationParticipantCallback callback)
+    {
+        register(instanceIdentifier, callback) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.TerminationCoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Terminator Participant service
+ * @author kevin
+ */
+public class TerminationCoordinatorInitialisation 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 participant.
+               TerminationCoordinatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(ArjunaTXConstants.SERVICE_TERMINATION_COORDINATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-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	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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 TerminationParticipantInitialisation 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)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,206 @@
+/*
+ * 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 javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-AtomicTransaction constants.
+ */
+public interface AtomicTransactionConstants
+{
+    /**
+     * The completion coordinator service name.
+     */
+    public String SERVICE_COMPLETION_COORDINATOR = "ATCompletionCoordinator" ;
+    /**
+     * The completion initiator service name.
+     */
+    public String SERVICE_COMPLETION_INITIATOR = "ATCompletionInitiator" ;
+    /**
+     * The coordinator service name.
+     */
+    public String SERVICE_COORDINATOR = "ATCoordinator" ;
+    /**
+     * The participant service name.
+     */
+    public String SERVICE_PARTICIPANT = "ATParticipant" ;
+    /**
+     * The Namespace.
+     */
+    public String WSAT_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/10/wsat" ;
+    /**
+     * 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 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 Replay element.
+     */
+    public String WSAT_ELEMENT_REPLAY = "Replay" ;
+    /**
+     * The Replay QName.
+     */
+    public QName WSAT_ELEMENT_REPLAY_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_REPLAY, WSAT_PREFIX) ;
+    /**
+     * The Replay Action.
+     */
+    public String WSAT_ACTION_REPLAY = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_REPLAY ;
+    /**
+     * 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/CoordinatorInboundEvents.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEvents.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEvents.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+
+
+/**
+ * The Coordinator events.
+ */
+public interface CoordinatorInboundEvents
+{
+    /**
+     * Handle the aborted event.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void aborted(final NotificationType aborted, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the committed event.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void committed(final NotificationType committed, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the prepared event.
+     * @param prepared The prepared notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void prepared(final NotificationType prepared, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the readOnly event.
+     * @param readOnly The readOnly notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void readOnly(final NotificationType readOnly, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the replay event.
+     * @param replay The replay notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void replay(final NotificationType aborted, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/NotificationType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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 javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Notification type.
+ * @author kevin
+ */
+public class NotificationType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Default constructor.
+     */
+    public NotificationType()
+    {
+    }
+    
+    /**
+     * Construct a notification from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public NotificationType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Outcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Outcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Outcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,114 @@
+/*
+ * 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;
+
+/*
+ * <xsd:simpleType name="Outcome">
+ *   <xsd:restriction base="xsd:string">
+ *     <xsd:enumeration value="Commit"/>
+ *     <xsd:enumeration value="Rollback"/>
+ *   </xsd:restriction>
+ * </xsd:simpleType>
+ */
+/**
+ * Class representing outcome enumerations.
+ * @author kevin
+ */
+public class Outcome extends Enumerated
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+    
+    /**
+     * The commit outcome.
+     */
+    public static final Outcome OUTCOME_COMMIT = new Outcome("Commit") ;
+    /**
+     * The rollback outcome.
+     */
+    public static final Outcome OUTCOME_ROLLBACK = new Outcome("Rollback") ;
+    
+    /**
+     * The map of enumerations.
+     */
+    private static final Map ENUM_MAP = generateMap(new Enumerated[] {
+        OUTCOME_COMMIT, OUTCOME_ROLLBACK
+    }) ;
+    
+    /**
+     * Construct the outcome enumeration with the specified value.
+     * @param value The value of the enumeration.
+     */
+    private Outcome(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 InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toOutcome((String)value) ;
+    }
+
+    /**
+     * Return the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the value is not valid.
+     * 
+     * @message com.arjuna.webservices.wsat.Outcome_1 [com.arjuna.webservices.wsat.Outcome_1] - Invalid outcome enumeration: {0}
+     */
+    public static Outcome toOutcome(final String value)
+        throws InvalidEnumerationException
+    {
+        final Object outcome = ENUM_MAP.get(value) ;
+        if (outcome == null)
+        {
+            final String pattern = WSTLogger.log_mesg.getString("com.arjuna.webservices.wsat.Outcome_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (Outcome)outcome ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEvents.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEvents.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEvents.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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 com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+
+
+/**
+ * The Participant events.
+ */
+public interface ParticipantInboundEvents
+{
+    /**
+     * Handle the commit event.
+     * @param commit The commit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void commit(final NotificationType commit, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the prepare event.
+     * @param prepare The prepare notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void prepare(final NotificationType prepare, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the rollback event.
+     * @param rollback The rollback notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void rollback(final NotificationType rollback, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/PrepareResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/PrepareResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/PrepareResponseType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,146 @@
+/*
+ * 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 javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.util.InvalidEnumerationException;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xsd:element name="PrepareResponse">
+ *   <xsd:complexType>
+ *     <xsd:attribute name="vote" type="wsat:Vote"/>
+ *   </xsd:complexType>
+ * </xsd:element>
+ */
+/**
+ * Representation of the PrepareResponse element.
+ * @author kevin
+ */
+public class PrepareResponseType extends ElementContent
+{
+    /**
+     * The value of the vote.
+     */
+    private Vote vote ;
+    
+    /**
+     * Default constructor.
+     */
+    public PrepareResponseType()
+    {
+    }
+    
+    /**
+     * Construct the PrepareResponse from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public PrepareResponseType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsat.PrepareResponseType_1 [com.arjuna.webservices.wsat.PrepareResponseType_1] - PrepareResponse elements cannot have embedded elements.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSTLogger.log_mesg.getString("com.arjuna.webservices.wsat.PrepareResponseType_1")) ;
+    }
+    
+    /**
+     * Add the attribute value.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+        if (AtomicTransactionConstants.WSAT_ATTRIBUTE_NAMESPACE.equals(attributeName.getNamespaceURI()) &&
+            AtomicTransactionConstants.WSAT_ATTRIBUTE_VOTE.equals(attributeName.getLocalPart()))
+        {
+            try
+            {
+                setVote(Vote.toVote(attributeValue)) ;
+            }
+            catch (final InvalidEnumerationException iee)
+            {
+                throw new XMLStreamException(iee) ;
+            }
+        }
+        else
+        {
+            super.putAttribute(in, attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Set the vote of this element.
+     * @param vote The vote of the element.
+     */
+    public void setVote(final Vote vote)
+    {
+        this.vote = vote ;
+    }
+    
+    /**
+     * Get the vote of this element.
+     * @return The vote of the element or null if not set.
+     */
+    public Vote getVote()
+    {
+        return vote ;
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeAttribute(out, AtomicTransactionConstants.WSAT_ATTRIBUTE_VOTE_QNAME, vote.getValue()) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (vote != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ReplayResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ReplayResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ReplayResponseType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,146 @@
+/*
+ * 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 javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.util.InvalidEnumerationException;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xsd:element name="ReplayResponse">
+ *   <xsd:complexType>
+ *     <xsd:attribute name="outcome" type="wsat:Outcome"/>
+ *   </xsd:complexType>
+ * </xsd:element>
+ */
+/**
+ * Representation of the ReplayResponse element.
+ * @author kevin
+ */
+public class ReplayResponseType extends ElementContent
+{
+    /**
+     * The value of the outcome.
+     */
+    private Outcome outcome ;
+    
+    /**
+     * Default constructor.
+     */
+    public ReplayResponseType()
+    {
+    }
+    
+    /**
+     * Construct the ReplayResponse from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public ReplayResponseType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsat.ReplayResponseType_1 [com.arjuna.webservices.wsat.ReplayResponseType_1] - ReplayResponse elements cannot have embedded elements.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSTLogger.log_mesg.getString("com.arjuna.webservices.wsat.ReplayResponseType_1")) ;
+    }
+    
+    /**
+     * Add the attribute value.
+     * @param in The current input stream.
+     * @param attributeName The qualified attribute name.
+     * @param attributeValue The qualified attibute value.
+     */
+    protected void putAttribute(final XMLStreamReader in,
+        final QName attributeName, final String attributeValue)
+        throws XMLStreamException
+    {
+        if (AtomicTransactionConstants.WSAT_ATTRIBUTE_NAMESPACE.equals(attributeName.getNamespaceURI()) &&
+            AtomicTransactionConstants.WSAT_ATTRIBUTE_OUTCOME.equals(attributeName.getLocalPart()))
+        {
+            try
+            {
+                setOutcome(Outcome.toOutcome(attributeValue)) ;
+            }
+            catch (final InvalidEnumerationException iee)
+            {
+                throw new XMLStreamException(iee) ;
+            }
+        }
+        else
+        {
+            super.putAttribute(in, attributeName, attributeValue) ;
+        }
+    }
+    
+    /**
+     * Set the outcome of this element.
+     * @param outcome The outcome of the element.
+     */
+    public void setOutcome(final Outcome outcome)
+    {
+        this.outcome = outcome ;
+    }
+    
+    /**
+     * Get the outcome of this element.
+     * @return The outcome of the element or null if not set.
+     */
+    public Outcome getOutcome()
+    {
+        return outcome ;
+    }
+    
+    /**
+     * Write the attributes of the element.
+     * @param out The output stream.
+     */
+    protected void writeAttributes(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeAttribute(out, AtomicTransactionConstants.WSAT_ATTRIBUTE_OUTCOME_QNAME, outcome.getValue()) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (outcome != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/State.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/State.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/State.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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 State extends Enumerated
+{
+    /**
+     * The Active state.
+     */
+    public static final State STATE_ACTIVE = new State("Active") ;
+    /**
+     * The Preparing state.
+     */
+    public static final State STATE_PREPARING = new State("Preparing") ;
+    /**
+     * The Prepared state.
+     */
+    public static final State STATE_PREPARED = new State("Prepared") ;
+    /**
+     * The PreparedSuccess state.
+     */
+    public static final State STATE_PREPARED_SUCCESS = new State("PreparedSuccess") ;
+    /**
+     * The Committing state.
+     */
+    public static final State STATE_COMMITTING = new State("Committing") ;
+    /**
+     * The Aborting state.
+     */
+    public static final State STATE_ABORTING = new State("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 localName The localName of the state enumeration.
+     */
+    private State(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 InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toState((String)value) ;
+    }
+    
+    /**
+     * Return the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the value is not valid.
+     * @message com.arjuna.webservices.wsat.State_1 [com.arjuna.webservices.wsat.State_1] - Invalid fault type enumeration: {0}
+     */
+    public static State toState(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.State_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (State)state ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Vote.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Vote.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/Vote.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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;
+
+/*
+ * <xsd:simpleType name="Vote">
+ *   <xsd:restriction base="xsd:string">
+ *     <xsd:enumeration value="VoteCommit"/>
+ *     <xsd:enumeration value="VoteRollback"/>
+ *     <xsd:enumeration value="VoteReadOnly"/>
+ *   </xsd:restriction>
+ * </xsd:simpleType>
+ */
+/**
+ * Class representing vote enumerations.
+ * @author kevin
+ */
+public class Vote extends Enumerated
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+    
+    /**
+     * The commit vote.
+     */
+    public static final Vote VOTE_COMMIT = new Vote("VoteCommit") ;
+    /**
+     * The rollback vote.
+     */
+    public static final Vote VOTE_ROLLBACK = new Vote("VoteRollback") ;
+    /**
+     * The read only vote.
+     */
+    public static final Vote VOTE_READ_ONLY = new Vote("VoteReadOnly") ;
+    
+    /**
+     * The map of enumerations.
+     */
+    private static final Map ENUM_MAP = generateMap(new Enumerated[] {
+        VOTE_COMMIT, VOTE_ROLLBACK, VOTE_READ_ONLY
+    }) ;
+    
+    /**
+     * Construct the vote enumeration with the specified value.
+     * @param value The value of the enumeration.
+     */
+    private Vote(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 InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toVote((String)value) ;
+    }
+
+    /**
+     * Return the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the value is not valid.
+     * @message com.arjuna.webservices.wsat.Vote_1 [com.arjuna.webservices.wsat.Vote_1] - Invalid vote enumeration: {0}
+     */
+    public static Vote toVote(final String value)
+        throws InvalidEnumerationException
+    {
+        final Object vote = ENUM_MAP.get(value) ;
+        if (vote == null)
+        {
+            final String pattern = WSTLogger.log_mesg.getString("com.arjuna.webservices.wsat.Vote_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (Vote)vote ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Client side of the Completion Coordinator.
+ * @author kevin
+ */
+public class CompletionCoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final CompletionCoordinatorClient CLIENT = new CompletionCoordinatorClient() ;
+    
+    /**
+     * The commit action.
+     */
+    private final AttributedURIType commitAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_COMMIT) ;
+    /**
+     * The rollback action.
+     */
+    private final AttributedURIType rollbackAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_ROLLBACK) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The completion initiator URI for replies.
+     */
+    private final AttributedURIType completionInitiator ;
+    
+    /**
+     * Construct the completion coordinator client.
+     */
+    private CompletionCoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String completionInitiatorURI =
+            SoapRegistry.getRegistry().getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_INITIATOR) ;
+        completionInitiator = new AttributedURIType(completionInitiatorURI) ;
+    }
+    
+    /**
+     * Send a commit request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCommit(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_COMMIT_QNAME,
+            commitAction) ;
+    }
+    
+    /**
+     * Send a rollback request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendRollback(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_ROLLBACK_QNAME,
+            rollbackAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType completionInitiatorEndpoint = new EndpointReferenceType(completionInitiator) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionInitiatorEndpoint, identifier) ;
+        return completionInitiatorEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CompletionCoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,158 @@
+/*
+ * 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.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Client side of the Completion Initiator.
+ * @author kevin
+ */
+public class CompletionInitiatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final CompletionInitiatorClient CLIENT = new CompletionInitiatorClient() ;
+    
+    /**
+     * The committed action.
+     */
+    private final AttributedURIType committedAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_COMMITTED) ;
+    /**
+     * The aborted action.
+     */
+    private final AttributedURIType abortedAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_ABORTED) ;
+    /**
+     * The fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The completion coordinator URI for replies.
+     */
+    private final AttributedURIType completionCoordinator ;
+    
+    /**
+     * Construct the completion initiator client.
+     */
+    private CompletionInitiatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String completionCoordinatorURI =
+            SoapRegistry.getRegistry().getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR) ;
+        completionCoordinator = new AttributedURIType(completionCoordinatorURI) ;
+    }
+    
+    /**
+     * Send a committed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCommitted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, AtomicTransactionConstants.WSAT_ELEMENT_COMMITTED_QNAME, committedAction) ;
+    }
+    
+    /**
+     * Send an aborted request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendAborted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, AtomicTransactionConstants.WSAT_ELEMENT_ABORTED_QNAME, abortedAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendSoapFault(soapFault, addressingContext, soapService, endpointReference, faultAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType completionCoordinatorEndpoint = new EndpointReferenceType(completionCoordinator) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionCoordinatorEndpoint, identifier) ;
+        return completionCoordinatorEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CompletionInitiatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,220 @@
+/*
+ * 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.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Client side of the Coordinator.
+ * @author kevin
+ */
+public class CoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final CoordinatorClient CLIENT = new CoordinatorClient() ;
+    
+    /**
+     * The prepared action.
+     */
+    private final AttributedURIType preparedAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_PREPARED) ;
+    /**
+     * The aborted action.
+     */
+    private final AttributedURIType abortedAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_ABORTED) ;
+    /**
+     * The read only action.
+     */
+    private final AttributedURIType readOnlyAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_READ_ONLY) ;
+    /**
+     * The committed action.
+     */
+    private final AttributedURIType committedAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_COMMITTED) ;
+    /**
+     * The replay action.
+     */
+    private final AttributedURIType replayAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_REPLAY) ;
+    /**
+     * The fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The participant URI for replies.
+     */
+    private final AttributedURIType participant ;
+    
+    /**
+     * Construct the coordinator client.
+     */
+    private CoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String participantURI =
+            SoapRegistry.getRegistry().getServiceURI(AtomicTransactionConstants.SERVICE_PARTICIPANT) ;
+        participant = new AttributedURIType(participantURI) ;
+    }
+    
+    /**
+     * Send a prepared request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any SOAP errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendPrepared(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_PREPARED_QNAME,
+            preparedAction) ;
+    }
+    
+    /**
+     * Send an aborted request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any SOAP errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendAborted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, AtomicTransactionConstants.WSAT_ELEMENT_ABORTED_QNAME, abortedAction) ;
+    }
+    
+    /**
+     * Send a read only request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any SOAP errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendReadOnly(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, AtomicTransactionConstants.WSAT_ELEMENT_READ_ONLY_QNAME, readOnlyAction) ;
+    }
+    
+    /**
+     * Send a committed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any SOAP errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCommitted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, AtomicTransactionConstants.WSAT_ELEMENT_COMMITTED_QNAME, committedAction) ;
+    }
+    
+    /**
+     * Send a replay request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any SOAP errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendReplay(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_REPLAY_QNAME,
+            replayAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws SoapFault For any SOAP errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendSoapFault(soapFault, addressingContext, soapService, endpointReference, faultAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType participantEndpoint = new EndpointReferenceType(participant) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantEndpoint, identifier) ;
+        return participantEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,181 @@
+/*
+ * 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.client;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Client side of the Participant.
+ * @author kevin
+ */
+public class ParticipantClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final ParticipantClient CLIENT = new ParticipantClient() ;
+    
+    /**
+     * The prepare action.
+     */
+    private final AttributedURIType prepareAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_PREPARE) ;
+    /**
+     * The commit action.
+     */
+    private final AttributedURIType commitAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_COMMIT) ;
+    /**
+     * The rollback action.
+     */
+    private final AttributedURIType rollbackAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_ROLLBACK) ;
+    /**
+     * The SOAP fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(AtomicTransactionConstants.WSAT_ACTION_FAULT) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The coordinator URI for replies.
+     */
+    private final AttributedURIType coordinator ;
+    
+    /**
+     * Construct the completion initiator client.
+     */
+    private ParticipantClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String coordinatorURI =
+            SoapRegistry.getRegistry().getServiceURI(AtomicTransactionConstants.SERVICE_COORDINATOR) ;
+        coordinator = new AttributedURIType(coordinatorURI) ;
+    }
+    
+    /**
+     * Send a prepare request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendPrepare(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_PREPARE_QNAME,
+            prepareAction) ;
+    }
+    
+    /**
+     * Send a commit request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCommit(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_COMMIT_QNAME,
+            commitAction) ;
+    }
+    
+    /**
+     * Send a rollback request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendRollback(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, AtomicTransactionConstants.WSAT_ELEMENT_ROLLBACK_QNAME,
+            rollbackAction) ;
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingContext The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendSoapFault(final AddressingContext addressingContext, final SoapFault soapFault, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendSoapFault(soapFault, addressingContext, soapService, endpointReference, faultAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType coordinatorEndpoint = new EndpointReferenceType(coordinator) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorEndpoint, identifier) ;
+        return coordinatorEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static ParticipantClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorCommitHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorCommitHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorCommitHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+
+/**
+ * The completion coordinator commit handler.
+ * @author kevin
+ */
+public class CompletionCoordinatorCommitHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType commit = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionCoordinatorProcessor.getProcessor().commit(commit, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorRollbackHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorRollbackHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionCoordinatorRollbackHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+
+/**
+ * The completion coordinator rollback handler.
+ * @author kevin
+ */
+public class CompletionCoordinatorRollbackHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType rollback = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionCoordinatorProcessor.getProcessor().rollback(rollback, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorAbortedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorAbortedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorAbortedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessor;
+
+/**
+ * The completion initiator aborted handler.
+ * @author kevin
+ */
+public class CompletionInitiatorAbortedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType aborted = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionInitiatorProcessor.getProcessor().handleAborted(aborted, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorCommittedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorCommittedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorCommittedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessor;
+
+/**
+ * The completion initiator committed handler.
+ * @author kevin
+ */
+public class CompletionInitiatorCommittedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType committed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionInitiatorProcessor.getProcessor().handleCommitted(committed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CompletionInitiatorSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessor;
+
+/**
+ * The completion initiator fault handler.
+ * @author kevin
+ */
+public class CompletionInitiatorSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionInitiatorProcessor.getProcessor().handleSoapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorAbortedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorAbortedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorAbortedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+/**
+ * The coordinator aborted handler.
+ * @author kevin
+ */
+public class CoordinatorAbortedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType aborted = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessor.getProcessor().aborted(aborted, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorCommittedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorCommittedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorCommittedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+/**
+ * The coordinator committed handler.
+ * @author kevin
+ */
+public class CoordinatorCommittedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType committed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessor.getProcessor().committed(committed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorPreparedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorPreparedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorPreparedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+/**
+ * The coordinator prepared handler.
+ * @author kevin
+ */
+public class CoordinatorPreparedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType prepared = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessor.getProcessor().prepared(prepared, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReadOnlyHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReadOnlyHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReadOnlyHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+/**
+ * The coordinator read only handler.
+ * @author kevin
+ */
+public class CoordinatorReadOnlyHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType readOnly = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessor.getProcessor().readOnly(readOnly, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReplayHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReplayHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorReplayHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+/**
+ * The coordinator replay handler.
+ * @author kevin
+ */
+public class CoordinatorReplayHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType replay = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessor.getProcessor().replay(replay, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/CoordinatorSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+/**
+ * The coordinator fault handler.
+ * @author kevin
+ */
+public class CoordinatorSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessor.getProcessor().soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantCommitHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantCommitHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantCommitHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+
+/**
+ * The participant commit handler.
+ * @author kevin
+ */
+public class ParticipantCommitHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType commit = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessor.getProcessor().commit(commit, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantPrepareHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantPrepareHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantPrepareHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+
+/**
+ * The participant prepare handler.
+ * @author kevin
+ */
+public class ParticipantPrepareHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType prepare = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessor.getProcessor().prepare(prepare, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantRollbackHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantRollbackHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantRollbackHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+
+/**
+ * The participant rollback handler.
+ * @author kevin
+ */
+public class ParticipantRollbackHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType rollback = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessor.getProcessor().rollback(rollback, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/handlers/ParticipantSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+
+/**
+ * The participant SOAP fault handler.
+ * @author kevin
+ */
+public class ParticipantSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport action value.
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessor.getProcessor().soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionCoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionCoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionCoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.base.handlers.LoggingFaultHandler;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.handlers.CompletionCoordinatorCommitHandler;
+import com.arjuna.webservices.wsat.handlers.CompletionCoordinatorRollbackHandler;
+
+/**
+ * Policy responsible for binding in the WS-AtomicTransaction completion server handlers.
+ * @author kevin
+ */
+public class CompletionCoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMIT_QNAME, new CompletionCoordinatorCommitHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ROLLBACK_QNAME, new CompletionCoordinatorRollbackHandler()) ;
+        registry.registerFaultHandler(new LoggingFaultHandler(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR)) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ROLLBACK_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMIT_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionInitiatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionInitiatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CompletionInitiatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.handlers.CompletionInitiatorAbortedHandler;
+import com.arjuna.webservices.wsat.handlers.CompletionInitiatorCommittedHandler;
+import com.arjuna.webservices.wsat.handlers.CompletionInitiatorSoapFaultHandler;
+
+/**
+ * Policy responsible for binding in the WS-AtomicTransaction completion client handlers.
+ * @author kevin
+ */
+public class CompletionInitiatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMITTED_QNAME, new CompletionInitiatorCommittedHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ABORTED_QNAME, new CompletionInitiatorAbortedHandler()) ;
+        registry.registerFaultHandler(new CompletionInitiatorSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ABORTED_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMITTED_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/CoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.handlers.CoordinatorAbortedHandler;
+import com.arjuna.webservices.wsat.handlers.CoordinatorCommittedHandler;
+import com.arjuna.webservices.wsat.handlers.CoordinatorSoapFaultHandler;
+import com.arjuna.webservices.wsat.handlers.CoordinatorPreparedHandler;
+import com.arjuna.webservices.wsat.handlers.CoordinatorReadOnlyHandler;
+import com.arjuna.webservices.wsat.handlers.CoordinatorReplayHandler;
+
+/**
+ * Policy responsible for binding in the WS-AtomicTransaction coordinator handlers.
+ * @author kevin
+ */
+public class CoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_PREPARED_QNAME, new CoordinatorPreparedHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ABORTED_QNAME, new CoordinatorAbortedHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_READ_ONLY_QNAME, new CoordinatorReadOnlyHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMITTED_QNAME, new CoordinatorCommittedHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_REPLAY_QNAME, new CoordinatorReplayHandler()) ;
+        registry.registerFaultHandler(new CoordinatorSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_REPLAY_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMITTED_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_READ_ONLY_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ABORTED_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_PREPARED_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/ParticipantPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/ParticipantPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/policy/ParticipantPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.handlers.ParticipantCommitHandler;
+import com.arjuna.webservices.wsat.handlers.ParticipantPrepareHandler;
+import com.arjuna.webservices.wsat.handlers.ParticipantRollbackHandler;
+import com.arjuna.webservices.wsat.handlers.ParticipantSoapFaultHandler;
+
+/**
+ * Policy responsible for binding in the WS-AtomicTransaction participant handlers.
+ * @author kevin
+ */
+public class ParticipantPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_PREPARE_QNAME, new ParticipantPrepareHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMIT_QNAME, new ParticipantCommitHandler()) ;
+        registry.registerBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ROLLBACK_QNAME, new ParticipantRollbackHandler()) ;
+        registry.registerFaultHandler(new ParticipantSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_ROLLBACK_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_COMMIT_QNAME) ;
+        registry.removeBodyHandler(AtomicTransactionConstants.WSAT_ELEMENT_PREPARE_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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.processors;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+
+/**
+ * The Completion Coordinator processor.
+ * @author kevin
+ */
+public abstract class CompletionCoordinatorProcessor
+{
+    /**
+     * The coordinator processor.
+     */
+    private static CompletionCoordinatorProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized CompletionCoordinatorProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized CompletionCoordinatorProcessor setProcessor(final CompletionCoordinatorProcessor processor)
+    {
+        final CompletionCoordinatorProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final CompletionCoordinatorParticipant participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final CompletionCoordinatorParticipant participant) ;
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void commit(final NotificationType commit, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void rollback(final NotificationType rollback, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices.wsat.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Completion Initiator callback.
+ * @author kevin
+ */
+public abstract class CompletionInitiatorCallback extends Callback
+{
+    /**
+     * An aborted response.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void aborted(final NotificationType aborted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * A committed response.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void committed(final NotificationType committed, final AddressingContext addressingContext, 
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.processor.BaseNotificationProcessor;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Completion Initiator processor.
+ * @author kevin
+ */
+public class CompletionInitiatorProcessor extends BaseNotificationProcessor
+{
+    /**
+     * The initiator singleton.
+     */
+    private static final CompletionInitiatorProcessor PROCESSOR = new CompletionInitiatorProcessor() ;
+    
+    /**
+     * Get the processor singleton.
+     * @return The singleton.
+     */
+    public static CompletionInitiatorProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Handle an aborted response.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleAborted(final NotificationType aborted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((CompletionInitiatorCallback)callback).aborted(aborted, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, arjunaContext)) ;
+    }
+    
+    /**
+     * Handle a committed response.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleCommitted(final NotificationType committed, final AddressingContext addressingContext, 
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((CompletionInitiatorCallback)callback).committed(committed, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, arjunaContext)) ;
+    }
+    
+    /**
+     * Handle a SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleSoapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((CompletionInitiatorCallback)callback).soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }, getIDs(addressingContext, 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 CompletionInitiatorCallback callback)
+    {
+        register(instanceIdentifier, callback) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,127 @@
+/*
+ * 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.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.CoordinatorInboundEvents;
+import com.arjuna.webservices.wsat.NotificationType;
+
+/**
+ * The Coordinator processor.
+ * @author kevin
+ */
+public abstract class CoordinatorProcessor
+{
+    /**
+     * The coordinator processor.
+     */
+    private static CoordinatorProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor singleton.
+     * @return The singleton.
+     */
+    public static synchronized CoordinatorProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+    
+    /**
+     * Set the processor singleton.
+     * @param processor The processor.
+     * @return The previous singleton.
+     */
+    public static synchronized CoordinatorProcessor setProcessor(final CoordinatorProcessor processor)
+    {
+        final CoordinatorProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+    
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public abstract void activateCoordinator(final CoordinatorInboundEvents coordinator, final String identifier) ;
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public abstract void deactivateCoordinator(final CoordinatorInboundEvents coordinator) ;
+    
+    /**
+     * Aborted.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void aborted(final NotificationType aborted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Committed.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void committed(final NotificationType committed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Prepared.
+     * @param prepared The prepared notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void prepared(final NotificationType prepared, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Read only.
+     * @param readOnly The read only notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void readOnly(final NotificationType readOnly, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Replay.
+     * @param replay The replay notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void replay(final NotificationType replay, final AddressingContext addressingContext,
+        final ArjunaContext 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 AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.ParticipantInboundEvents;
+
+/**
+ * The Participant processor.
+ * @author kevin
+ */
+public abstract class ParticipantProcessor
+{
+    /**
+     * The participant processor.
+     */
+    private static ParticipantProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized ParticipantProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized ParticipantProcessor setProcessor(final ParticipantProcessor processor)
+    {
+        final ParticipantProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+    
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final ParticipantInboundEvents participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final ParticipantInboundEvents participant) ;
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void commit(final NotificationType commit, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Prepare.
+     * @param prepare The prepare notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void prepare(final NotificationType prepare, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void rollback(final NotificationType rollback, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+
+    /**
+     * SOAP Fault.
+     * @param soapFault The SOAP fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.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.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.policy.CompletionCoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Completion Coordinator service
+ * @author kevin
+ */
+public class CompletionCoordinatorInitialisation 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 Completion coordinator.
+               CompletionCoordinatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.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.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.policy.CompletionInitiatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Completion Initiator service
+ * @author kevin
+ */
+public class CompletionInitiatorInitialisation 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 Completion initiator.
+               CompletionInitiatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(AtomicTransactionConstants.SERVICE_COMPLETION_INITIATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.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.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.policy.CoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Coordinator service
+ * @author kevin
+ */
+public class CoordinatorInitialisation 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 coordinator.
+               CoordinatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(AtomicTransactionConstants.SERVICE_COORDINATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsat.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.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.policy.ParticipantPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Participant service
+ * @author kevin
+ */
+public class ParticipantInitialisation 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 Participant.
+               ParticipantPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(AtomicTransactionConstants.SERVICE_PARTICIPANT,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityConstants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,265 @@
+/*
+ * 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 BusinessActivityConstants
+{
+    /**
+     * The coordinator completion coordinator service name.
+     */
+    public String SERVICE_COORDINATOR_COMPLETION_COORDINATOR = "BACoordinatorCompletionCoordinator" ;
+    /**
+     * The coordinator completion participant service name.
+     */
+    public String SERVICE_COORDINATOR_COMPLETION_PARTICIPANT = "BACoordinatorCompletionParticipant" ;
+    /**
+     * The participant completion coordinator service name.
+     */
+    public String SERVICE_PARTICIPANT_COMPLETION_COORDINATOR = "BAParticipantCompletionCoordinator" ;
+    /**
+     * The participant completion participant service name.
+     */
+    public String SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT = "BAParticipantCompletionParticipant" ;
+    /**
+     * The Namespace.
+     */
+    public String WSBA_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/10/wsba" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSBA_PREFIX = "wsba" ;
+    
+    /**
+     * 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 Faulted element.
+     */
+    public String WSBA_ELEMENT_FAULTED = "Faulted" ;
+    /**
+     * The Faulted QName.
+     */
+    public QName WSBA_ELEMENT_FAULTED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_FAULTED, WSBA_PREFIX) ;
+    /**
+     * The Faulted Action.
+     */
+    public String WSBA_ACTION_FAULTED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_FAULTED ;
+    /**
+     * 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 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" ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEvents.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEvents.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEvents.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,106 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+
+
+/**
+ * The Participant events.
+ */
+public interface CoordinatorCompletionCoordinatorInboundEvents
+{
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exit(final NotificationType exit, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the fault event.
+     * @param fault The fault exception.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEvents.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEvents.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEvents.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+
+
+/**
+ * The Participant events.
+ */
+public interface CoordinatorCompletionParticipantInboundEvents
+{
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the complete event.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void complete(final NotificationType complete, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the faulted event.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionIdentifierType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionIdentifierType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionIdentifierType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,121 @@
+/*
+ * 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;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.ElementContent;
+
+/**
+ * Representation of an ExceptionIdentifier element.
+ * @author kevin
+ */
+class ExceptionIdentifierType extends ElementContent
+{
+    /**
+     * The exception identifier.
+     */
+    private String exceptionIdentifier ;
+    
+    /**
+     * Construct the exception identifier with the specified identifier.
+     * @param exceptionIdentifier The exception identifier.
+     */
+    ExceptionIdentifierType(final String exceptionIdentifier)
+    {
+        this.exceptionIdentifier = exceptionIdentifier ;
+    }
+    
+    /**
+     * Construct the ExceptionIdentifier from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    ExceptionIdentifierType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException("ExceptionIdentifier elements cannot have embedded elements.") ;
+    }
+    
+    /**
+     * Set the exception identifier of this element.
+     * @param exceptionIdentifier The exception identifier of the element.
+     */
+    void setExceptionIdentifier(final String exceptionIdentifier)
+    {
+        this.exceptionIdentifier = exceptionIdentifier ;
+    }
+    
+    /**
+     * Get the exception identifier of this element.
+     * @return The exception identifier of the element or null if not set.
+     */
+    String getExceptionIdentifier()
+    {
+        return exceptionIdentifier ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value of this element.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        exceptionIdentifier = value ;
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        out.writeCharacters(exceptionIdentifier) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (exceptionIdentifier != null) && (exceptionIdentifier.trim().length() > 0)
+            && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ExceptionType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.util.StreamHelper;
+
+/*
+ * <xsd:complexType name="ExceptionType">
+ *   <xsd:sequence>
+ *     <xsd:element name="ExceptionIdentifier" type="xsd:string"/>
+ *     <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ *   </xsd:sequence>
+ *   <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ * </xsd:complexType>
+ */
+/**
+ * Representation of an ExceptionType
+ * @author kevin
+ */
+public class ExceptionType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The exception identifier.
+     */
+    private ExceptionIdentifierType exceptionIdentifier ;
+
+    /**
+     * Default constructor.
+     */
+    public ExceptionType()
+    {
+    }
+    
+    /**
+     * Construct an exception type with the specified exception identifier.
+     * @param exceptionIdentifier The exception identifier.
+     */
+    public ExceptionType(final String exceptionIdentifier)
+    {
+        setExceptionIdentifier(exceptionIdentifier) ;
+    }
+    
+    /**
+     * Construct the exception from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public ExceptionType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the exception identifier.
+     * @param exceptionIdentifier The exception identifier.
+     */
+    private void setExceptionIdentifier(final ExceptionIdentifierType exceptionIdentifier)
+    {
+        this.exceptionIdentifier = exceptionIdentifier ;
+    }
+
+    /**
+     * Set the exception identifier.
+     * @param exceptionIdentifier The exception identifier.
+     */
+    public void setExceptionIdentifier(final String exceptionIdentifier)
+    {
+        setExceptionIdentifier(new ExceptionIdentifierType(exceptionIdentifier)) ;
+    }
+    
+    /**
+     * Get the exception identifier.
+     * @return The exception identifier.
+     */
+    public String getExceptionIdentifier()
+    {
+        return (exceptionIdentifier == null ? null : exceptionIdentifier.getExceptionIdentifier()) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (BusinessActivityConstants.WSBA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (BusinessActivityConstants.WSBA_ELEMENT_EXCEPTION_IDENTIFIER.equals(localPart))
+            {
+                setExceptionIdentifier(new ExceptionIdentifierType(in)) ;
+            }
+            else
+            {
+                throw new XMLStreamException("Unexpected element name: " + elementName) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeElement(out, BusinessActivityConstants.WSBA_ELEMENT_EXCEPTION_IDENTIFIER_QNAME, exceptionIdentifier) ;
+        super.writeChildContent(out) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((exceptionIdentifier != null) && exceptionIdentifier.isValid()) &&
+            super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/NotificationType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+
+/*
+ * <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>
+ */
+/**
+ * Representation of the Notification type.
+ * @author kevin
+ */
+public class NotificationType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * Default constructor.
+     */
+    public NotificationType()
+    {
+    }
+    
+    /**
+     * Construct a notification from the input stream.
+     * 
+     * @param in The input stream.
+     * @throws XMLStreamException For errors during parsing.
+     */
+    public NotificationType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEvents.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEvents.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEvents.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,106 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+
+
+/**
+ * The Participant events.
+ */
+public interface ParticipantCompletionCoordinatorInboundEvents
+{
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exit(final NotificationType exit, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the fault event.
+     * @param fault The fault exception.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEvents.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEvents.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEvents.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsba;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+
+
+/**
+ * The Participant events.
+ */
+public interface ParticipantCompletionParticipantInboundEvents
+{
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the faulted event.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/State.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/State.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/State.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,197 @@
+/*
+ * 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:Faulting"/>
+ *     <xsd:enumeration value="wsba:Faulting-Active"/>
+ *     <xsd:enumeration value="wsba:Faulting-Compensating"/>
+ *     <xsd:enumeration value="wsba:Exiting"/>
+ *     <xsd:enumeration value="wsba:Ended"/>
+ *   </xsd:restriction>
+ * </xsd:simpleType>
+ */
+/**
+ * Class representing state enumerations.
+ * @author kevin
+ */
+public class State extends Enumerated
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+    
+    /**
+     * The Active state.
+     */
+    public static final State STATE_ACTIVE = new State("Active") ;
+    /**
+     * The Canceling state.
+     */
+    public static final State STATE_CANCELING = new State("Canceling") ;
+    /**
+     * The Canceling-Active state.
+     */
+    public static final State STATE_CANCELING_ACTIVE = new State("Canceling-Active") ;
+    /**
+     * The Canceling-Completing state.
+     */
+    public static final State STATE_CANCELING_COMPLETING = new State("Canceling-Completing") ;
+    /**
+     * The Completing state.
+     */
+    public static final State STATE_COMPLETING = new State("Completing") ;
+    /**
+     * The Completed state.
+     */
+    public static final State STATE_COMPLETED = new State("Completed") ;
+    /**
+     * The Closing state.
+     */
+    public static final State STATE_CLOSING = new State("Closing") ;
+    /**
+     * The Compensating state.
+     */
+    public static final State STATE_COMPENSATING = new State("Compensating") ;
+    /**
+     * The Faulting state.
+     */
+    public static final State STATE_FAULTING = new State("Faulting") ;
+    /**
+     * The Faulting-Active state.
+     */
+    public static final State STATE_FAULTING_ACTIVE = new State("Faulting-Active") ;
+    /**
+     * The Faulting-Compensating state.
+     */
+    public static final State STATE_FAULTING_COMPENSATING = new State("Faulting-Compensating") ;
+    /**
+     * The Exiting state.
+     */
+    public static final State STATE_EXITING = new State("Exiting") ;
+    /**
+     * The Ended state.
+     */
+    public static final State STATE_ENDED = new State("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_FAULTING,
+        STATE_FAULTING_ACTIVE, STATE_FAULTING_COMPENSATING, STATE_EXITING,
+        STATE_ENDED
+    }) ;
+    
+    /**
+     * Construct the state enumeration with the specified value.
+     * @param localName The localName of the state enumeration.
+     */
+    private State(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 InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toState((QName)value) ;
+    }
+    
+    /**
+     * Return the enumeration for the specified value.
+     * @param name The name.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the name is not valid.
+     */
+    public static State toState(final String name)
+        throws InvalidEnumerationException
+    {
+        return toState(getQualifiedName(name)) ;
+    }
+    
+    /**
+     * Return the enumeration for the specified value.
+     * @param qName The qName value.
+     * @return The enumeration.
+     * @throws InvalidEnumerationException if the value is not valid.
+     * @message com.arjuna.webservices.wsba.State_1 [com.arjuna.webservices.wsba.State_1] - Invalid state enumeration: {0}
+     */
+    public static State toState(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.State_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {qName}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (State)state ;
+    }
+    
+    /**
+     * Get the qualified name.
+     * @param value 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) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,133 @@
+/*
+ * 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;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.stax.ElementContent;
+import com.arjuna.webservices.util.InvalidEnumerationException;
+import com.arjuna.webservices.util.QNameHelper;
+import com.arjuna.webservices.util.StreamHelper;
+
+/**
+ * Representation of a State element.
+ * @author kevin
+ */
+class StateType extends ElementContent
+{
+    /**
+     * The state.
+     */
+    private State state ;
+    
+    /**
+     * Construct the state with the specified state.
+     * @param state The state.
+     */
+    StateType(final State state)
+    {
+        this.state = state ;
+    }
+    
+    /**
+     * Construct the State from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    StateType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     * @message com.arjuna.webservices.wsba.StateType_1 [com.arjuna.webservices.wsba.StateType_1] - State elements cannot have embedded elements.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        throw new XMLStreamException(WSTLogger.log_mesg.getString("com.arjuna.webservices.wsba.StateType_1")) ;
+    }
+    
+    /**
+     * Set the state of this element.
+     * @param state The state of the element.
+     */
+    void setState(final State state)
+    {
+        this.state = state ;
+    }
+    
+    /**
+     * Get the state of this element.
+     * @return The state of the element or null if not set.
+     */
+    State getState()
+    {
+        return state ;
+    }
+    
+    /**
+     * Set the text value of this element.
+     * @param in The current input stream.
+     * @param value The text value of this element.
+     */
+    protected void putValue(final XMLStreamReader in, final String value)
+        throws XMLStreamException
+    {
+        final QName qName = QNameHelper.toQName(in.getNamespaceContext(), value) ;
+        try
+        {
+            state = State.toState(qName) ;
+        }
+        catch (final InvalidEnumerationException iee)
+        {
+            throw new XMLStreamException(iee) ;
+        }
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeQualifiedName(out, state.getValue()) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (state != null) && super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StatusType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StatusType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StatusType.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,142 @@
+/*
+ * 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;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import com.arjuna.webservices.stax.AnyContentAnyAttributeSupport;
+import com.arjuna.webservices.util.StreamHelper;
+/*
+ * <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>
+ */
+/**
+ * Representation of a StatusType
+ * @author kevin
+ */
+public class StatusType extends AnyContentAnyAttributeSupport
+{
+    /**
+     * The state.
+     */
+    private StateType state ;
+
+    /**
+     * Default constructor.
+     */
+    public StatusType()
+    {
+    }
+
+    /**
+     * Construct the status type with the specified state.
+     * @param state the state.
+     */
+    public StatusType(final State state)
+    {
+        this.state = new StateType(state) ;
+    }
+    
+    /**
+     * Construct the state from the input stream.
+     * @param in The input stream.
+     * @throws XMLStreamException for parsing errors.
+     */
+    public StatusType(final XMLStreamReader in)
+        throws XMLStreamException
+    {
+        parse(in) ;
+    }
+
+    /**
+     * Set the state.
+     * @param state The state.
+     */
+    private void setState(final StateType state)
+    {
+        this.state = state ;
+    }
+    
+    /**
+     * Get the state.
+     * @return The state.
+     */
+    public State getState()
+    {
+        return (state == null ? null : state.getState()) ;
+    }
+    
+    /**
+     * Add the element.
+     * @param in The current input stream.
+     * @param elementName The qualified element name.
+     */
+    protected void putElement(final XMLStreamReader in,
+        final QName elementName)
+        throws XMLStreamException
+    {
+        if (BusinessActivityConstants.WSBA_NAMESPACE.equals(elementName.getNamespaceURI()))
+        {
+            final String localPart = elementName.getLocalPart() ;
+            if (BusinessActivityConstants.WSBA_ELEMENT_STATE.equals(localPart))
+            {
+                setState(new StateType(in)) ;
+            }
+            else
+            {
+                throw new XMLStreamException("Unexpected element name: " + elementName) ;
+            }
+        }
+        else
+        {
+            super.putElement(in, elementName) ;
+        }
+    }
+    
+    /**
+     * Write the child content of the element.
+     * @param out The output stream.
+     */
+    protected void writeChildContent(final XMLStreamWriter out)
+        throws XMLStreamException
+    {
+        StreamHelper.writeElement(out, BusinessActivityConstants.WSBA_ELEMENT_STATE_QNAME, state) ;
+        super.writeChildContent(out) ;
+    }
+    
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((state != null) && state.isValid()) &&
+            super.isValid() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,270 @@
+/*
+ * 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 java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+
+/**
+ * The Client side of the Coordinator Completion Coordinator.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final CoordinatorCompletionCoordinatorClient CLIENT = new CoordinatorCompletionCoordinatorClient() ;
+    
+    /**
+     * The completed action.
+     */
+    private final AttributedURIType completedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPLETED) ;
+    /**
+     * The fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_FAULT) ;
+    /**
+     * The compensated action.
+     */
+    private final AttributedURIType compensatedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPENSATED) ;
+    /**
+     * The closed action.
+     */
+    private final AttributedURIType closedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CLOSED) ;
+    /**
+     * The cancelled action.
+     */
+    private final AttributedURIType cancelledAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CANCELLED) ;
+    /**
+     * The exit action.
+     */
+    private final AttributedURIType exitAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_EXIT) ;
+    /**
+     * The get status action.
+     */
+    private final AttributedURIType getStatusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_GET_STATUS) ;
+    /**
+     * The status action.
+     */
+    private final AttributedURIType statusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_STATUS) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The coordinator completion participant URI for replies.
+     */
+    private final AttributedURIType coordinatorCompletionParticipant ;
+    
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private CoordinatorCompletionCoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String coordinatorCompletionParticipantURI =
+            SoapRegistry.getRegistry().getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT) ;
+        coordinatorCompletionParticipant = new AttributedURIType(coordinatorCompletionParticipantURI) ;
+    }
+    
+    /**
+     * Send a completed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompleted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_COMPLETED_QNAME,
+            completedAction) ;
+    }
+    
+    /**
+     * Send a fault request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendFault(final AddressingContext addressingContext, final InstanceIdentifier identifier,
+        final String exceptionIdentifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        final String exception = (exceptionIdentifier == null ? identifier.getInstanceIdentifier() : exceptionIdentifier) ;
+        sendOneWay(new ExceptionType(exception), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_FAULT_QNAME,
+            faultAction) ;
+    }
+    
+    /**
+     * Send a compensated request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompensated(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_COMPENSATED_QNAME, compensatedAction) ;
+    }
+    
+    /**
+     * Send a closed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendClosed(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_CLOSED_QNAME, closedAction) ;
+    }
+    
+    /**
+     * Send a cancelled request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCancelled(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_CANCELLED_QNAME, cancelledAction) ;
+    }
+    
+    /**
+     * Send an exit request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendExit(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_EXIT_QNAME,
+            exitAction) ;
+    }
+    
+    /**
+     * Send a get status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendGetStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME,
+            getStatusAction) ;
+    }
+    
+    /**
+     * Send a status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier,
+        final State state)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        
+        sendOneWay(new StatusType(state), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME,
+            statusAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType completionCoordinatorEndpoint = new EndpointReferenceType(coordinatorCompletionParticipant) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionCoordinatorEndpoint, identifier) ;
+        return completionCoordinatorEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CoordinatorCompletionCoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,267 @@
+/*
+ * 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 java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+
+/**
+ * The Client side of the Coordinator Participant Coordinator.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final CoordinatorCompletionParticipantClient CLIENT = new CoordinatorCompletionParticipantClient() ;
+    
+    /**
+     * The complete action.
+     */
+    private final AttributedURIType completeAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPLETE) ;
+    /**
+     * The close action.
+     */
+    private final AttributedURIType closeAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CLOSE) ;
+    /**
+     * The cancel action.
+     */
+    private final AttributedURIType cancelAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CANCEL) ;
+    /**
+     * The compensat action.
+     */
+    private final AttributedURIType compensateAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPENSATE) ;
+    /**
+     * The faulted action.
+     */
+    private final AttributedURIType faultedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_FAULTED) ;
+    /**
+     * The exited action.
+     */
+    private final AttributedURIType exitedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_EXITED) ;
+    /**
+     * The get status action.
+     */
+    private final AttributedURIType getStatusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_GET_STATUS) ;
+    /**
+     * The status action.
+     */
+    private final AttributedURIType statusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_STATUS) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The coordinator completion coordinator URI for replies.
+     */
+    private final AttributedURIType coordinatorCompletionCoordinator ;
+    
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private CoordinatorCompletionParticipantClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String coordinatorCompletionCoordinatorURI =
+            SoapRegistry.getRegistry().getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_COORDINATOR) ;
+        coordinatorCompletionCoordinator = new AttributedURIType(coordinatorCompletionCoordinatorURI) ;
+    }
+    
+    /**
+     * Send a complete request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendComplete(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_COMPLETE_QNAME,
+            completeAction) ;
+    }
+    
+    /**
+     * Send a close request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendClose(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_CLOSE_QNAME,
+            closeAction) ;
+    }
+    
+    /**
+     * Send a cancel request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCancel(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_CANCEL_QNAME,
+            cancelAction) ;
+    }
+    
+    /**
+     * Send a compensate request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompensate(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_COMPENSATE_QNAME,
+            compensateAction) ;
+    }
+    
+    /**
+     * Send a faulted request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendFaulted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_FAULTED_QNAME, faultedAction) ;
+    }
+    
+    /**
+     * Send an exited request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendExited(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_EXITED_QNAME, exitedAction) ;
+    }
+    
+    /**
+     * Send a get status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendGetStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME,
+            getStatusAction) ;
+    }
+    
+    /**
+     * Send a status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier,
+        final State state)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new StatusType(state), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME,
+            statusAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType coordinatorCompletionCoordinatorEndpoint = new EndpointReferenceType(coordinatorCompletionCoordinator) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorEndpoint, identifier) ;
+        return coordinatorCompletionCoordinatorEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CoordinatorCompletionParticipantClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,269 @@
+/*
+ * 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 java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+
+/**
+ * The Client side of the Participant Completion Coordinator.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final ParticipantCompletionCoordinatorClient CLIENT = new ParticipantCompletionCoordinatorClient() ;
+    
+    /**
+     * The completed action.
+     */
+    private final AttributedURIType completedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPLETED) ;
+    /**
+     * The fault action.
+     */
+    private final AttributedURIType faultAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_FAULT) ;
+    /**
+     * The compensated action.
+     */
+    private final AttributedURIType compensatedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPENSATED) ;
+    /**
+     * The closed action.
+     */
+    private final AttributedURIType closedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CLOSED) ;
+    /**
+     * The cancelled action.
+     */
+    private final AttributedURIType cancelledAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CANCELLED) ;
+    /**
+     * The exit action.
+     */
+    private final AttributedURIType exitAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_EXIT) ;
+    /**
+     * The get status action.
+     */
+    private final AttributedURIType getStatusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_GET_STATUS) ;
+    /**
+     * The status action.
+     */
+    private final AttributedURIType statusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_STATUS) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The participant completion participant URI for replies.
+     */
+    private final AttributedURIType participantCompletionParticipant ;
+    
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private ParticipantCompletionCoordinatorClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String participantCompletionParticipantURI =
+            SoapRegistry.getRegistry().getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT) ;
+        participantCompletionParticipant = new AttributedURIType(participantCompletionParticipantURI) ;
+    }
+    
+    /**
+     * Send a completed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompleted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_COMPLETED_QNAME,
+            completedAction) ;
+    }
+    
+    /**
+     * Send a fault request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendFault(final AddressingContext addressingContext, final InstanceIdentifier identifier,
+        final String exceptionIdentifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        final String exception = (exceptionIdentifier == null ? identifier.getInstanceIdentifier() : exceptionIdentifier) ;
+        sendOneWay(new ExceptionType(exception), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_FAULT_QNAME,
+            faultAction) ;
+    }
+    
+    /**
+     * Send a compensated request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompensated(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_COMPENSATED_QNAME, compensatedAction) ;
+    }
+    
+    /**
+     * Send a closed request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendClosed(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_CLOSED_QNAME, closedAction) ;
+    }
+    
+    /**
+     * Send a cancelled request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCancelled(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_CANCELLED_QNAME, cancelledAction) ;
+    }
+    
+    /**
+     * Send an exit request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendExit(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_EXIT_QNAME,
+            exitAction) ;
+    }
+    
+    /**
+     * Send a get status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendGetStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME,
+            getStatusAction) ;
+    }
+    
+    /**
+     * Send a status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier,
+        final State state)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new StatusType(state), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME,
+            statusAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType participantCompletionParticipantEndpoint = new EndpointReferenceType(participantCompletionParticipant) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionParticipantEndpoint, identifier) ;
+        return participantCompletionParticipantEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static ParticipantCompletionCoordinatorClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,246 @@
+/*
+ * 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 java.io.IOException;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.base.policy.ClientPolicy;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.client.BaseWSAddrClient;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+
+/**
+ * The Client side of the Participant Participant Coordinator.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantClient extends BaseWSAddrClient
+{
+    /**
+     * The client singleton.
+     */
+    private static final ParticipantCompletionParticipantClient CLIENT = new ParticipantCompletionParticipantClient() ;
+    
+    /**
+     * The close action.
+     */
+    private final AttributedURIType closeAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CLOSE) ;
+    /**
+     * The cancel action.
+     */
+    private final AttributedURIType cancelAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_CANCEL) ;
+    /**
+     * The compensat action.
+     */
+    private final AttributedURIType compensateAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_COMPENSATE) ;
+    /**
+     * The faulted action.
+     */
+    private final AttributedURIType faultedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_FAULTED) ;
+    /**
+     * The exited action.
+     */
+    private final AttributedURIType exitedAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_EXITED) ;
+    /**
+     * The get status action.
+     */
+    private final AttributedURIType getStatusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_GET_STATUS) ;
+    /**
+     * The status action.
+     */
+    private final AttributedURIType statusAction =
+        new AttributedURIType(BusinessActivityConstants.WSBA_ACTION_STATUS) ;
+    
+    /**
+     * The SOAP service representing the client.
+     */
+    private final SoapService soapService ;
+    /**
+     * The participant completion coordinator URI for replies.
+     */
+    private final AttributedURIType participantCompletionCoordinator ;
+    
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private ParticipantCompletionParticipantClient()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+        
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        ClientPolicy.register(handlerRegistry) ;
+        
+        soapService = new SoapService(handlerRegistry) ;
+        final String participantCompletionCoordinatorURI =
+            SoapRegistry.getRegistry().getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_COORDINATOR) ;
+        participantCompletionCoordinator = new AttributedURIType(participantCompletionCoordinatorURI) ;
+    }
+    
+    /**
+     * Send a close request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendClose(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_CLOSE_QNAME,
+            closeAction) ;
+    }
+    
+    /**
+     * Send a cancel request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCancel(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_CANCEL_QNAME,
+            cancelAction) ;
+    }
+    
+    /**
+     * Send a compensate request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendCompensate(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_COMPENSATE_QNAME,
+            compensateAction) ;
+    }
+    
+    /**
+     * Send a faulted request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendFaulted(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_FAULTED_QNAME, faultedAction) ;
+    }
+    
+    /**
+     * Send an exited request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendExited(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+            null, BusinessActivityConstants.WSBA_ELEMENT_EXITED_QNAME, exitedAction) ;
+    }
+    
+    /**
+     * Send a get status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendGetStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new NotificationType(), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME,
+            getStatusAction) ;
+    }
+    
+    /**
+     * Send a status request.
+     * @param addressingContext addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public void sendStatus(final AddressingContext addressingContext, final InstanceIdentifier identifier,
+        final State state)
+        throws SoapFault, IOException
+    {
+        final EndpointReferenceType endpointReference = getEndpointReference(identifier) ;
+        sendOneWay(new StatusType(state), addressingContext, soapService, endpointReference,
+                endpointReference, BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME,
+            statusAction) ;
+    }
+    
+    /**
+     * Get the endpoint reference for the specified identifier.
+     * @param identifier The endpoint reference identifier.
+     * @return The endpoint reference.
+     */
+    private EndpointReferenceType getEndpointReference(final InstanceIdentifier identifier)
+    {
+        final EndpointReferenceType participantCompletionCoordinatorEndpoint = new EndpointReferenceType(participantCompletionCoordinator) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorEndpoint, identifier) ;
+        return participantCompletionCoordinatorEndpoint ;
+    }
+    
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static ParticipantCompletionParticipantClient getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCancelledHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCancelledHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCancelledHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator cancelled handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorCancelledHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType cancelled = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().cancelled(cancelled, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorClosedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorClosedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorClosedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator closed handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorClosedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType closed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().closed(closed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompensatedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompensatedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompensatedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator compensated handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorCompensatedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType compensated = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().compensated(compensated, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompletedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompletedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorCompletedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator completed handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorCompletedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType completed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().completed(completed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorExitHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorExitHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorExitHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator exit handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorExitHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType exit = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().exit(exit, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator fault handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final ExceptionType fault = new ExceptionType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().fault(fault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorGetStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorGetStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorGetStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator get status handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorGetStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType getStatus = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator fault handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionCoordinatorStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator completion coordinator status handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final StatusType status = new StatusType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessor.getProcessor().status(status, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCancelHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCancelHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCancelHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant cancel handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantCancelHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType cancel = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().cancel(cancel, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCloseHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCloseHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCloseHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant close handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantCloseHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType close = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().close(close, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompensateHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompensateHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompensateHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant compensate handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantCompensateHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType compensate = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().compensate(compensate, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompleteHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompleteHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantCompleteHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant complete handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantCompleteHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType complete = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().complete(complete, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantExitedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantExitedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantExitedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant exited handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantExitedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType exited = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().exited(exited, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantFaultedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantFaultedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantFaultedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant faulted handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantFaultedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType faulted = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().faulted(faulted, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantGetStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantGetStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantGetStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant get status handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantGetStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType getStatus = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator fault handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/CoordinatorCompletionParticipantStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+
+/**
+ * The coordinator completion participant status handler.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final StatusType status = new StatusType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionParticipantProcessor.getProcessor().status(status, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCancelledHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCancelledHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCancelledHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator cancelled handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorCancelledHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType cancelled = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().cancelled(cancelled, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorClosedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorClosedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorClosedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator closed handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorClosedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType closed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().closed(closed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompensatedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompensatedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompensatedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator compensated handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorCompensatedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType compensated = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().compensated(compensated, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompletedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompletedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorCompletedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator completed handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorCompletedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType completed = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().completed(completed, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorExitHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorExitHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorExitHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator exit handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorExitHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType exit = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().exit(exit, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator fault handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final ExceptionType fault = new ExceptionType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().fault(fault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorGetStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorGetStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorGetStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator get status handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorGetStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType getStatus = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The coordinator fault handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionCoordinatorStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+/**
+ * The participant completion coordinator status handler.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final StatusType status = new StatusType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionCoordinatorProcessor.getProcessor().status(status, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCancelHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCancelHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCancelHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant cancel handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantCancelHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType cancel = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().cancel(cancel, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCloseHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCloseHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCloseHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant close handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantCloseHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType close = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().close(close, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCompensateHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCompensateHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantCompensateHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant compensate handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantCompensateHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType compensate = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().compensate(compensate, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantExitedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantExitedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantExitedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant exited handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantExitedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType exited = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().exited(exited, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantFaultedHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantFaultedHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantFaultedHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant faulted handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantFaultedHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType faulted = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().faulted(faulted, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantGetStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantGetStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantGetStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant get status handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantGetStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final NotificationType getStatus = new NotificationType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantSoapFaultHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantSoapFaultHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantSoapFaultHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The coordinator fault handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantSoapFaultHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final SoapFault soapFault = soapDetails.parseSoapFault(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantStatusHandler.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantStatusHandler.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/handlers/ParticipantCompletionParticipantStatusHandler.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.handlers;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.BodyHandler;
+import com.arjuna.webservices.MessageContext;
+import com.arjuna.webservices.SoapBody;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.soap.SoapDetails;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+
+/**
+ * The participant completion participant status handler.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantStatusHandler implements BodyHandler
+{
+    /**
+     * Handle the body element.
+     * @param soapDetails The SOAP details.
+     * @param context The current message context.
+     * @param responseContext The response message context.
+     * @param action The transport SOAP action. 
+     * @param in The current stream reader.
+     * @throws XMLStreamException for parsing errors.
+     * @throws SoapFault for processing errors.
+     * @return The response elements or null if one way.
+     */
+    public SoapBody invoke(final SoapDetails soapDetails, final MessageContext context,
+        final MessageContext responseContext, final String action, final XMLStreamReader in)
+        throws XMLStreamException, SoapFault
+    {
+        final StatusType status = new StatusType(in) ;
+        final AddressingContext addressingContext = AddressingContext.getContext(context) ;
+        final ArjunaContext arjunaContext = ArjunaContext.getContext(context) ;
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantCompletionParticipantProcessor.getProcessor().status(status, addressingContext, arjunaContext) ;
+            }
+        }) ;
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionCoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionCoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionCoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsba.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorCancelledHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorClosedHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorCompensatedHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorCompletedHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorExitHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorFaultHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorGetStatusHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorSoapFaultHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionCoordinatorStatusHandler;
+
+/**
+ * Policy responsible for binding in the WS-BusinessActivity header handlers.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPLETED_QNAME, new CoordinatorCompletionCoordinatorCompletedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULT_QNAME, new CoordinatorCompletionCoordinatorFaultHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATED_QNAME, new CoordinatorCompletionCoordinatorCompensatedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSED_QNAME, new CoordinatorCompletionCoordinatorClosedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCELLED_QNAME, new CoordinatorCompletionCoordinatorCancelledHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXIT_QNAME, new CoordinatorCompletionCoordinatorExitHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME, new CoordinatorCompletionCoordinatorGetStatusHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME, new CoordinatorCompletionCoordinatorStatusHandler()) ;
+        registry.registerFaultHandler(new CoordinatorCompletionCoordinatorSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXIT_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCELLED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULT_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPLETED_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionParticipantPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionParticipantPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/CoordinatorCompletionParticipantPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsba.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantCancelHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantCloseHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantCompensateHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantCompleteHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantExitedHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantFaultedHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantGetStatusHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantSoapFaultHandler;
+import com.arjuna.webservices.wsba.handlers.CoordinatorCompletionParticipantStatusHandler;
+
+/**
+ * Policy responsible for binding in the WS-BusinessActivity header handlers.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPLETE_QNAME, new CoordinatorCompletionParticipantCompleteHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSE_QNAME, new CoordinatorCompletionParticipantCloseHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCEL_QNAME, new CoordinatorCompletionParticipantCancelHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATE_QNAME, new CoordinatorCompletionParticipantCompensateHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULTED_QNAME, new CoordinatorCompletionParticipantFaultedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXITED_QNAME, new CoordinatorCompletionParticipantExitedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME, new CoordinatorCompletionParticipantGetStatusHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME, new CoordinatorCompletionParticipantStatusHandler()) ;
+        registry.registerFaultHandler(new CoordinatorCompletionParticipantSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXITED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULTED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATE_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCEL_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSE_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPLETE_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionCoordinatorPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionCoordinatorPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionCoordinatorPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.webservices.wsba.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorCancelledHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorClosedHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorCompensatedHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorCompletedHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorExitHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorFaultHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorGetStatusHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorSoapFaultHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionCoordinatorStatusHandler;
+
+/**
+ * Policy responsible for binding in the WS-BusinessActivity header handlers.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPLETED_QNAME, new ParticipantCompletionCoordinatorCompletedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULT_QNAME, new ParticipantCompletionCoordinatorFaultHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATED_QNAME, new ParticipantCompletionCoordinatorCompensatedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSED_QNAME, new ParticipantCompletionCoordinatorClosedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCELLED_QNAME, new ParticipantCompletionCoordinatorCancelledHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXIT_QNAME, new ParticipantCompletionCoordinatorExitHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME, new ParticipantCompletionCoordinatorGetStatusHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME, new ParticipantCompletionCoordinatorStatusHandler()) ;
+        registry.registerFaultHandler(new ParticipantCompletionCoordinatorSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXIT_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCELLED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULT_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPLETED_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionParticipantPolicy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionParticipantPolicy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/policy/ParticipantCompletionParticipantPolicy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.policy;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantCancelHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantCloseHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantCompensateHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantExitedHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantFaultedHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantGetStatusHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantSoapFaultHandler;
+import com.arjuna.webservices.wsba.handlers.ParticipantCompletionParticipantStatusHandler;
+
+/**
+ * Policy responsible for binding in the WS-BusinessActivity header handlers.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantPolicy
+{
+    /**
+     * Add this policy to the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void register(final HandlerRegistry registry)
+    {
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSE_QNAME, new ParticipantCompletionParticipantCloseHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCEL_QNAME, new ParticipantCompletionParticipantCancelHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATE_QNAME, new ParticipantCompletionParticipantCompensateHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULTED_QNAME, new ParticipantCompletionParticipantFaultedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXITED_QNAME, new ParticipantCompletionParticipantExitedHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME, new ParticipantCompletionParticipantGetStatusHandler()) ;
+        registry.registerBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME, new ParticipantCompletionParticipantStatusHandler()) ;
+        registry.registerFaultHandler(new ParticipantCompletionParticipantSoapFaultHandler()) ;
+    }
+
+    /**
+     * Remove this policy from the registry.
+     * @param registry The registry containing the policy.
+     */
+    public static void remove(final HandlerRegistry registry)
+    {
+        registry.registerFaultHandler(null) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_GET_STATUS_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_EXITED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_FAULTED_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_COMPENSATE_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CANCEL_QNAME) ;
+        registry.removeBodyHandler(BusinessActivityConstants.WSBA_ELEMENT_CLOSE_QNAME) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+
+
+
+/**
+ * The Coordinator Completion Coordinator processor.
+ * @author kevin
+ */
+public abstract class CoordinatorCompletionCoordinatorProcessor
+{
+    /**
+     * The coordinator processor.
+     */
+    private static CoordinatorCompletionCoordinatorProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The singleton.
+     */
+    public static synchronized CoordinatorCompletionCoordinatorProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+    
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized CoordinatorCompletionCoordinatorProcessor setProcessor(final CoordinatorCompletionCoordinatorProcessor processor)
+    {
+        final CoordinatorCompletionCoordinatorProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+    
+    /**
+     * Activate the coordinator.
+     * @param coordinatorState The coordinator.
+     * @param identifier The identifier.
+     */
+    public abstract void activateCoordinator(final CoordinatorCompletionCoordinatorInboundEvents coordinator, final String identifier) ;
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public abstract void deactivateCoordinator(final CoordinatorCompletionCoordinatorInboundEvents coordinator) ;
+    
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exit(final NotificationType exit, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Fault.
+     * @param fault The fault exception.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+
+
+/**
+ * The Coordinator Completion Participant processor.
+ * @author kevin
+ */
+public abstract class CoordinatorCompletionParticipantProcessor
+{
+    /**
+     * The participant processor.
+     */
+    private static CoordinatorCompletionParticipantProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized CoordinatorCompletionParticipantProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+    
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized CoordinatorCompletionParticipantProcessor setProcessor(final CoordinatorCompletionParticipantProcessor processor)
+    {
+        final CoordinatorCompletionParticipantProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+    
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final CoordinatorCompletionParticipantInboundEvents participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final CoordinatorCompletionParticipantInboundEvents participant) ;
+    
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void complete(final NotificationType complete, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Faulted.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents;
+import com.arjuna.webservices.wsba.StatusType;
+
+
+/**
+ * The Participant Completion Coordinator processor.
+ * @author kevin
+ */
+public abstract class ParticipantCompletionCoordinatorProcessor
+{
+    /**
+     * The coordinator processor.
+     */
+    private static ParticipantCompletionCoordinatorProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized ParticipantCompletionCoordinatorProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+    
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized ParticipantCompletionCoordinatorProcessor setProcessor(final ParticipantCompletionCoordinatorProcessor processor)
+    {
+        final ParticipantCompletionCoordinatorProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+    
+    /**
+     * Activate the coordinator.
+     * @param coordinatorState The coordinator.
+     * @param identifier The identifier.
+     */
+    public abstract void activateCoordinator(final ParticipantCompletionCoordinatorInboundEvents coordinator, final String identifier) ;
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public abstract void deactivateCoordinator(final ParticipantCompletionCoordinatorInboundEvents coordinator) ;
+    
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exit(final NotificationType exit, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Fault.
+     * @param fault The fault exception.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents;
+import com.arjuna.webservices.wsba.StatusType;
+
+
+/**
+ * The Participant Completion Participant processor.
+ * @author kevin
+ */
+public abstract class ParticipantCompletionParticipantProcessor
+{
+    /**
+     * The participant processor.
+     */
+    private static ParticipantCompletionParticipantProcessor PROCESSOR ;
+    
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized ParticipantCompletionParticipantProcessor getProcessor()
+    {
+        return PROCESSOR ;
+    }
+    
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized ParticipantCompletionParticipantProcessor setProcessor(final ParticipantCompletionParticipantProcessor processor)
+    {
+        final ParticipantCompletionParticipantProcessor origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+    
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final ParticipantCompletionParticipantInboundEvents participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final ParticipantCompletionParticipantInboundEvents participant) ;
+    
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Faulted.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext) ;
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext 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 AddressingContext addressingContext,
+        final ArjunaContext arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.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.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.policy.CoordinatorCompletionCoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Coordinator Completion Coordinator service
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorInitialisation 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 Coordinator Completion coordinator.
+               CoordinatorCompletionCoordinatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_COORDINATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.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.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.policy.CoordinatorCompletionParticipantPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Coordinator Completion Participant service
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantInitialisation 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 Coordinator Completion participant.
+               CoordinatorCompletionParticipantPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.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.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.policy.ParticipantCompletionCoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Participant Completion Coordinator service
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorInitialisation 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 Participant Completion coordinator.
+               ParticipantCompletionCoordinatorPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_COORDINATOR,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wsba.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.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.policy.ParticipantCompletionParticipantPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Participant Completion Participant service
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantInitialisation 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 Participant Completion participant.
+               ParticipantCompletionParticipantPolicy.register(handlerRegistry) ;
+        
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * 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-T/dev/src/com/arjuna/wst/Aborted.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Aborted.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Aborted.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: Aborted.java,v 1.1 2003/02/03 16:24:45 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Aborted: the participant has aborted and the transaction should also
+ * attempt to do so.
+ */
+
+public class Aborted implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,86 @@
+/*
+ * 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;
+
+/**
+ * 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 BAParticipantManager
+{
+
+    /**
+     * 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;
+
+    /**
+     * Fault.
+     */
+
+    public void fault () throws SystemException;
+    
+    /**
+     * An unknown error has occurred that the participant wants to communicate
+     * to the coordinator.
+     */
+
+    public void unknown () throws SystemException;
+
+    /**
+     * An error has occurred during the execution of the protocol that the
+     * participant wants to communicate to the coordinator.
+     */
+
+    public void error () throws SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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;
+
+/**
+ * Not in the 1.1 specification. Supposed to use participant interface.
+ */
+
+public interface BusinessActivityTerminator
+{
+
+    public void close () throws TransactionRolledBackException, UnknownTransactionException, SystemException;
+    
+    public void cancel () throws FaultedException, UnknownTransactionException, SystemException;
+
+    public void complete () throws FaultedException, UnknownTransactionException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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, 2003, 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessAgreementWithCoordinatorCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:02:33 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+public interface BusinessAgreementWithCoordinatorCompletionParticipant extends BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    /**
+     * The coordinator is informing the participant that all work it needs to
+     * do within the scope of this business activity has been received.
+     */
+
+    public void complete () throws WrongStateException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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: BusinessAgreementWithParticipantCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:02:33 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+public interface BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    /**
+     * The transaction has completed successfully. The participant previously
+     * informed the coordinator that it was ready to complete.
+     */
+
+    public void close () throws WrongStateException, SystemException;
+
+    /**
+     * The transaction has cancelled, and the participant should undo any work.
+     * The participant cannot have informed the coordinator that it has
+     * completed.
+     */
+
+    public void cancel () throws WrongStateException, SystemException;
+
+    /**
+     * The transaction has cancelled. The participant previously
+     * informed the coordinator that it had finished work but could compensate
+     * later if required, so it is now requested to do so.
+     */
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException;
+
+    /**
+     * @return the status value.
+     */
+
+    public String status () throws SystemException;
+
+    /**
+     * If the participant enquires as to the status of the transaction it was
+     * registered with and that transaction is no longer available (has rolled
+     * back) then this operation will be invoked by the coordination service.
+     */
+
+    public void unknown () throws SystemException;
+
+    /**
+     * If the participant enquired as to the status of the transaction it was
+     * registered with and an error occurs (e.g., the transaction service is
+     * unavailable) then this operation will be invoked.
+     */
+
+    public void error () throws SystemException;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Cancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Cancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Cancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,40 @@
+/*
+ * 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: Aborted.java,v 1.1 2003/02/03 16:24:45 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Cancel: the participant is in an unknown state and should be rolledback.
+ */
+
+public class Cancel implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CompletionCoordinatorParticipant.java,v 1.1 2003/02/19 17:28:58 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ */
+
+public interface CompletionCoordinatorParticipant
+{
+
+    public void commit () throws TransactionRolledBackException, UnknownTransactionException, SystemException;
+    
+    public void rollback () throws UnknownTransactionException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Durable2PCParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Durable2PCParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Durable2PCParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Durable2PCParticipant.java,v 1.1.2.1 2004/05/17 10:40:04 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * The Durable2PCParticipant. Unlike all traditional TP implementations, the
+ * one-phase commit optimisation is not supported. It was in the 1.0
+ * version of the protocol, but not now!
+ */
+
+public interface Durable2PCParticipant extends Participant
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/FaultedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/FaultedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/FaultedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: FaultedException.java,v 1.1 2004/04/21 15:57:04 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Thrown if there is a fault during complete or compensation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: FaultedException.java,v 1.1 2004/04/21 15:57:04 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class FaultedException extends Exception
+{
+    
+    public FaultedException ()
+    {
+	super();
+    }
+
+    public FaultedException (String s)
+    {
+	super(s);
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Participant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Participant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Participant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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;
+
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * The base Participant.
+ */
+public interface Participant
+{
+
+    /**
+     * Perform any work necessary to allow it to either commit or rollback
+     * the work performed by the Web service under the scope of the
+     * transaction. The implementation is free to do whatever it needs to in
+     * order to fulfill the implicit contract between it and the coordinator.
+     *
+     * @return an indication of whether it can prepare or not.
+     * @see com.arjuna.wst.Vote
+     */
+
+    public Vote prepare () throws WrongStateException, SystemException;
+
+    /**
+     * The participant should make permanent the work that it controls.
+     */
+
+    public void commit () throws WrongStateException, SystemException;
+
+    /**
+     * The participant should undo the work that it controls. The participant
+     * will then return an indication of whether or not it succeeded.
+     */
+
+    public void rollback () throws WrongStateException, SystemException;
+
+    /**
+     * During recovery the participant can enquire as to the status of the
+     * transaction it was registered with. If that transaction is no longer
+     * available (has rolled back) then this operation will be invoked by the
+     * coordination service.
+     */
+
+    public void unknown () throws SystemException;
+
+    /**
+     * During recovery the participant can enquire as to the status of the
+     * transaction it was registered with. If an error occurs (e.g., the
+     * transaction service is unavailable) then this operation will be invoked.
+     */
+    
+    void error () throws SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/PersistableParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/PersistableParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/PersistableParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,44 @@
+package com.arjuna.wst;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+
+/*
+ * 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.
+ */
+/**
+ * The interface for a persistable resource.
+ */
+public interface PersistableParticipant
+{
+    /**
+     * Save the state of the particpant to the specified input object stream.
+     * @param oos The output output stream.
+     * @return true if persisted, false otherwise.
+     */
+    public boolean saveState(final OutputObjectState oos) ;
+    
+    /**
+     * Restore the state of the particpant from the specified input object stream.
+     * @param ios The Input object stream.
+     * @return true if restored, false otherwise.
+     */
+    public boolean restoreState(final InputObjectState ios);
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Prepared.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Prepared.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Prepared.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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: Prepared.java,v 1.1 2003/02/03 16:24:45 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Prepared: it is prepared to commit or rollback depending on the final
+ * transaction outcome, and it has made sufficient state updates persistent
+ * to accomplish this.
+ */
+
+public class Prepared implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/ReadOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/ReadOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/ReadOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: ReadOnly.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * ReadOnly: does not need to be informed of the transaction outcome as no
+ * state updates were made.
+ */
+
+public class ReadOnly implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Status.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Status.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Status.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Status.java,v 1.1.2.1 2004/05/26 10:02:33 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ */
+
+public class Status
+{
+    
+    public static final String STATUS_ACTIVE                = "Active";
+    public static final String STATUS_CANCELING             = "Canceling";
+    public static final String STATUS_CANCELING_ACTIVE      = "Canceling-Active";
+    public static final String STATUS_CANCELING_COMPLETING  = "Canceling-Completing";
+    public static final String STATUS_COMPLETING            = "Completing";
+    public static final String STATUS_COMPLETED             = "Completed";
+    public static final String STATUS_CLOSING               = "Closing";
+    public static final String STATUS_COMPENSATING          = "Compensating";
+    public static final String STATUS_FAULTING              = "Faulting";
+    public static final String STATUS_FAULTING_ACTIVE       = "Faulting-Active";
+    public static final String STATUS_FAULTING_COMPENSATING = "Faulting-Compensating";
+    public static final String STATUS_EXITING               = "Exiting";
+    public static final String STATUS_ENDED                 = "Ended";
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/SystemException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/SystemException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/SystemException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SystemException.java,v 1.2 2003/04/11 14:47:29 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Thrown if a general exception is encountered (one not supported by
+ * any other exception.)
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SystemException.java,v 1.2 2003/04/11 14:47:29 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SystemException extends Exception
+{
+    
+    public SystemException ()
+    {
+	super();
+    }
+
+    public SystemException (String s)
+    {
+	super(s);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/TransactionRolledBackException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/TransactionRolledBackException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/TransactionRolledBackException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: TransactionRolledBackException.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Thrown if the transaction rolls back rather than commits.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionRolledBackException.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionRolledBackException extends Exception
+{
+    
+    public TransactionRolledBackException ()
+    {
+	super();
+    }
+
+    public TransactionRolledBackException (String s)
+    {
+	super(s);
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/UnknownTransactionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/UnknownTransactionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/UnknownTransactionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: UnknownTransactionException.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Thrown if the transaction is unknown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnknownTransactionException.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnknownTransactionException extends Exception
+{
+    
+    public UnknownTransactionException ()
+    {
+	super();
+    }
+
+    public UnknownTransactionException (String s)
+    {
+	super(s);
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Volatile2PCParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Volatile2PCParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Volatile2PCParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Volatile2PCParticipant.java,v 1.1.2.1 2004/05/26 10:02:34 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * The Volatile2PCParticipant. This is the equivalent of the traditional
+ * synchronization protocol (the old PhaseZero and OutcomeNotification
+ * protocols.)
+ */
+
+public interface Volatile2PCParticipant extends Participant
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Vote.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Vote.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/Vote.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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: Vote.java,v 1.2 2003/03/24 11:01:42 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * When asked to prepare, a 2PC participant returns one of three types of
+ * vote:
+ *
+ * ReadOnly: does not need to be informed of the transaction outcome as no
+ * state updates were made.
+ * Prepared: it is prepared to commit or rollback depending on the final
+ * transaction outcome, and it has made sufficient state updates persistent
+ * to accomplish this.
+ * Aborted: the participant has aborted and the transaction should also
+ * attempt to do so.
+ *
+ * @see com.arjuna.wst.ReadOnly
+ * @see com.arjuna.wst.Prepared
+ * @see com.arjuna.wst.Aborted
+ */
+
+public interface Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/WrongStateException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/WrongStateException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/WrongStateException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: WrongStateException.java,v 1.2 2003/04/11 14:47:29 nmcl Exp $
+ */
+
+package com.arjuna.wst;
+
+/**
+ * Thrown if the state of the transaction is incompatible with the
+ * operation attempted. For example, asking the transaction to rollback
+ * if it is already committing.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WrongStateException.java,v 1.2 2003/04/11 14:47:29 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class WrongStateException extends Exception
+{
+    
+    public WrongStateException ()
+    {
+	super();
+    }
+
+    public WrongStateException (String s)
+    {
+	super(s);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,241 @@
+/*
+ * 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 java.text.MessageFormat;
+
+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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.client.CompletionInitiatorClient;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+/**
+ * The Completion Coordinator processor.
+ * @author kevin
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_1 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_1] - Unknown transaction
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_2 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_2] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_3 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_3] - Unexpected exception thrown from commit: 
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_4 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_4] - Commit called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_5 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_5] - Unknown participant
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_6 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_6] - Unknown transaction
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_7 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_7] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_8 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_8] - Unexpected exception thrown from rollback: 
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_9 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_9] - Rollback called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_10 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_10] - Unknown participant
+ */
+public class CompletionCoordinatorProcessorImpl extends CompletionCoordinatorProcessor
+{
+    /**
+     * 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 CompletionCoordinatorParticipant participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final CompletionCoordinatorParticipant 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 CompletionCoordinatorParticipant getParticipant(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CompletionCoordinatorParticipant)activatedObjectProcessor.getObject(identifier) ;
+    }
+    
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void commit(final NotificationType commit, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CompletionCoordinatorParticipant participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.commit() ;
+                }
+                catch (final TransactionRolledBackException trbe)
+                {
+                    final AddressingContext responseAddressingContext =
+                        AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                    CompletionInitiatorClient.getClient().sendAborted(responseAddressingContext, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_1")) ;
+                    CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_2") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_3", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingContext responseAddressingContext =
+                    AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                CompletionInitiatorClient.getClient().sendCommitted(responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_4", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_5")) ;
+                CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+    
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void rollback(final NotificationType rollback, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CompletionCoordinatorParticipant participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.rollback() ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_6")) ;
+                    CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (SystemException systemException)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_7") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {systemException}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_8", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingContext responseAddressingContext =
+                    AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                CompletionInitiatorClient.getClient().sendAborted(responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_9", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                    WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl_10")) ;
+                CompletionInitiatorClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionParticipantClient;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+
+
+/**
+ * The Coordinator Completion Coordinator processor.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorProcessorImpl extends CoordinatorCompletionCoordinatorProcessor
+{
+    /**
+     * 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 CoordinatorCompletionCoordinatorInboundEvents coordinator, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(coordinator, identifier) ;
+    }
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public void deactivateCoordinator(final CoordinatorCompletionCoordinatorInboundEvents 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 CoordinatorCompletionCoordinatorInboundEvents getCoordinator(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CoordinatorCompletionCoordinatorInboundEvents)activatedObjectProcessor.getObject(identifier) ;
+    }
+    
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.cancelled_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.cancelled_1] - Unexpected exception thrown from cancelled:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.cancelled_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.cancelled_2] - Cancelled called on unknown coordinator: {0}
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.cancelled(cancelled, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.cancelled_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.cancelled_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.closed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.closed_1] - Unexpected exception thrown from closed:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.closed_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.closed_2] - Closed called on unknown coordinator: {0}
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.closed(closed, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.closed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.closed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.compensated_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.compensated_1] - Unexpected exception thrown from compensated:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.compensated_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.compensated_2] - Compensated called on unknown coordinator: {0}
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.compensated(compensated, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.compensated_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.compensated_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.completed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.completed_1] - Unexpected exception thrown from completed:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.completed_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.completed_2] - Completed called on unknown coordinator: {0}
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.completed(completed, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.completed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.completed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.exit_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.exit_1] - Unexpected exception thrown from exit:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.exit_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.exit_2] - Exit called on unknown coordinator: {0}
+     */
+    public void exit(final NotificationType exit, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.exit(exit, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.exit_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.exit_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendExited(addressingContext, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Fault.
+     * @param fault The fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.fault_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.fault_1] - Unexpected exception thrown from fault:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.fault_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.fault_2] - Fault called on unknown coordinator: {0}
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.fault(fault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.fault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.fault_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendFaulted(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.getStatus_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.getStatus_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.getStatus_2] - GetStatus called on unknown coordinator: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.status_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.status_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.status_2] - Status called on unknown coordinator: {0}
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.status(status, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.soapFault_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.soapFault_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.soapFault_2] - SoapFault called on unknown coordinator: {0}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Send an exited message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendExited_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendExited(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendExited_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a faulted message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendFaulted_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendFaulted_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFaulted(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendFaulted(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendExited_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,506 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionCoordinatorClient;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+
+
+/**
+ * The Coordinator Completion Participant processor.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantProcessorImpl extends CoordinatorCompletionParticipantProcessor
+{
+    /**
+     * 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 CoordinatorCompletionParticipantInboundEvents participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final CoordinatorCompletionParticipantInboundEvents 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 CoordinatorCompletionParticipantInboundEvents getParticipant(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CoordinatorCompletionParticipantInboundEvents)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.cancel_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.cancel_1] - Unexpected exception thrown from cancel:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.cancel_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.cancel_2] - Cancel called on unknown participant: {0}
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.cancel(cancel, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.cancel_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.cancel_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCancelled(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.close_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.close_1] - Unexpected exception thrown from close:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.close_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.close_2] - Close called on unknown participant: {0}
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.close(close, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.close_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.close_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendClosed(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.compensate_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.compensate_1] - Unexpected exception thrown from compensate:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.compensate_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.compensate_2] - Compensate called on unknown participant: {0}
+     */
+    public void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.compensate(compensate, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.compensate_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.compensate_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCompensated(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_1] - Unexpected exception thrown from complete:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_2] - Complete called on unknown participant: {0}
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_3 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_3] - Complete called on unknown participant
+     */
+    public void complete(final NotificationType complete, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.complete(complete, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendFault(addressingContext, arjunaContext, WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.complete_3")) ;
+        }
+    }
+    
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.exited_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.exited_1] - Unexpected exception thrown from exited:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.exited_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.exited_2] - Exited called on unknown participant: {0}
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.exited(exited, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.exited_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.exited_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Faulted.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.faulted_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.faulted_1] - Unexpected exception thrown from faulted:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.faulted_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.faulted_2] - Faulted called on unknown participant: {0}
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.faulted(faulted, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.faulted_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.faulted_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.getStatus_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.getStatus_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.getStatus_2] - GetStatus called on unknown participant: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.status_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.status_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.status_2] - Status called on unknown participant: {0}
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.status(status, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.soapFault_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.soapFault_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.soapFault_2] - SoapFault called on unknown participant: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.soapFault(fault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Send a cancelled message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendCancelled_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCancelled(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendCancelled_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a closed message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendClosed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendClosed(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendClosed_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a compensated message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendCompensated_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCompensated(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendCompensated_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a fault message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * @param exceptionIdentifier The exception identifier.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendFault_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendFault_1] - Unexpected exception while sending Fail
+     */
+    private void sendFault(final AddressingContext addressingContext, final ArjunaContext arjunaContext, final String exceptionIdentifier)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendFault(responseAddressingContext, arjunaContext.getInstanceIdentifier(), exceptionIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl.sendFault_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,383 @@
+/*
+ * 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.SoapFaultType;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.CoordinatorInboundEvents;
+import com.arjuna.webservices.wsat.client.ParticipantClient;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.wsc.messaging.MessageId;
+
+/**
+ * The Coordinator processor.
+ * @author kevin
+ */
+public class CoordinatorProcessorImpl extends CoordinatorProcessor
+{
+    /**
+     * 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 CoordinatorInboundEvents coordinator, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(coordinator, identifier) ;
+    }
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public void deactivateCoordinator(final CoordinatorInboundEvents 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 CoordinatorInboundEvents getCoordinator(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CoordinatorInboundEvents)activatedObjectProcessor.getObject(identifier) ;
+    }
+    
+    /**
+     * Aborted.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.aborted_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.aborted_1] - Unexpected exception thrown from aborted:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.aborted_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.aborted_2] - Aborted called on unknown coordinator: {0}
+     */
+    public void aborted(final NotificationType aborted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+        
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.aborted(aborted, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.aborted_1", th) ; 
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+        {
+            WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.aborted_2", new Object[] {instanceIdentifier}) ; 
+        }
+    }
+    
+    /**
+     * Committed.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.committed_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.committed_1] - Unexpected exception thrown from committed:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.committed_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.committed_2] - Committed called on unknown coordinator: {0}
+     */
+    public void committed(final NotificationType committed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+        
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.committed(committed, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.committed_1", th) ; 
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+        {
+            WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.committed_2", new Object[] {instanceIdentifier}) ; 
+        }
+    }
+    
+    /**
+     * Prepared.
+     * @param prepared The prepared notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.prepared_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.prepared_1] - Unexpected exception thrown from prepared:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.prepared_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.prepared_2] - Prepared called on unknown coordinator: {0}
+     */
+    public void prepared(final NotificationType prepared, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+        
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.prepared(prepared, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.prepared_1", th) ; 
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.prepared_2", new Object[] {instanceIdentifier}) ; 
+            }
+            
+            final String identifierValue = instanceIdentifier.getInstanceIdentifier() ;
+            if ((identifierValue != null) && (identifierValue.length() > 0) && (identifierValue.charAt(0) == 'D'))
+            {
+        	sendRollback(addressingContext, arjunaContext) ;
+            }
+            else
+            {
+                sendInvalidState(addressingContext, arjunaContext) ;
+            }
+        }
+    }
+    
+    /**
+     * Read only.
+     * @param readOnly The read only notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.readOnly_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.readOnly_1] - Unexpected exception thrown from readOnly:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.readOnly_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.readOnly_2] - ReadOnly called on unknown coordinator: {0}
+     */
+    public void readOnly(final NotificationType readOnly, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+        
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.readOnly(readOnly, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.readOnly_1", th) ; 
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+        {
+            WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.readOnly_2", new Object[] {instanceIdentifier}) ; 
+        }
+    }
+    
+    /**
+     * Replay.
+     * @param replay The replay notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.replay_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.replay_1] - Unexpected exception thrown from replay:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.replay_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.replay_2] - Replay called on unknown coordinator: {0}
+     */
+    public void replay(final NotificationType replay, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+        
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.replay(replay, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.replay_1", th) ; 
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.replay_2", new Object[] {instanceIdentifier}) ; 
+            }
+
+            
+            final String identifierValue = instanceIdentifier.getInstanceIdentifier() ;
+            if ((identifierValue != null) && (identifierValue.length() > 0) && (identifierValue.charAt(0) == 'D'))
+            {
+        	sendRollback(addressingContext, arjunaContext) ;
+            }
+            else
+            {
+                sendInvalidState(addressingContext, arjunaContext) ;
+            }
+        }
+    }
+
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.soapFault_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.soapFault_1] - Unexpected exception thrown from soapFault: 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.soapFault_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.soapFault_2] - SoapFault called on unknown coordinator: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.soapFault(fault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+            }
+        }
+    }
+    
+    /**
+     * Send an unknown transaction fault.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendInvalidState_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendInvalidState_1] - Unknown Transaction.
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendInvalidState_2 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendInvalidState_2] - Unexpecting exception while sending InvalidState
+     */
+    private void sendInvalidState(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String responseMessageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), responseMessageId) ;
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        
+        final AttributedURIType requestMessageId = addressingContext.getMessageID() ;
+        if (requestMessageId != null)
+        {
+            responseAddressingContext.addRelatesTo(new RelationshipType(requestMessageId.getValue())) ;
+        }
+        
+        try
+        {
+            final String message = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendInvalidState_1") ;
+            final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME, message) ;
+            ParticipantClient.getClient().sendSoapFault(responseAddressingContext, soapFault, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendInvalidState_2", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a rollback message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendRollback_1 [com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendRollback_1] - Unexpected exception while sending Rollback
+     */
+    private void sendRollback(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createNotificationContext(addressingContext, messageId) ;
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        try
+        {
+            ParticipantClient.getClient().sendRollback(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorProcessorImpl.sendRollback_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionParticipantClient;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+
+
+/**
+ * The Participant Completion Coordinator processor.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorProcessorImpl extends ParticipantCompletionCoordinatorProcessor
+{
+    /**
+     * 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 ParticipantCompletionCoordinatorInboundEvents coordinator, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(coordinator, identifier) ;
+    }
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public void deactivateCoordinator(final ParticipantCompletionCoordinatorInboundEvents 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 ParticipantCompletionCoordinatorInboundEvents getCoordinator(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (ParticipantCompletionCoordinatorInboundEvents)activatedObjectProcessor.getObject(identifier) ;
+    }
+    
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.cancelled_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.cancelled_1] - Unexpected exception thrown from cancelled:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.cancelled_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.cancelled_2] - Cancelled called on unknown coordinator: {0}
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.cancelled(cancelled, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.cancelled_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.cancelled_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.closed_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.closed_1] - Unexpected exception thrown from closed:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.closed_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.closed_2] - Closed called on unknown coordinator: {0}
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.closed(closed, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.closed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.closed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.compensated_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.compensated_1] - Unexpected exception thrown from compensated:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.compensated_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.compensated_2] - Compensated called on unknown coordinator: {0}
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.compensated(compensated, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.compensated_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.compensated_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.completed_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.completed_1] - Unexpected exception thrown from completed:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.completed_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.completed_2] - Completed called on unknown coordinator: {0}
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.completed(completed, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.completed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.completed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.exit_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.exit_1] - Unexpected exception thrown from exit:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.exit_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.exit_2] - Exit called on unknown coordinator: {0}
+     */
+    public void exit(final NotificationType exit, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.exit(exit, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.exit_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.exit_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendExited(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Fault.
+     * @param fault The fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.fault_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.fault_1] - Unexpected exception thrown from fault:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.fault_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.fault_2] - Fault called on unknown coordinator: {0}
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.fault(fault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.fault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.fault_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendFaulted(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.getStatus_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.getStatus_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.getStatus_2] - GetStatus called on unknown coordinator: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.status_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.status_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.status_2] - Status called on unknown coordinator: {0}
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.status(status, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.soapFault_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.soapFault_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.soapFault_2] - SoapFault called on unknown coordinator: {0}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEvents coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.soapFault(soapFault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Send an exited message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.sendExited_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendExited(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.sendExited_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a faulted message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.sendFaulted_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.sendFaulted_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFaulted(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendFaulted(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl.sendFailed_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,440 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionCoordinatorClient;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+
+
+/**
+ * The Participant Completion Participant processor.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantProcessorImpl extends ParticipantCompletionParticipantProcessor
+{
+    /**
+     * 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 ParticipantCompletionParticipantInboundEvents participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final ParticipantCompletionParticipantInboundEvents 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 ParticipantCompletionParticipantInboundEvents getParticipant(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (ParticipantCompletionParticipantInboundEvents)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.cancel_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.cancel_1] - Unexpected exception thrown from cancel:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.cancel_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.cancel_2] - Cancel called on unknown participant: {0}
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.cancel(cancel, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.cancel_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.cancel_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCancelled(addressingContext, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.close_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.close_1] - Unexpected exception thrown from close:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.close_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.close_2] - Close called on unknown participant: {0}
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.close(close, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.close_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.close_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendClosed(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.compensate_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.compensate_1] - Unexpected exception thrown from compensate:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.compensate_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.compensate_2] - Compensate called on unknown participant: {0}
+     */
+    public void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.compensate(compensate, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.compensate_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.compensate_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCompensated(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.exited_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.exited_1] - Unexpected exception thrown from exited:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.exited_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.exited_2] - Exited called on unknown participant: {0}
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.exited(exited, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.exited_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.exited_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Faulted.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.faulted_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.faulted_1] - Unexpected exception thrown from faulted:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.faulted_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.faulted_2] - Faulted called on unknown participant: {0}
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.faulted(faulted, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.faulted_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.faulted_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.getStatus_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.getStatus_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.getStatus_2] - Complete called on unknown participant: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.getStatus(getStatus, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Status.
+     * @param status The status type.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.status_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.status_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.status_2] - Status called on unknown participant: {0}
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.status(status, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.soapFault_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.soapFault_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.soapFault_2] - SoapFault called on unknown participant: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.soapFault(fault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+    
+    /**
+     * Send a cancelled message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendCancelled_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCancelled(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendCancelled_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a closed message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendClosed_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendClosed(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendClosed_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a compensated message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendCompensated_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createRequestContext(addressingContext.getFrom(), messageId) ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCompensated(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl.sendCompensated_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,284 @@
+/*
+ * 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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.ParticipantInboundEvents;
+import com.arjuna.webservices.wsat.client.CoordinatorClient;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+
+/**
+ * The Participant processor.
+ * @author kevin
+ */
+public class ParticipantProcessorImpl extends ParticipantProcessor
+{
+    /**
+     * 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 ParticipantInboundEvents participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final ParticipantInboundEvents 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 ParticipantInboundEvents getParticipant(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (ParticipantInboundEvents)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.commit_1 [com.arjuna.wst.messaging.ParticipantProcessorImpl.commit_1] - Unexpected exception thrown from commit:
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.commit_2 [com.arjuna.wst.messaging.ParticipantProcessorImpl.commit_2] - Commit called on unknown participant: {0}
+     */
+    public void commit(final NotificationType commit, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+        
+        if (participant != null)
+        {
+            try
+            {
+                participant.commit(commit, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.commit_1", th) ; 
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.commit_2", new Object[] {instanceIdentifier}) ; 
+            }
+            sendCommitted(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Prepare.
+     * @param prepare The prepare notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.prepare_1 [com.arjuna.wst.messaging.ParticipantProcessorImpl.prepare_1] - Unexpected exception thrown from prepare: 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.prepare_2 [com.arjuna.wst.messaging.ParticipantProcessorImpl.prepare_2] - Prepare called on unknown participant: {0}
+     */
+    public void prepare(final NotificationType prepare, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.prepare(prepare, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.prepare_1", th) ; 
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.prepare_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendAborted(addressingContext, arjunaContext) ;
+        }
+    }
+    
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.rollback_1 [com.arjuna.wst.messaging.ParticipantProcessorImpl.rollback_1] - Unexpected exception thrown from rollback: 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.rollback_2 [com.arjuna.wst.messaging.ParticipantProcessorImpl.rollback_2] - Rollback called on unknown participant: {0}
+     */
+    public void rollback(final NotificationType rollback, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.rollback(rollback, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.rollback_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.rollback_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendAborted(addressingContext, arjunaContext) ;
+        }
+    }
+
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.soapFault_1 [com.arjuna.wst.messaging.ParticipantProcessorImpl.soapFault_1] - Unexpected exception thrown from soapFault: 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.soapFault_2 [com.arjuna.wst.messaging.ParticipantProcessorImpl.soapFault_2] - SoapFault called on unknown participant: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEvents participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.soapFault(fault, addressingContext, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+            }
+        }
+    }
+    
+    /**
+     * Send a committed message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.sendCommitted_1 [com.arjuna.wst.messaging.ParticipantProcessorImpl.sendCommitted_1] - Unexpected exception while sending Committed
+     */
+    private void sendCommitted(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createNotificationContext(addressingContext, messageId) ;
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        try
+        {
+            CoordinatorClient.getClient().sendCommitted(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantProcessorImpl.sendCommitted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send an aborted message.
+     * 
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.ParticipantProcessorImpl.sendAborted_1 [com.arjuna.wst.messaging.ParticipantProcessorImpl.sendAborted_1] - Unexpected exception while sending Aborted
+     */
+    private void sendAborted(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingContext responseAddressingContext = AddressingContext.createNotificationContext(addressingContext, messageId) ;
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        try
+        {
+            CoordinatorClient.getClient().sendAborted(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantProcessorImpl.sendAborted_1", th) ;
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,333 @@
+/*
+ * 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 java.text.MessageFormat;
+
+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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.client.TerminationParticipantClient;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+/**
+ * The Terminator Participant processor.
+ * @author kevin
+ * 
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_1 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_1] - Unknown transaction
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_2 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_2] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_3 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_3] - Unexpected exception thrown from cancel:
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_4 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_4] - Cancel called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_5 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_5] - Unknown participant
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_6 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_6] - Unknown transaction
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_7 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_7] - Transaction rolled back
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_8 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_8] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_9 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_9] - Unexpected exception thrown from close:
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_10 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_10] - Close called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_11 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_11] - Unknown participant
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_12 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_12] - Unknown transaction
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_13 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_13] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_14 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_14] - Unexpected exception thrown from complete:
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_15 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_15] - Complete called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_16 [com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_16] - Unknown participant
+ */
+public class TerminatorParticipantProcessorImpl extends TerminationCoordinatorProcessor
+{
+    /**
+     * 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 BusinessActivityTerminator participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final BusinessActivityTerminator 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 BusinessActivityTerminator getParticipant(final InstanceIdentifier instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (BusinessActivityTerminator)activatedObjectProcessor.getObject(identifier) ;
+    }
+    
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final BusinessActivityTerminator participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.cancel() ;
+                }
+                catch (final FaultedException fe)
+                {
+                    final AddressingContext responseAddressingContext =
+                        AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                    TerminationParticipantClient.getClient().sendFaulted(responseAddressingContext, instanceIdentifier) ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_1")) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_2") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_3", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingContext responseAddressingContext =
+                    AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                TerminationParticipantClient.getClient().sendCancelled(responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_4", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                    WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_5")) ;
+                TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+    
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final BusinessActivityTerminator participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.close() ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_6")) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final TransactionRolledBackException trbe)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.TRANSACTIONROLLEDBACK_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_7")) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_8") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_9", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingContext responseAddressingContext =
+                    AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                TerminationParticipantClient.getClient().sendClosed(responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_10", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                    WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_11")) ;
+                TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+    
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void complete(final NotificationType complete, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final BusinessActivityTerminator participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.complete() ;
+                }
+                catch (final FaultedException fe)
+                {
+                    final AddressingContext responseAddressingContext =
+                        AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                    TerminationParticipantClient.getClient().sendFaulted(responseAddressingContext, instanceIdentifier) ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_12")) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_13") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_14", th) ;
+                    }
+                    final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingContext responseAddressingContext =
+                    AddressingContext.createNotificationContext(addressingContext, messageId) ;
+                TerminationParticipantClient.getClient().sendCompleted(responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_15", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingContext faultAddressingContext = AddressingContext.createFaultContext(addressingContext, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                    WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl_16")) ;
+                TerminationParticipantClient.getClient().sendSoapFault(faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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 javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.common.util.SharedTimer;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl;
+import com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl;
+import com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl;
+import com.arjuna.wst.messaging.CoordinatorProcessorImpl;
+import com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl;
+import com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl;
+import com.arjuna.wst.messaging.ParticipantProcessorImpl;
+import com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Initialise the transaction services.
+ * @author kevin
+ */
+public class TransactionInitialisation 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() {
+               CompletionCoordinatorProcessor.setProcessor(new CompletionCoordinatorProcessorImpl()) ;
+               ParticipantProcessor.setProcessor(new ParticipantProcessorImpl()) ;
+               CoordinatorProcessor.setProcessor(new CoordinatorProcessorImpl()) ;
+               TerminationCoordinatorProcessor.setProcessor(new TerminatorParticipantProcessorImpl()) ;
+               CoordinatorCompletionParticipantProcessor.setProcessor(new CoordinatorCompletionParticipantProcessorImpl()) ;
+               ParticipantCompletionParticipantProcessor.setProcessor(new ParticipantCompletionParticipantProcessorImpl()) ;
+               CoordinatorCompletionCoordinatorProcessor.setProcessor(new CoordinatorCompletionCoordinatorProcessorImpl()) ;
+               ParticipantCompletionCoordinatorProcessor.setProcessor(new ParticipantCompletionCoordinatorProcessorImpl()) ;
+           }
+        };
+        // this is the last WST callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WST);
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+        SharedTimer.getTimer().cancel() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,844 @@
+/*
+ * 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 java.io.IOException;
+
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionParticipantClient;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BAParticipantManager;
+
+/**
+ * The coordinator completion coordinator state engine
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorEngine implements CoordinatorCompletionCoordinatorInboundEvents
+{
+    /**
+     * The coordinator id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifier instanceIdentifier ;
+    /**
+     * The participant endpoint reference.
+     */
+    private final EndpointReferenceType participant ;
+    /**
+     * The associated coordinator
+     */
+    private BAParticipantManager coordinator ;
+    /**
+     * The current state.
+     */
+    private State state ;
+    
+    /**
+     * Construct the initial engine for the coordinator.
+     * @param id The coordinator id.
+     * @param participant The participant endpoint reference.
+     */
+    public CoordinatorCompletionCoordinatorEngine(final String id, final EndpointReferenceType participant)
+    {
+        this(id, participant, State.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 CoordinatorCompletionCoordinatorEngine(final String id, final EndpointReferenceType participant,
+        final State state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifier(id) ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+    
+    /**
+     * Set the coordinator and register
+     * @param coordinator
+     */
+    public void setCoordinator(final BAParticipantManager coordinator)
+    {
+        this.coordinator = coordinator ;
+        CoordinatorCompletionCoordinatorProcessor.getProcessor().activateCoordinator(this, id) ;
+    }
+    
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Active (invalid state)
+     * Canceling -> Ended
+     * Canceling-Active -> Ended
+     * Canceling-Completing -> Ended
+     * Completing -> Completing (invalid state)
+     * 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 (invalid state)
+     * Ended -> Ended
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_CANCELING) || (current == State.STATE_CANCELING_ACTIVE) ||
+                (current == State.STATE_CANCELING_COMPLETING))
+            {
+                ended() ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Canceling-Active -> Canceling (invalid state)
+     * Canceling-Completing -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Ended
+     * Compensating -> Compensating (invalid state)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_CLOSING)
+            {
+                ended() ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Canceling-Active -> Canceling (invalid state)
+     * Canceling-Completing -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Ended
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Completed
+     * Canceling -> Canceling (invalid state)
+     * Canceling-Active -> Canceling (invalid state)
+     * Canceling-Completing -> Completed
+     * Completing -> Completed
+     * Completed -> Completed
+     * Closing -> Closing (resend close)
+     * Compensating -> Compensating (resend compensate)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING_COMPLETING) ||
+                (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_COMPLETED) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING_COMPLETING) ||
+            (current == State.STATE_COMPLETING))
+        {
+            executeCompleted() ;
+        }
+        else if (current == State.STATE_CLOSING)
+        {
+            sendClose() ;
+        }
+        else if (current == State.STATE_COMPENSATING)
+        {
+            sendCompensate() ;
+        }
+    }
+    
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingContext 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 AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING) ||
+                (current == State.STATE_CANCELING_ACTIVE) || (current == State.STATE_CANCELING_COMPLETING) ||
+                (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_EXITING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING) ||
+            (current == State.STATE_CANCELING_ACTIVE) || (current == State.STATE_CANCELING_COMPLETING) ||
+            (current == State.STATE_COMPLETING))
+        {
+            executeExit() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendExited() ;
+        }
+    }
+    
+    /**
+     * Handle the fault event.
+     * @param fault The fault exception.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Faulting-Active
+     * Canceling -> Faulting-Active
+     * Canceling-Active -> Faulting-Active
+     * Canceling-Completing -> Faulting-Active
+     * Completing -> Faulting-Active
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Faulting-Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (resend Faulted)
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING) ||
+                (current == State.STATE_CANCELING_ACTIVE) || (current == State.STATE_CANCELING_COMPLETING) ||
+                (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_FAULTING_ACTIVE) ;
+            }
+            else if (current == State.STATE_COMPENSATING)
+            {
+                changeState(State.STATE_FAULTING_COMPENSATING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_ACTIVE)
+        {
+            executeFault() ;
+        }
+        else if ((current == State.STATE_CANCELING) || (current == State.STATE_CANCELING_ACTIVE) ||
+            (current == State.STATE_CANCELING_COMPLETING) || (current == State.STATE_COMPLETING) ||
+            (current == State.STATE_COMPENSATING))
+        {
+            sendFaulted() ;
+            ended() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendFaulted() ;
+        }
+    }
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	final State current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+	sendStatus(current) ;
+    }
+    
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV - implement
+    }
+    
+    /**
+     * Handle the get status event.
+     * @return The state.
+     */
+    public synchronized State getStatus()
+    {
+        return state ;
+    }
+    
+    /**
+     * Handle the cancel event.
+     * @return The state.
+     */
+    public State cancel()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_CANCELING_ACTIVE) ;
+            }
+            else if (current == State.STATE_COMPLETING)
+            {
+                changeState(State.STATE_CANCELING_COMPLETING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING) ||
+            (current == State.STATE_CANCELING))
+        {
+            sendCancel() ;
+        }
+        
+        if (current == State.STATE_ACTIVE)
+        {
+            return waitForState(State.STATE_CANCELING_ACTIVE, TransportTimer.getTransportTimeout()) ;
+        }
+        else if (current == State.STATE_COMPLETING)
+        {
+            return waitForState(State.STATE_CANCELING_COMPLETING, TransportTimer.getTransportTimeout()) ;
+        }
+        return waitForState(State.STATE_CANCELING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the compensate event.
+     * @return The state.
+     */
+    public State compensate()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_COMPENSATING) ;
+            }
+        }
+        
+        if ((current == State.STATE_COMPLETED) || (current == State.STATE_COMPENSATING))
+        {
+            sendCompensate() ;
+        }
+        
+        return waitForState(State.STATE_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the complete event.
+     * @return The state.
+     */
+    public State complete()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_COMPLETING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING))
+        {
+            sendComplete() ;
+        }
+        
+        return waitForState(State.STATE_COMPLETING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the close event.
+     * @return The state.
+     */
+    public State close()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_CLOSING) ;
+            }
+        }
+        
+        if ((current == State.STATE_COMPLETED) || (current == State.STATE_CLOSING))
+        {
+            sendClose() ;
+        }
+        
+        return waitForState(State.STATE_CLOSING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * 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 AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	ended() ;
+	try
+	{
+	    coordinator.fault() ;
+	}
+	catch (final Throwable th) {} // ignore
+    }
+    
+    /**
+     * Send the close message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendClose_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendClose_1] - Unexpected exception while sending Close
+     */
+    private void sendClose()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendClose(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendClose_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the compensate message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendCompensate_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendCompensate_1] - Unexpected exception while sending Compensate
+     */
+    private void sendCompensate()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendCompensate(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendCompensate_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the complete message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendComplete_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendComplete_1] - Unexpected exception while sending Complete
+     */
+    private void sendComplete()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendComplete(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendComplete_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the cancel message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendCancel_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendCancel_1] - Unexpected exception while sending Cancel
+     */
+    private void sendCancel()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendCancel(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendCancel_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the exited message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendExited_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendExited(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendExited_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the faulted message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendFaulted_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendFaulted_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFaulted()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendFaulted(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendFaulted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the status message.
+     * @param state The state.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendStatus_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final State state)
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendStatus(addressingContext, instanceIdentifier, state) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.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 EndpointReferenceType getParticipant()
+    {
+        return participant ;
+    }
+    
+    /**
+     * Get the associated coordinator.
+     * @return The associated coordinator.
+     */
+    public BAParticipantManager getCoordinator()
+    {
+        return coordinator ;
+    }
+    
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeState(final State 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 State waitForState(final State 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.CoordinatorCompletionCoordinatorEngine.executeCompleted_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.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.CoordinatorCompletionCoordinatorEngine.executeCompleted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Execute the exit transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.executeExit_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.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.CoordinatorCompletionCoordinatorEngine.executeExit_1", th) ;
+            }
+            return ;
+        }
+        sendExited() ;
+        ended() ;
+    }
+    
+    /**
+     * Executing the fault transition.
+     * 
+     * @throws SoapFault for SOAP errors.
+     * @throws IOException for transport errors.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.executeFault_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.executeFault_1] - Unexpected exception from coordinator fault
+     */
+    private void executeFault()
+    {
+        try
+        {
+            coordinator.fault() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine.executeFault_1", th) ;
+            }
+            return ;
+        }
+        sendFaulted() ;
+        ended() ;
+    }
+    
+    /**
+     * End the current coordinator.
+     */
+    private void ended()
+    {
+        changeState(State.STATE_ENDED) ;
+        CoordinatorCompletionCoordinatorProcessor.getProcessor().deactivateCoordinator(this) ;
+    }
+    
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingContext createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingContext.createRequestContext(participant, messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,955 @@
+/*
+ * 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 java.util.TimerTask;
+
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionCoordinatorClient;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+
+/**
+ * The coordinator completion participant state engine
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantEngine implements CoordinatorCompletionParticipantInboundEvents
+{
+    /**
+     * The participant id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifier instanceIdentifier ;
+    /**
+     * The coordinator endpoint reference.
+     */
+    private final EndpointReferenceType coordinator ;
+    /**
+     * The associated participant
+     */
+    private final BusinessAgreementWithCoordinatorCompletionParticipant participant ;
+    /**
+     * The current state.
+     */
+    private State 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 CoordinatorCompletionParticipantEngine(final String id, final EndpointReferenceType coordinator,
+        final BusinessAgreementWithCoordinatorCompletionParticipant participant)
+    {
+        this(id, coordinator, participant, State.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 CoordinatorCompletionParticipantEngine(final String id, final EndpointReferenceType coordinator,
+        final BusinessAgreementWithCoordinatorCompletionParticipant participant, final State state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifier(id) ;
+        this.coordinator = coordinator ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+    
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Canceling
+     * Canceling -> Canceling
+     * Completing -> Canceling
+     * Completed -> Completed (resend Completed)
+     * Closing -> Closing
+     * Compensating -> Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting (resend Fault)
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (resend Exit)
+     * Ended -> Ended (resend Cancelled)
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_CANCELING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING))
+        {
+            executeCancel() ;
+        }
+        else if (current == State.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+        else if (current == State.STATE_FAULTING_ACTIVE)
+        {
+            sendFault("Cancel called when State faulting active") ;
+        }
+        else if (current == State.STATE_EXITING)
+        {
+            sendExit() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendCancelled() ;
+        }
+    }
+    
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingContext 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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send Closed)
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_CLOSING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeClose() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendClosed() ;
+        }
+    }
+    
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingContext 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
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (resend fault)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send compensated)
+     */
+    public void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_COMPENSATING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeCompensate() ;
+        }
+        else if (current == State.STATE_FAULTING_COMPENSATING)
+        {
+            sendFault("Compensate called when state faulting compensating") ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendCompensated() ;
+        }
+    }
+    
+    /**
+     * Handle the complete event.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Completing
+     * Canceling -> Canceling
+     * Completing -> Completing
+     * Completed -> Completed (resend Completed)
+     * Closing -> Closing
+     * Compensating -> Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting (resend Fault)
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (resend Exit)
+     * Ended -> Ended
+     */
+    public void complete(final NotificationType complete, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_COMPLETING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_ACTIVE)
+        {
+            executeComplete() ;
+        }
+        else if (current == State.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+        else if (current == State.STATE_FAULTING_ACTIVE)
+        {
+            sendFault("Complete called when state faulting active") ;
+        }
+        else if (current == State.STATE_EXITING)
+        {
+            sendExit() ;
+        }
+    }
+    
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingContext 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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Ended
+     * Ended -> Ended
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+            else if (current == State.STATE_EXITING)
+            {
+                ended() ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the faulted event.
+     * @param faulted The faulted notification.
+     * @param addressingContext 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)
+     * Faulting -> Ended
+     * Faulting-Active -> Ended
+     * Faulting-Compensating -> Ended
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_FAULTING) || (current == State.STATE_FAULTING_ACTIVE) ||
+                (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                ended() ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.getStatus_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.getStatus_1] - Unknown error: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	final State current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+	sendStatus(current) ;
+    }
+    
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV - implement
+    }
+    
+    /**
+     * 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 AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	ended() ;
+	try
+	{
+	    participant.error() ;
+	}
+	catch (final Throwable th) {} // ignore
+    }
+    
+    /**
+     * Handle the completed event.
+     * 
+     * Active -> Completed
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completed
+     * Completed -> Completed
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting-Active (invalid state)
+     * Faulting-Compensating -> Faulting-Compensating (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public State completed()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_COMPLETED) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING) ||
+            (current == State.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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting-Active (invalid state)
+     * Faulting-Compensating -> Faulting-Compensating (invalid state)
+     * Exiting -> Exiting
+     * Ended -> Ended (invalid state)
+     */
+    public State exit()
+    {
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_EXITING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING) ||
+            (current == State.STATE_EXITING))
+        {
+            sendExit() ;
+        }
+        
+        return waitForState(State.STATE_EXITING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the fault event.
+     * 
+     * Active -> Faulting-Active
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Faulting-Active
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Faulting-Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting-Active
+     * Faulting-Compensating -> Faulting-Compensating
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public State fault()
+    {
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING))
+            {
+                changeState(State.STATE_FAULTING_ACTIVE) ;
+            }
+            else if (current == State.STATE_COMPENSATING)
+            {
+                changeState(State.STATE_FAULTING_COMPENSATING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_COMPLETING) ||
+            (current == State.STATE_FAULTING_ACTIVE))
+        {
+            sendFault("Fault called when state active/faulting active") ;
+            return waitForState(State.STATE_FAULTING_ACTIVE, TransportTimer.getTransportTimeout()) ;
+        }
+        else if ((current == State.STATE_COMPENSATING) || (current == State.STATE_FAULTING_COMPENSATING))
+        {
+            sendFault("Fault called when state compensating/faulting compensating") ;
+        }
+        
+        return waitForState(State.STATE_FAULTING_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the comms timeout event.
+     * 
+     * Completed -> Completed (resend Completed)
+     */
+    private void commsTimeout()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+        
+        if (current == State.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+    }
+    
+    /**
+     * Send the exit message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendExit_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendExit_1] - Unexpected exception while sending Exit
+     */
+    private void sendExit()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendExit(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendExit_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the completed message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCompleted_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCompleted_1] - Unexpected exception while sending Completed
+     */
+    private void sendCompleted()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCompleted(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCompleted_1", th) ;
+            }
+        }
+        
+        initiateTimer() ;
+    }
+    
+    /**
+     * Send the fault message.
+     * @param message The fault message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendFault_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendFault_1] - Unexpected exception while sending Fault
+     */
+    private void sendFault(final String message)
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendFault(addressingContext, instanceIdentifier, message) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendFault_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the cancelled message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCancelled_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCancelled(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCancelled_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the closed message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendClosed_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendClosed(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendClosed_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the compensated message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCompensated_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCompensated(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendCompensated_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the status message.
+     * @param state The state.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendStatus_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final State state)
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendStatus(addressingContext, instanceIdentifier, state) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.sendStatus_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 EndpointReferenceType 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 State 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 State waitForState(final State 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.CoordinatorCompletionParticipantEngine.executeCancel_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.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.CoordinatorCompletionParticipantEngine.executeCancel_1", th) ;
+            }
+            return ;
+        }
+        sendCancelled() ;
+        ended() ;
+    }
+
+    /**
+     * Execute the close transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.executeClose_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.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.CoordinatorCompletionParticipantEngine.executeClose_1", th) ;
+            }
+            return ;
+        }
+        sendClosed() ;
+        ended() ;
+    }
+    
+    /**
+     * Execute the compensate transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.executeCompensate_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.executeCompensate_1] - Unexpected exception from participant compensate
+     */
+    private void executeCompensate()
+    {
+        try
+        {
+            participant.compensate() ;
+        }
+        catch (final FaultedException fe)
+        {
+            fault() ;
+        }
+        catch (final Throwable th)
+        {
+            final State current ;
+            synchronized (this)
+            {
+                current = state ;
+                if (current == State.STATE_COMPENSATING)
+                {
+                    changeState(State.STATE_COMPLETED) ;
+                }
+            }
+            if (current == State.STATE_COMPENSATING)
+            {
+                initiateTimer() ;
+            }
+            
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.executeCompensate_1", th) ;
+            }
+            return ;
+        }
+        
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+        }
+        if (current == State.STATE_COMPENSATING)
+        {
+            sendCompensated() ;
+        }
+    }
+    
+    /**
+     * Execute the complete transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.executeComplete_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine.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.CoordinatorCompletionParticipantEngine.executeComplete_1", th) ;
+            }
+            return ;
+        }
+        
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETING)
+            {
+                changeState(State.STATE_COMPLETED) ;
+            }
+        }
+        if (current == State.STATE_COMPLETING)
+        {
+            sendCompleted() ;
+        }
+    }
+    
+    /**
+     * End the current participant.
+     */
+    private void ended()
+    {
+	changeState(State.STATE_ENDED) ;
+        CoordinatorCompletionParticipantProcessor.getProcessor().deactivateParticipant(this) ;
+    }
+    
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+        
+        if (state == State.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 AddressingContext createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingContext.createRequestContext(coordinator, messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngine.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngine.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngine.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,651 @@
+/*
+ * 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 java.util.TimerTask;
+
+import javax.xml.namespace.QName;
+
+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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsaddr.RelationshipType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.CoordinatorInboundEvents;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.State;
+import com.arjuna.webservices.wsat.client.ParticipantClient;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.wsc.messaging.MessageId;
+
+/**
+ * The coordinator state engine
+ * @author kevin
+ */
+public class CoordinatorEngine implements CoordinatorInboundEvents
+{
+    /**
+     * 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 InstanceIdentifier instanceIdentifier ;
+    /**
+     * The participant endpoint reference.
+     */
+    private final EndpointReferenceType participant ;
+    /**
+     * The current state.
+     */
+    private State 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 CoordinatorEngine(final String id, final boolean durable, final EndpointReferenceType participant)
+    {
+        this(id, durable, participant, State.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 CoordinatorEngine(final String id, final boolean durable, final EndpointReferenceType participant, final State state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifier(id) ;
+        this.durable = durable ;
+        this.participant = participant ;
+        this.state = state ;
+        CoordinatorProcessor.getProcessor().activateCoordinator(this, id) ;
+    }
+    
+    /**
+     * Handle the aborted event.
+     * @param aborted The aborted notification.
+     * @param addressingContext 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 NotificationType aborted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current = state ;
+        if (current == State.STATE_ACTIVE)
+        {
+            changeState(State.STATE_ABORTING) ;
+        }
+        else if ((current == State.STATE_PREPARING) || (current == State.STATE_ABORTING))
+        {
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the committed event.
+     * @param committed The committed notification.
+     * @param addressingContext 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 NotificationType committed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current = state ;
+        if (current == State.STATE_ACTIVE)
+        {
+            changeState(State.STATE_ABORTING) ;
+        }
+        else if ((current == State.STATE_PREPARING) || (current == State.STATE_COMMITTING))
+        {
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the prepared event.
+     * @param prepared The prepared notification.
+     * @param addressingContext 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 NotificationType prepared, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_ABORTING) ;
+            }
+            else if (current == State.STATE_PREPARING)
+            {
+                changeState(State.STATE_PREPARED_SUCCESS) ;
+            }
+        }
+        if (current == State.STATE_COMMITTING)
+        {
+            sendCommit() ;
+        }
+        else if ((current == State.STATE_ABORTING) || ((current == null) && !readOnly))
+        {
+            if (durable)
+            {
+                sendRollback() ;
+            }
+            else
+            {
+        	sendInvalidState(addressingContext, arjunaContext) ;
+            }
+            if (current != null)
+            {
+        	forget() ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the readOnly event.
+     * @param readOnly The readOnly notification.
+     * @param addressingContext 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 NotificationType readOnly, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current = state ;
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING) ||
+            (current == State.STATE_ABORTING))
+        {
+            if (current != State.STATE_ABORTING)
+            {
+                this.readOnly = true ;
+            }
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the replay event.
+     * @param replay The replay notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * None -> Durable: (send rollback), Volatile: Invalid state: none
+     * Active -> Aborting (send rollback)
+     * Preparing -> Aborting (send rollback)
+     * PreparedSuccess -> PreparedSuccess (ignore)
+     * Committing -> Committing (send commit)
+     * Aborting -> Aborting (send rollback)
+     */
+    public void replay(final NotificationType replay, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING))
+            {
+                changeState(State.STATE_ABORTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING) ||
+            (current == State.STATE_ABORTING) || ((current == null) && durable))
+        {
+            sendRollback() ;
+        }
+        else if (current == State.STATE_COMMITTING)
+        {
+            sendCommit() ;
+        }
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngine.soapFault_1 [com.arjuna.wst.messaging.engines.CoordinatorEngine.soapFault_1] - Unexpected SOAP fault for coordinator {0}: {1} {2}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            final SoapFaultType soapFaultType = soapFault.getSoapFaultType() ;
+            final QName subCode = soapFault.getSubcode() ;
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngine.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 State prepare()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_PREPARING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING))
+        {
+            sendPrepare() ;
+        }
+        
+        final State result = waitForState(State.STATE_PREPARING, TransportTimer.getTransportTimeout()) ;
+        if (result != State.STATE_PREPARING)
+        {
+            return result ;
+        }
+        
+        synchronized(this)
+        {
+            if ((state == State.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 State commit()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_PREPARED_SUCCESS)
+            {
+                changeState(State.STATE_COMMITTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_PREPARED_SUCCESS) || (current == State.STATE_COMMITTING))
+        {
+            sendCommit() ;
+        }
+        
+        final State result = waitForState(State.STATE_COMMITTING, TransportTimer.getTransportTimeout()) ;
+        if (result != State.STATE_COMMITTING)
+        {
+            return result ;
+        }
+        
+        synchronized(this)
+        {
+            if ((state == State.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 State rollback()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING) ||
+                (current == State.STATE_PREPARED_SUCCESS))
+            {
+                changeState(State.STATE_ABORTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING) ||
+            (current == State.STATE_PREPARED_SUCCESS))
+        {
+            sendRollback() ;
+        }
+        else if (current == State.STATE_ABORTING)
+        {
+            forget() ;
+        }
+        
+        return waitForState(State.STATE_ABORTING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the comms timeout event.
+     *
+     * Preparing -> Preparing (resend Prepare)
+     * Committing -> Committing (resend Commit)
+     */
+    private void commsTimeout()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+        
+        if (current == State.STATE_PREPARING)
+        {
+            sendPrepare() ;
+        }
+        else if (current == State.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 EndpointReferenceType 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 changeState(final State 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 State waitForState(final State 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 ;
+        }
+    }
+    
+    /**
+     * Forget the current coordinator.
+     */
+    private void forget()
+    {
+        changeState(null) ;
+        CoordinatorProcessor.getProcessor().deactivateCoordinator(this) ;
+    }
+    
+    /**
+     * Send the prepare message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngine.sendPrepare_1 [com.arjuna.wst.messaging.engines.CoordinatorEngine.sendPrepare_1] - Unexpecting exception while sending Prepare
+     */
+    private void sendPrepare()
+    {
+        try
+        {
+            ParticipantClient.getClient().sendPrepare(createContext(), instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngine.sendPrepare_1", th) ;
+            }
+        }
+        
+        initiateTimer() ;
+    }
+    
+    /**
+     * Send the commit message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngine.sendCommit_1 [com.arjuna.wst.messaging.engines.CoordinatorEngine.sendCommit_1] - Unexpecting exception while sending Commit
+     */
+    private void sendCommit()
+    {
+        try
+        {
+            ParticipantClient.getClient().sendCommit(createContext(), instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngine.sendCommit_1", th) ;
+            }
+        }
+        
+        initiateTimer() ;
+    }
+    
+    /**
+     * Send the rollback message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngine.sendRollback_1 [com.arjuna.wst.messaging.engines.CoordinatorEngine.sendRollback_1] - Unexpecting exception while sending Rollback
+     */
+    private void sendRollback()
+    {
+        try
+        {
+            ParticipantClient.getClient().sendRollback(createContext(), instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngine.sendRollback_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the InvalidState message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngine.sendInvalidState_1 [com.arjuna.wst.messaging.engines.CoordinatorEngine.sendInvalidState_1] - Inconsistent internal state.
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngine.sendInvalidState_2 [com.arjuna.wst.messaging.engines.CoordinatorEngine.sendInvalidState_2] - Unexpecting exception while sending InvalidState
+     */
+    private void sendInvalidState(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        try
+        {
+            final AddressingContext responseContext = createContext() ;
+            final AttributedURIType messageId = addressingContext.getMessageID() ;
+            final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            if (messageId != null)
+            {
+                responseContext.addRelatesTo(new RelationshipType(messageId.getValue())) ;
+            }
+            
+            final String message = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.engines.CoordinatorEngine.sendInvalidState_1") ;
+            final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME, message) ;
+            ParticipantClient.getClient().sendSoapFault(responseContext, soapFault, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngine.sendInvalidState_2", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+        if ((state == State.STATE_PREPARING) || (state == State.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 AddressingContext createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingContext.createRequestContext(participant, messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,760 @@
+/*
+ * 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 java.io.IOException;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionParticipantClient;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BAParticipantManager;
+
+/**
+ * The participant completion coordinator state engine
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorEngine implements ParticipantCompletionCoordinatorInboundEvents
+{
+    /**
+     * The coordinator id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifier instanceIdentifier ;
+    /**
+     * The participant endpoint reference.
+     */
+    private final EndpointReferenceType participant ;
+    /**
+     * The associated coordinator
+     */
+    private BAParticipantManager coordinator ;
+    /**
+     * The current state.
+     */
+    private State state ;
+    
+    /**
+     * Construct the initial engine for the coordinator.
+     * @param id The coordinator id.
+     * @param participant The participant endpoint reference.
+     */
+    public ParticipantCompletionCoordinatorEngine(final String id, final EndpointReferenceType participant)
+    {
+        this(id, participant, State.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 ParticipantCompletionCoordinatorEngine(final String id, final EndpointReferenceType participant,
+        final State state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifier(id) ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+    
+    /**
+     * Set the coordinator and register
+     * @param coordinator
+     */
+    public void setCoordinator(final BAParticipantManager coordinator)
+    {
+        this.coordinator = coordinator ;
+        ParticipantCompletionCoordinatorProcessor.getProcessor().activateCoordinator(this, id) ;
+    }
+    
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext 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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating ->Faulting (invalid state) 
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_CANCELING)
+            {
+                ended() ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingContext 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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_CLOSING)
+            {
+                ended() ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingContext 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
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Completed
+     * Canceling -> Compensating
+     * Completed -> Completed
+     * Closing -> Closing (resend close)
+     * Compensating -> Compensating (resend compensate)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING))
+            {
+                changeState(State.STATE_COMPLETED) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+            else if (current == State.STATE_CANCELING)
+            {
+        	state = State.STATE_COMPENSATING ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING))
+        {
+            executeCompleted() ;
+        }
+        else if (current == State.STATE_CLOSING)
+        {
+            sendClose() ;
+        }
+        else if ((current == State.STATE_CANCELING) || (current == State.STATE_COMPENSATING))
+        {
+            sendCompensate() ;
+        }
+    }
+    
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Exiting
+     * Canceling -> Exiting
+     * Completed -> Completed
+     * 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 AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING))
+            {
+                changeState(State.STATE_EXITING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING))
+        {
+            executeExit() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendExited() ;
+        }
+    }
+    
+    /**
+     * Handle the fault event.
+     * @param fault The fault exception.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Faulting-Active
+     * Canceling -> Faulting-Active
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Faulting-Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (resend Faulted)
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING))
+            {
+                changeState(State.STATE_FAULTING_ACTIVE) ;
+            }
+            else if (current == State.STATE_COMPENSATING)
+            {
+                changeState(State.STATE_FAULTING_COMPENSATING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_ACTIVE)
+        {
+            executeFault() ;
+        }
+        else if ((current == State.STATE_CANCELING) || (current == State.STATE_COMPENSATING))
+        {
+            sendFaulted() ;
+            ended() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendFaulted() ;
+        }
+    }
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	final State current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+	sendStatus(current) ;
+    }
+    
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV - implement
+    }
+    
+    /**
+     * Handle the get status event.
+     * @return The state.
+     */
+    public synchronized State getStatus()
+    {
+        return state ;
+    }
+    
+    /**
+     * Handle the cancel event.
+     * @return The state.
+     */
+    public State cancel()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_CANCELING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_CANCELING))
+        {
+            sendCancel() ;
+        }
+        
+        return waitForState(State.STATE_CANCELING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the compensate event.
+     * @return The state.
+     */
+    public State compensate()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_COMPENSATING) ;
+            }
+        }
+        
+        if ((current == State.STATE_COMPLETED) || (current == State.STATE_COMPENSATING))
+        {
+            sendCompensate() ;
+        }
+        
+        return waitForState(State.STATE_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the close event.
+     * @return The state.
+     */
+    public State close()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_CLOSING) ;
+            }
+        }
+        
+        if ((current == State.STATE_COMPLETED) || (current == State.STATE_CLOSING))
+        {
+            sendClose() ;
+        }
+        
+        return waitForState(State.STATE_CLOSING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * 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 AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	ended() ;
+	try
+	{
+	    coordinator.fault() ;
+	}
+	catch (final Throwable th) {} // ignore
+    }
+    
+    /**
+     * Send the close message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendClose_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendClose_1] - Unexpected exception while sending Close
+     */
+    private void sendClose()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendClose(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendClose_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the compensate message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendCompensate_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendCompensate_1] - Unexpected exception while sending Compensate
+     */
+    private void sendCompensate()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendCompensate(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendCompensate_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the cancel message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendCancel_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendCancel_1] - Unexpected exception while sending Cancel
+     */
+    private void sendCancel()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendCancel(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendCancel_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the exited message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendExited_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendExited(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendExited_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the faulted message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendFaulted_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendFaulted_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFaulted()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendFaulted(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendFaulted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the status message.
+     * @param state The state.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendStatus_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final State state)
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendStatus(addressingContext, instanceIdentifier, state) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.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 EndpointReferenceType getParticipant()
+    {
+        return participant ;
+    }
+    
+    /**
+     * Get the associated coordinator.
+     * @return The associated coordinator.
+     */
+    public BAParticipantManager getCoordinator()
+    {
+        return coordinator ;
+    }
+    
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeState(final State 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 State waitForState(final State 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.ParticipantCompletionCoordinatorEngine.executeCompleted_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.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.ParticipantCompletionCoordinatorEngine.executeCompleted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Execute the exit transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.executeExit_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.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.ParticipantCompletionCoordinatorEngine.executeExit_1", th) ;
+            }
+            return ;
+        }
+        sendExited() ;
+        ended() ;
+    }
+    
+    /**
+     * Executing the fault transition.
+     * 
+     * @throws SoapFault for SOAP errors.
+     * @throws IOException for transport errors.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.executeFault_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.executeFault_1] - Unexpected exception from coordinator fault
+     */
+    private void executeFault()
+    {
+        try
+        {
+            coordinator.fault() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine.executeFault_1", th) ;
+            }
+            return ;
+        }
+        sendFaulted() ;
+        ended() ;
+    }
+    
+    /**
+     * End the current coordinator.
+     */
+    private void ended()
+    {
+        changeState(State.STATE_ENDED) ;
+        ParticipantCompletionCoordinatorProcessor.getProcessor().deactivateCoordinator(this) ;
+    }
+    
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingContext createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingContext.createRequestContext(participant, messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,856 @@
+/*
+ * 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 java.util.TimerTask;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionCoordinatorClient;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+
+/**
+ * The participant completion participant state engine
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantEngine implements ParticipantCompletionParticipantInboundEvents
+{
+    /**
+     * The participant id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifier instanceIdentifier ;
+    /**
+     * The coordinator endpoint reference.
+     */
+    private final EndpointReferenceType coordinator ;
+    /**
+     * The associated participant
+     */
+    private final BusinessAgreementWithParticipantCompletionParticipant participant ;
+    /**
+     * The current state.
+     */
+    private State 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 ParticipantCompletionParticipantEngine(final String id, final EndpointReferenceType coordinator,
+        final BusinessAgreementWithParticipantCompletionParticipant participant)
+    {
+        this(id, coordinator, participant, State.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 ParticipantCompletionParticipantEngine(final String id, final EndpointReferenceType coordinator,
+        final BusinessAgreementWithParticipantCompletionParticipant participant, final State state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifier(id) ;
+        this.coordinator = coordinator ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+    
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Canceling
+     * Canceling -> Canceling
+     * Completed -> Completed (resend Completed)
+     * Closing -> Closing
+     * Compensating -> Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting (resend Fault)
+     * Faulting-Compensating -> Faulting
+     * Exiting -> Exiting (resend Exit)
+     * Ended -> Ended (resend Cancelled)
+     */
+    public void cancel(final NotificationType cancel, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_CANCELING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_ACTIVE)
+        {
+            executeCancel() ;
+        }
+        else if (current == State.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+        else if (current == State.STATE_FAULTING_ACTIVE)
+        {
+            sendFault("Cancel called when State faulting active") ;
+        }
+        else if (current == State.STATE_EXITING)
+        {
+            sendExit() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendCancelled() ;
+        }
+    }
+    
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Closing
+     * Closing -> Closing
+     * Compensating -> Compensating (invalid state)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send Closed)
+     */
+    public void close(final NotificationType close, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_CLOSING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeClose() ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendClosed() ;
+        }
+    }
+    
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Compensating
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (resend fault)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send compensated)
+     */
+    public void compensate(final NotificationType compensate, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPLETED)
+            {
+                changeState(State.STATE_COMPENSATING) ;
+            }
+            else if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+        }
+        
+        if (current == State.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeCompensate() ;
+        }
+        else if (current == State.STATE_FAULTING_COMPENSATING)
+        {
+            sendFault("Compensate called when state faulting compensating") ;
+        }
+        else if (current == State.STATE_ENDED)
+        {
+            sendCompensated() ;
+        }
+    }
+    
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingContext 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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Ended
+     * Ended -> Ended
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_FAULTING_ACTIVE) || (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                changeState(State.STATE_FAULTING) ;
+            }
+            else if (current == State.STATE_EXITING)
+            {
+                ended() ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the faulted event.
+     * @param faulted The faulted notification.
+     * @param addressingContext 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)
+     * Faulting -> Ended
+     * Faulting-Active -> Ended
+     * Faulting-Compensating -> Ended
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_FAULTING) || (current == State.STATE_FAULTING_ACTIVE) ||
+                (current == State.STATE_FAULTING_COMPENSATING))
+            {
+                ended() ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.getStatus_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.getStatus_1] - Unknown error: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+	final State current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+	sendStatus(current) ;
+    }
+    
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        // KEV - implement
+    }
+    
+    /**
+     * 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 AddressingContext addressingContext, final ArjunaContext 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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting-Active (invalid state)
+     * Faulting-Compensating -> Faulting-Compensating (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public State completed()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_COMPLETED) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.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)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting-Active (invalid state)
+     * Faulting-Compensating -> Faulting-Compensating (invalid state)
+     * Exiting -> Exiting
+     * Ended -> Ended (invalid state)
+     */
+    public State exit()
+    {
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_EXITING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_EXITING))
+        {
+            sendExit() ;
+        }
+        
+        return waitForState(State.STATE_EXITING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the fault event.
+     * 
+     * Active -> Faulting-Active
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Faulting-Compensating
+     * Faulting -> Faulting
+     * Faulting-Active -> Faulting-Active
+     * Faulting-Compensating -> Faulting-Compensating
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public State fault()
+    {
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                changeState(State.STATE_FAULTING_ACTIVE) ;
+            }
+            else if (current == State.STATE_COMPENSATING)
+            {
+                changeState(State.STATE_FAULTING_COMPENSATING) ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_FAULTING_ACTIVE))
+        {
+            sendFault("Fault called when state active/faulting active") ;
+            return waitForState(State.STATE_FAULTING_ACTIVE, TransportTimer.getTransportTimeout()) ;
+        }
+        else if ((current == State.STATE_COMPENSATING) || (current == State.STATE_FAULTING_COMPENSATING))
+        {
+            sendFault("Fault called when state compensating/faulting compensating") ;
+        }
+        
+        return waitForState(State.STATE_FAULTING_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+    }
+    
+    /**
+     * Handle the comms timeout event.
+     * 
+     * Completed -> Completed (resend Completed)
+     */
+    private void commsTimeout()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+        
+        if (current == State.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+    }
+    
+    /**
+     * Send the exit message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendExit_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendExit_1] - Unexpected exception while sending Exit
+     */
+    private void sendExit()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendExit(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendExit_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the completed message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCompleted_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCompleted_1] - Unexpected exception while sending Completed
+     */
+    private void sendCompleted()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCompleted(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCompleted_1", th) ;
+            }
+        }
+        
+        initiateTimer() ;
+    }
+    
+    /**
+     * Send the fault message.
+     * @param message The fault message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendFault_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendFault_1] - Unexpected exception while sending Fault
+     */
+    private void sendFault(final String message)
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendFault(addressingContext, instanceIdentifier, message) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendFault_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the cancelled message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCancelled_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCancelled(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCancelled_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the closed message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendClosed_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendClosed(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendClosed_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the compensated message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCompensated_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated()
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCompensated(addressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendCompensated_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the status message.
+     * @param state The state.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendStatus_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final State state)
+    {
+        final AddressingContext addressingContext = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendStatus(addressingContext, instanceIdentifier, state) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.sendStatus_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 EndpointReferenceType 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 State 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 State waitForState(final State 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.ParticipantCompletionParticipantEngine.executeCancel_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.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.ParticipantCompletionParticipantEngine.executeCancel_1", th) ;
+            }
+            return ;
+        }
+        sendCancelled() ;
+        ended() ;
+    }
+
+    /**
+     * Execute the close transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.executeClose_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.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.ParticipantCompletionParticipantEngine.executeClose_1", th) ;
+            }
+            return ;
+        }
+        sendClosed() ;
+        ended() ;
+    }
+    
+    /**
+     * Execute the compensate transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.executeCompensate_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.executeCompensate_1] - Unexpected exception from participant compensate
+     */
+    private void executeCompensate()
+    {
+        try
+        {
+            participant.compensate() ;
+        }
+        catch (final FaultedException fe)
+        {
+            fault() ;
+        }
+        catch (final Throwable th)
+        {
+            final State current ;
+            synchronized (this)
+            {
+                current = state ;
+                if (current == State.STATE_COMPENSATING)
+                {
+                    changeState(State.STATE_COMPLETED) ;
+                }
+            }
+            if (current == State.STATE_COMPENSATING)
+            {
+                initiateTimer() ;
+            }
+            
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine.executeClose_1", th) ;
+            }
+            return ;
+        }
+        
+        final State current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == State.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+        }
+        if (current == State.STATE_COMPENSATING)
+        {
+            sendCompensated() ;
+        }
+    }
+    
+    /**
+     * End the current participant.
+     */
+    private void ended()
+    {
+	changeState(State.STATE_ENDED) ;
+        ParticipantCompletionParticipantProcessor.getProcessor().deactivateParticipant(this) ;
+    }
+    
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+        
+        if (state == State.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 AddressingContext createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingContext.createRequestContext(coordinator, messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngine.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngine.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngine.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,669 @@
+/*
+ * 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 java.util.TimerTask;
+
+import javax.xml.namespace.QName;
+
+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.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.ParticipantInboundEvents;
+import com.arjuna.webservices.wsat.State;
+import com.arjuna.webservices.wsat.client.CoordinatorClient;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.Aborted;
+import com.arjuna.wst.Participant;
+import com.arjuna.wst.Prepared;
+import com.arjuna.wst.ReadOnly;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.Vote;
+
+/**
+ * The participant state engine
+ * @author kevin
+ */
+public class ParticipantEngine implements ParticipantInboundEvents
+{
+    /**
+     * The associated participant
+     */
+    private final Participant participant ;
+    /**
+     * The participant id.
+     */
+    private final String id ;
+    /**
+     * The coordinator endpoint reference.
+     */
+    private final EndpointReferenceType coordinator ;
+    /**
+     * The current state.
+     */
+    private State 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 ParticipantEngine(final Participant participant, final String id, final EndpointReferenceType coordinator)
+    {
+        this(participant, id, State.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 ParticipantEngine(final Participant participant, final String id, final State state, final EndpointReferenceType coordinator)
+    {
+        this.participant = participant ;
+        this.id = id ;
+        this.state = state ;
+        this.coordinator = coordinator ;
+    }
+    
+    /**
+     * Handle the commit event.
+     * @param commit The commit notification.
+     * @param addressingContext 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 NotificationType commit, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_PREPARED_SUCCESS)
+            {
+                state = State.STATE_COMMITTING ;
+                if (timerTask != null)
+                {
+                    timerTask.cancel() ;
+                }
+            }
+            else if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING))
+            {
+                state = State.STATE_ABORTING ;
+            }
+        }
+        
+        if (current == State.STATE_PREPARED_SUCCESS)
+        {
+            executeCommit() ;
+        }
+        else if (current == null)
+        {
+            sendCommitted() ;
+        }
+    }
+    
+    /**
+     * Handle the prepare event.
+     * @param prepare The prepare notification.
+     * @param addressingContext 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 NotificationType prepare, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_ACTIVE)
+            {
+                state = State.STATE_PREPARING ;
+            }
+        }
+        
+        if (current == State.STATE_ACTIVE)
+        {
+            executePrepare() ;
+        }
+        else if (current == State.STATE_PREPARED_SUCCESS)
+        {
+            sendPrepared() ;
+        }
+        else if ((current == State.STATE_ABORTING) || (current == null))
+        {
+            sendAborted() ;
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the rollback event.
+     * @param rollback The rollback notification.
+     * @param addressingContext 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 NotificationType rollback, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING) ||
+                (current == State.STATE_PREPARED_SUCCESS))
+            {
+                state = State.STATE_ABORTING ;
+            }
+        }
+        
+        if (current != State.STATE_COMMITTING)
+        {
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING) ||
+                (current == State.STATE_PREPARED_SUCCESS))
+            {
+                if (!executeRollback())
+                {
+                    return ;
+                }
+            }
+            
+            sendAborted() ;
+            
+            if (current != null)
+            {
+                forget() ;
+            }
+        }
+    }
+    
+    /**
+     * Handle the early rollback event.
+     * 
+     * None -> None
+     * Active -> Aborting (execute rollback, send aborted and forget)
+     * Preparing -> Aborting (execute rollback, send aborted and forget)
+     * PreparedSuccess -> PreparedSuccess
+     * Committing -> Committing
+     * Aborting -> Aborting
+     */
+    public void earlyRollback()
+    {
+        rollbackDecision() ;
+    }
+    
+    /**
+     * Handle the early readonly event.
+     * 
+     * None -> None
+     * Active -> None (send ReadOnly)
+     * Preparing -> None (send ReadOnly)
+     * PreparedSuccess -> PreparedSuccess
+     * Committing -> Committing
+     * Aborting -> Aborting
+     */
+    public void earlyReadonly()
+    {
+        readOnlyDecision() ;
+    }
+    
+    /**
+     * Handle the recovery event.
+     * 
+     * None -> None
+     * Active -> Active
+     * Preparing -> Preparing
+     * PreparedSuccess -> PreparedSuccess
+     * Committing -> PreparedSuccess (resend Prepared)
+     * Aborting -> Aborting
+     */
+    public void recovery()
+    {
+	synchronized(this)
+	{
+	    if (timerTask != null)
+	    {
+                timerTask.cancel() ;
+	    }
+	}
+        sendReplay() ;
+    }
+    
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.soapFault_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.soapFault_1] - Unexpected SOAP fault for participant {0}: {1} {2}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            final InstanceIdentifier instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            final SoapFaultType soapFaultType = soapFault.getSoapFaultType() ;
+            final QName subCode = soapFault.getSubcode() ;
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.soapFault_1", new Object[] {instanceIdentifier, soapFaultType, subCode}) ;
+        }
+        
+        if (CoordinationConstants.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 State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == State.STATE_PREPARING)
+            {
+                state = State.STATE_PREPARED_SUCCESS ;
+            }
+        }
+        
+        if (current == State.STATE_PREPARING)
+        {
+            sendPrepared() ;
+        }
+        else if (current == State.STATE_COMMITTING)
+        {
+            sendCommitted() ;
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the readOnly decision event.
+     * 
+     * Active -> None (send ReadOnly)
+     * Preparing -> None (send ReadOnly)
+     */
+    private void readOnlyDecision()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING))
+            {
+        	state = null ;
+            }
+        }
+        
+        if ((current == State.STATE_ACTIVE) || (current == State.STATE_PREPARING))
+        {
+            sendReadOnly() ;
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the rollback decision event.
+     * 
+     * Active -> Aborting (send aborted)
+     * Preparing -> Aborting (send aborted)
+     */
+    private void rollbackDecision()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == State.STATE_PREPARING) || (current == State.STATE_ACTIVE))
+            {
+                state = State.STATE_ABORTING ;
+            }
+        }
+        
+        if ((current == State.STATE_PREPARING) || (current == State.STATE_ACTIVE))
+        {
+            sendAborted() ;
+            forget() ;
+        }
+    }
+    
+    /**
+     * Handle the comms timeout event.
+     * 
+     * PreparedSuccess -> PreparedSuccess (resend Prepared)
+     */
+    private void commsTimeout()
+    {
+        final State current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+        
+        if (current == State.STATE_PREPARED_SUCCESS)
+        {
+            sendPrepared() ;
+        }
+    }
+    
+    /**
+     * Execute the commit transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.executeCommit_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.executeCommit_1] - Unexpected exception from participant commit
+     */
+    private void executeCommit()
+    {
+        try
+        {
+            participant.commit() ;
+            commitDecision() ;
+        }
+        catch (final Throwable th)
+        {
+            synchronized(this)
+            {
+                if (state == State.STATE_COMMITTING)
+                {
+            	    state = State.STATE_PREPARED_SUCCESS ;
+                }
+            }
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.executeCommit_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Execute the rollback transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.executeRollback_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.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.ParticipantEngine.executeRollback_1", th) ;
+            }
+        }
+        return true ;
+    }
+    
+    /**
+     * Execute the prepare transition.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.executePrepare_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.executePrepare_1] - Unexpected exception from participant prepare
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.executePrepare_2 [com.arjuna.wst.messaging.engines.ParticipantEngine.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.ParticipantEngine.executePrepare_1", se) ;
+            }
+            return ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.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.ParticipantEngine.executePrepare_2", new Object[] {(vote == null ? "null" : vote.getClass().getName())}) ;
+            }
+            rollbackDecision() ;
+        }
+    }
+    
+    /**
+     * Forget the current participant.
+     */
+    private void forget()
+    {
+        synchronized(this)
+        {
+            state = null ;
+        }
+        ParticipantProcessor.getProcessor().deactivateParticipant(this) ;
+    }
+    
+    /**
+     * Send the committed message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.sendCommitted_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.sendCommitted_1] - Unexpected exception while sending Committed
+     */
+    private void sendCommitted()
+    {
+        final AddressingContext responseAddressingContext = createContext() ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier(id) ;
+        try
+        {
+            CoordinatorClient.getClient().sendCommitted(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.sendCommitted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the prepared message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.sendPrepared_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.sendPrepared_1] - Unexpected exception while sending Prepared
+     */
+    private void sendPrepared()
+    {
+        final AddressingContext responseAddressingContext = createContext() ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier(id) ;
+        try
+        {
+            CoordinatorClient.getClient().sendPrepared(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.sendPrepared_1", th) ;
+            }
+        }
+        
+        initiateTimer() ;
+    }
+    
+    /**
+     * Send the aborted message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.sendAborted_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.sendAborted_1] - Unexpected exception while sending Aborted
+     */
+    private void sendAborted()
+    {
+        final AddressingContext responseAddressingContext = createContext() ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier(id) ;
+        try
+        {
+            CoordinatorClient.getClient().sendAborted(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.sendAborted_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the read only message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.sendReadOnly_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.sendReadOnly_1] - Unexpected exception while sending ReadOnly
+     */
+    private void sendReadOnly()
+    {
+        final AddressingContext responseAddressingContext = createContext() ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier(id) ;
+        try
+        {
+            CoordinatorClient.getClient().sendReadOnly(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.sendReadOnly_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Send the replay message.
+     * 
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngine.sendReplay_1 [com.arjuna.wst.messaging.engines.ParticipantEngine.sendReplay_1] - Unexpected exception while sending Replay
+     */
+    private void sendReplay()
+    {
+        final AddressingContext responseAddressingContext = createContext() ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier(id) ;
+        try
+        {
+            CoordinatorClient.getClient().sendReplay(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngine.sendReplay_1", th) ;
+            }
+        }
+    }
+    
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+        
+        if (state == State.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 AddressingContext createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingContext.createRequestContext(coordinator, messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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.State;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine;
+
+public class BACoordinatorCompletionParticipantManagerStub implements com.arjuna.wst.BAParticipantManager
+{
+    private final CoordinatorCompletionParticipantEngine coordinator ;
+    
+    public BACoordinatorCompletionParticipantManagerStub (final CoordinatorCompletionParticipantEngine 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 State state = coordinator.exit() ;
+        if (state == State.STATE_EXITING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != State.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void completed ()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        // returns original state
+        final State state = coordinator.completed() ;
+        if ((state != State.STATE_ACTIVE) && (state != State.STATE_COMPLETED))
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void fault ()
+        throws SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> no response
+         * Faulting-Compensating -> no response 
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final State state = coordinator.fault() ;
+        if (state != State.STATE_ENDED)
+        {
+            throw new SystemException() ;
+        }
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    public void error()
+        throws SystemException
+    {
+        fault() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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.State;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine;
+
+public class BAParticipantCompletionParticipantManagerStub implements com.arjuna.wst.BAParticipantManager
+{
+    private final ParticipantCompletionParticipantEngine coordinator ;
+    
+    public BAParticipantCompletionParticipantManagerStub (final ParticipantCompletionParticipantEngine 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
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> illegal state 
+         * Exiting -> no response
+         * Ended -> ended
+         */
+        final State state = coordinator.exit() ;
+        if (state == State.STATE_EXITING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != State.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void completed ()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        // returns original state
+        final State state = coordinator.completed() ;
+        if ((state != State.STATE_ACTIVE) && (state != State.STATE_COMPLETED))
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void fault ()
+        throws SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> no response
+         * Faulting-Compensating -> no response 
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final State state = coordinator.fault() ;
+        if (state != State.STATE_ENDED)
+        {
+            throw new SystemException() ;
+        }
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    public void error()
+        throws SystemException
+    {
+        fault() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,385 @@
+/*
+ * 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 javax.xml.namespace.QName;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.client.TerminationCoordinatorClient;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantCallback;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessor;
+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;
+
+public class BusinessActivityTerminatorStub implements com.arjuna.wst.BusinessActivityTerminator
+{
+    private EndpointReferenceType          _terminationParticipant         = null;
+    private final String _id ;
+    
+    public BusinessActivityTerminatorStub (final String id, final EndpointReferenceType terminationParticipant)
+        throws Exception
+    {
+        _terminationParticipant         = terminationParticipant;
+        _id = id ;
+    }
+
+    public void close ()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(_terminationParticipant, MessageId.getMessageId()) ;
+        
+        final RequestCallback callback = new RequestCallback() ;
+        final TerminationParticipantProcessor terminatorCoordinatorProcessor = TerminationParticipantProcessor.getProcessor() ;
+        terminatorCoordinatorProcessor.registerCallback(_id, callback) ;
+        try
+        {
+            TerminationCoordinatorClient.getClient().sendClose(addressingContext, new InstanceIdentifier(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+        finally
+        {
+            terminatorCoordinatorProcessor.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 AddressingContext addressingContext = AddressingContext.createRequestContext(_terminationParticipant, MessageId.getMessageId()) ;
+        
+        final RequestCallback callback = new RequestCallback() ;
+        final TerminationParticipantProcessor terminatorCoordinatorProcessor = TerminationParticipantProcessor.getProcessor() ;
+        terminatorCoordinatorProcessor.registerCallback(_id, callback) ;
+        try
+        {
+            TerminationCoordinatorClient.getClient().sendCancel(addressingContext, new InstanceIdentifier(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+        finally
+        {
+            terminatorCoordinatorProcessor.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 AddressingContext addressingContext = AddressingContext.createRequestContext(_terminationParticipant, MessageId.getMessageId()) ;
+        
+        final RequestCallback callback = new RequestCallback() ;
+        final TerminationParticipantProcessor terminatorCoordinatorProcessor = TerminationParticipantProcessor.getProcessor() ;
+        terminatorCoordinatorProcessor.registerCallback(_id, callback) ;
+        try
+        {
+            TerminationCoordinatorClient.getClient().sendComplete(addressingContext, new InstanceIdentifier(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+        finally
+        {
+            terminatorCoordinatorProcessor.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 void unknown ()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.BusinessActivityTerminatorStub_1 [com.arjuna.wst.stub.BusinessActivityTerminatorStub_1] - Unknown error
+     */
+    public void error ()
+        throws SystemException
+    {
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(_terminationParticipant, MessageId.getMessageId()) ;
+        final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME,
+                WSTLogger.log_mesg.getString("com.arjuna.wst.stub.BusinessActivityTerminatorStub_1")) ;
+        try
+        {
+            TerminationCoordinatorClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier(_id)) ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+    }
+
+    private static class RequestCallback extends TerminationParticipantCallback
+    {
+        /**
+         * The addressing context.
+         */
+        private AddressingContext addressingContext ;
+        /**
+         * The arjuna context.
+         */
+        private ArjunaContext 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.
+         */
+        AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        /**
+         * Get the arjuna context.
+         * @return The arjuna context.
+         */
+        ArjunaContext getArjunaContext()
+        {
+            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 addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void completed(final NotificationType completed, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.completed = true ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A cancelled response.
+         * @param cancelled The cancelled notification.
+         * @param addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.cancelled  = true ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A closed response.
+         * @param closed The closed notification.
+         * @param addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void closed(final NotificationType closed, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.closed = true ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A faulted response.
+         * @param faulted The faulted notification.
+         * @param addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void faulted(final NotificationType faulted, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.faulted = true ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        /**
+         * A SOAP fault response.
+         * @param soapFault The SOAP fault.
+         * @param addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.soapFault = soapFault ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,255 @@
+/*
+ * 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 javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamWriter;
+
+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.State;
+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.CoordinatorCompletionCoordinatorEngine;
+
+public class BusinessAgreementWithCoordinatorCompletionStub implements BusinessAgreementWithCoordinatorCompletionParticipant, PersistableParticipant
+{
+    private static final QName QNAME_BACC_PARTICIPANT = new QName("baccParticipant") ;
+    private CoordinatorCompletionCoordinatorEngine participant ;
+
+    public BusinessAgreementWithCoordinatorCompletionStub (final CoordinatorCompletionCoordinatorEngine 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 State state = participant.close() ;
+        
+        if (state == State.STATE_CLOSING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != State.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 State state = participant.cancel() ;
+        
+        if ((state == State.STATE_CANCELING) || (state == State.STATE_CANCELING_ACTIVE) ||
+            (state == State.STATE_CANCELING_COMPLETING))
+        {
+            throw new SystemException() ;
+        }
+        else if (state != State.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 State state = participant.compensate() ;
+        if (state == State.STATE_COMPENSATING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state == State.STATE_FAULTING_COMPENSATING)
+        {
+            throw new FaultedException() ;
+        }
+        else if (state != State.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 State state = participant.complete() ;
+        if (state == State.STATE_COMPLETED)
+        {
+            return ;
+        }
+        else if ((state == State.STATE_FAULTING_COMPENSATING) || (state == State.STATE_CANCELING_COMPLETING) ||
+            (state == State.STATE_EXITING))
+        {
+            throw new SystemException() ;
+        }
+        throw new WrongStateException() ;
+    }
+
+    public String status ()
+        throws SystemException
+    {
+        final State 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.BusinessAgreementWithCoordinatorCompletionStub_2 [com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub_2] - Error persisting participant state
+     */
+    public boolean saveState(final OutputObjectState oos)
+    {
+        try
+        {
+            oos.packString(participant.getId()) ;
+            
+            final StringWriter sw = new StringWriter() ;
+            final XMLStreamWriter writer = SoapUtils.getXMLStreamWriter(sw) ;
+            StreamHelper.writeStartElement(writer, QNAME_BACC_PARTICIPANT) ;
+            participant.getParticipant().writeContent(writer) ;
+            StreamHelper.writeEndElement(writer, null, null) ;
+            writer.close() ;
+            
+            oos.packString(writer.toString()) ;
+            
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub_2", th) ;
+            return false ;
+        }
+    }
+    
+    /**
+     * @message com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub_3 [com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub_3] - Error restoring participant state
+     */
+    public boolean restoreState(final InputObjectState ios)
+    {
+        // KEV - rework
+        return false ;
+//        try
+//        {
+//            final String id = ios.unpackString() ;
+//            final String eprValue = ios.unpackString() ;
+//            
+//            final XMLStreamReader reader = SoapUtils.getXMLStreamReader(new StringReader(eprValue)) ;
+//            StreamHelper.checkNextStartTag(reader, QNAME_BACC_PARTICIPANT) ;
+//            final EndpointReferenceType endpointReferenceType = new EndpointReferenceType(reader) ;
+//            
+//            _id = id ;
+//            _businessAgreementWithCoordinatorCompletionParticipant = endpointReferenceType ;
+//            return true ;
+//        }
+//        catch (final Throwable th)
+//        {
+//            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub_3", th) ;
+//            return false ;
+//        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,215 @@
+/*
+ * 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 javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamWriter;
+
+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.State;
+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.ParticipantCompletionCoordinatorEngine;
+
+public class BusinessAgreementWithParticipantCompletionStub implements BusinessAgreementWithParticipantCompletionParticipant, PersistableParticipant
+{
+    private static final QName QNAME_BAPC_PARTICIPANT = new QName("bapcParticipant") ;
+    
+    private ParticipantCompletionCoordinatorEngine participant ;
+    
+    public BusinessAgreementWithParticipantCompletionStub (final ParticipantCompletionCoordinatorEngine 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 State state = participant.close() ;
+        
+        if (state == State.STATE_CLOSING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != State.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 State state = participant.cancel() ;
+        
+        if (state == State.STATE_CANCELING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != State.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 State state = participant.compensate() ;
+        if (state == State.STATE_COMPENSATING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state == State.STATE_FAULTING_COMPENSATING)
+        {
+            throw new FaultedException() ;
+        }
+        else if (state != State.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public String status ()
+        throws SystemException
+    {
+        final State 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.BusinessAgreementWithParticipantCompletionStub_2 [com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub_2] - Error persisting participant state
+     */
+    public boolean saveState(final OutputObjectState oos)
+    {
+        try
+        {
+            oos.packString(participant.getId()) ;
+            
+            final StringWriter sw = new StringWriter() ;
+            final XMLStreamWriter writer = SoapUtils.getXMLStreamWriter(sw) ;
+            StreamHelper.writeStartElement(writer, QNAME_BAPC_PARTICIPANT) ;
+            participant.getParticipant().writeContent(writer) ;
+            StreamHelper.writeEndElement(writer, null, null) ;
+            writer.close() ;
+            
+            oos.packString(writer.toString()) ;
+            
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub_2", th) ;
+            return false ;
+        }
+    }
+    
+    /**
+     * @message com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub_3 [com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub_3] - Error restoring participant state
+     */
+    public boolean restoreState(final InputObjectState ios)
+    {
+        // KEV - rework
+        return false ;
+//        try
+//        {
+//            final String id = ios.unpackString() ;
+//            final String eprValue = ios.unpackString() ;
+//            
+//            final XMLStreamReader reader = SoapUtils.getXMLStreamReader(new StringReader(eprValue)) ;
+//            StreamHelper.checkNextStartTag(reader, QNAME_BAPC_PARTICIPANT) ;
+//            final EndpointReferenceType endpointReferenceType = new EndpointReferenceType(reader) ;
+//            
+//            _id = id ;
+//            _businessAgreementWithParticipantCompletionParticipant = endpointReferenceType ;
+//            return true ;
+//        }
+//        catch (final Throwable th)
+//        {
+//            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub_3", th) ;
+//            return false ;
+//        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,248 @@
+/*
+ * 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.
+ * 
+ * CompletionStub.java
+ */
+
+package com.arjuna.wst.stub;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.client.CompletionCoordinatorClient;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorCallback;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessor;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class CompletionStub implements
+		com.arjuna.wst.CompletionCoordinatorParticipant
+{
+    private EndpointReferenceType _completionCoordinator = null;
+    private String _id;
+
+	public CompletionStub (final String id, final EndpointReferenceType completionCoordinator)
+			throws Exception
+	{	
+		_completionCoordinator = completionCoordinator;
+		_id = id;
+	}
+
+	public void commit () throws TransactionRolledBackException,
+			UnknownTransactionException, SystemException
+	{
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(_completionCoordinator, MessageId.getMessageId()) ;
+        
+        final RequestCallback callback = new RequestCallback() ;
+        final CompletionInitiatorProcessor completionInitiator = CompletionInitiatorProcessor.getProcessor() ;
+        completionInitiator.registerCallback(_id, callback) ;
+        try
+        {
+            CompletionCoordinatorClient.getClient().sendCommit(addressingContext, new InstanceIdentifier(_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 AddressingContext addressingContext = AddressingContext.createRequestContext(_completionCoordinator, MessageId.getMessageId()) ;
+        
+        final RequestCallback callback = new RequestCallback() ;
+        final CompletionInitiatorProcessor completionInitiator = CompletionInitiatorProcessor.getProcessor() ;
+        completionInitiator.registerCallback(_id, callback) ;
+        try
+        {
+            CompletionCoordinatorClient.getClient().sendRollback(addressingContext, new InstanceIdentifier(_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 CompletionInitiatorCallback
+    {
+        /**
+         * The addressing context.
+         */
+        private AddressingContext addressingContext ;
+        /**
+         * The arjuna context.
+         */
+        private ArjunaContext 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.
+         */
+        AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        /**
+         * Get the arjuna context.
+         * @return The arjuna context.
+         */
+        ArjunaContext 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 addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void aborted(final NotificationType aborted, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.aborted = true ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * An committed response.
+         * @param committed The committed notification.
+         * @param addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void committed(final NotificationType committed, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.committed  = true ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        /**
+         * A SOAP fault response.
+         * @param soapFault The SOAP fault.
+         * @param addressingContext The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+            final ArjunaContext arjunaContext)
+        {
+            this.soapFault = soapFault ;
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: Durable2PCStub.java,v 1.1.2.3 2004/06/18 15:06:09 nmcl Exp $
+ */
+
+package com.arjuna.wst.stub;
+
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.wst.Durable2PCParticipant;
+
+public class Durable2PCStub extends ParticipantStub implements Durable2PCParticipant
+{
+    // default ctor for crash recovery
+    public Durable2PCStub() throws Exception {
+        super(null, true, null);
+    }
+
+    public Durable2PCStub(final String id, final EndpointReferenceType twoPCParticipant)
+        throws Exception
+    {
+        super(id, true, twoPCParticipant) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,234 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: ParticipantStub.java,v 1.1.2.1 2005/11/22 10:35:28 kconner Exp $
+ */
+
+package com.arjuna.wst.stub;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+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.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsat.State;
+import com.arjuna.wst.Aborted;
+import com.arjuna.wst.Participant;
+import com.arjuna.wst.PersistableParticipant;
+import com.arjuna.wst.Prepared;
+import com.arjuna.wst.ReadOnly;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.CoordinatorEngine;
+
+public class ParticipantStub implements Participant, PersistableParticipant
+{
+    private static final QName QNAME_TWO_PC_PARTICIPANT = new QName("twoPCParticipant") ;
+    private CoordinatorEngine coordinator ;
+
+    public ParticipantStub(final String id, final boolean durable, final EndpointReferenceType twoPCParticipant)
+        throws Exception
+    {
+        coordinator = new CoordinatorEngine(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 State state = coordinator.prepare() ;
+        if (state == State.STATE_PREPARED_SUCCESS)
+        {
+            return new Prepared() ;
+        }
+        else if (state == State.STATE_ABORTING)
+        {
+            return new Aborted() ;
+        }
+        else if (state == null)
+        {
+            if (coordinator.isReadOnly())
+            {
+                return new ReadOnly() ;
+            }
+            else
+            {
+                return new Aborted() ;
+            }
+        }
+        else if (state == State.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 State state = coordinator.commit() ;
+        if (state != null)
+        {
+            if (state == State.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 State state = coordinator.rollback() ;
+        if (state != null)
+        {
+            if (state == State.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.ParticipantStub_1 [com.arjuna.wst.stub.ParticipantStub_1] - Error persisting participant state
+     */
+    public boolean saveState(final OutputObjectState oos)
+    {
+        try
+        {
+            oos.packString(coordinator.getId()) ;
+            oos.packBoolean(coordinator.isDurable()) ;
+
+            final StringWriter sw = new StringWriter() ;
+            final XMLStreamWriter writer = SoapUtils.getXMLStreamWriter(sw) ;
+            StreamHelper.writeStartElement(writer, QNAME_TWO_PC_PARTICIPANT) ;
+            coordinator.getParticipant().writeContent(writer) ;
+            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.ParticipantStub_1", th) ;
+            return false ;
+        }
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.ParticipantStub_2 [com.arjuna.wst.stub.ParticipantStub_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() ;
+
+            final XMLStreamReader reader = SoapUtils.getXMLStreamReader(new StringReader(eprValue)) ;
+            StreamHelper.checkNextStartTag(reader, QNAME_TWO_PC_PARTICIPANT) ;
+            final EndpointReferenceType endpointReferenceType = new EndpointReferenceType(reader) ;
+
+            coordinator = new CoordinatorEngine(id, durable, endpointReferenceType, State.STATE_PREPARED_SUCCESS) ;
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.ParticipantStub_2", th) ;
+            return false ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/SystemCommunicationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/SystemCommunicationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/SystemCommunicationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,29 @@
+/*
+ * 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, a division of Red Hat.
+ */
+package com.arjuna.wst.stub;
+
+import com.arjuna.wst.SystemException;
+
+/**
+ * Marker interface for exceptions e.g. timeouts, in the client/server communication.
+ */
+public class SystemCommunicationException extends SystemException {
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStub.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStub.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStub.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: Volatile2PCStub.java,v 1.1.2.2 2004/06/18 15:06:09 nmcl Exp $
+ */
+
+package com.arjuna.wst.stub;
+
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.wst.Volatile2PCParticipant;
+
+public class Volatile2PCStub extends ParticipantStub implements Volatile2PCParticipant
+{
+    public Volatile2PCStub(final String id, final EndpointReferenceType twoPCParticipant)
+        throws Exception
+    {
+        super(id, false, twoPCParticipant) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/docs/Protocol.ppt
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/docs/Protocol.ppt
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_application.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_application.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,35 @@
+<!--
+  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 application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
+
+<application>
+    <display-name>Arjuna Web Services Transaction Tests</display-name>
+
+    <description>Arjuna Web Services Transaction Tests</description>
+
+    <module>
+        <web>
+            <web-uri>ws-t-tests.war</web-uri>
+            <context-root>/ws-t-tests</context-root>
+        </web>
+    </module>
+</application>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/dd/ws-t-tests_web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
+
+<web-app>
+    <display-name>Arjuna Web Services Transaction Tests</display-name>
+
+    <description>Arjuna Web Services Transaction Tests</description>
+
+    <!-- Initialise Arjuna TX services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationCoordinatorInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-AT services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionInitiatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.ParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-BA services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-T  -->
+    <listener>
+        <listener-class>com.arjuna.wst.messaging.deploy.TransactionInitialisation</listener-class>
+    </listener>
+    
+    <!--  Initialise the HTTP Client -->
+    <listener>
+        <listener-class>com.arjuna.webservices.transport.http.HttpClientInitialisation</listener-class>
+    </listener>
+    
+    <!--  Initialise the tests -->
+    <listener>
+        <listener-class>com.arjuna.wst.tests.TestInitialisation</listener-class>
+    </listener>
+    
+    <servlet>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <servlet-class>com.arjuna.webservices.transport.http.HttpServiceMultiplexorServlet</servlet-class>
+        <!--
+          The BaseHttpURI and BaseHttpsURI parameters specify the default values
+          used to generate the service URIs without reference to an incoming
+          request.
+         -->
+        <init-param>
+            <param-name>BaseHttpURI</param-name>
+            <param-value>http://@hostname@:@port@/ws-t-tests/soap/</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    
+    <servlet>
+        <servlet-name>JUnit Tests Servlet</servlet-name>
+        <servlet-class>com.arjuna.qa.junit.TestRunnerServlet</servlet-class>
+        <init-param>
+            <param-name>TestSuiteClassName</param-name>
+            <param-value>com.arjuna.wst.tests.junit.TestSuite</param-value>
+        </init-param>
+        <load-on-startup>4</load-on-startup>
+    </servlet>
+
+	<!-- servlet mappings -->
+    <servlet-mapping>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <url-pattern>/soap/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>JUnit Tests Servlet</servlet-name>
+        <url-pattern>/index.html</url-pattern>
+    </servlet-mapping>
+    
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/qa/junit/TestRunnerServlet.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,608 @@
+/*
+ * 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.
+ *
+ * TestRunnerServlet.java
+ */
+
+package com.arjuna.qa.junit;
+
+import java.io.*;
+import java.util.*;
+import java.net.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import junit.framework.*;
+
+public class TestRunnerServlet extends HttpServlet
+{
+    public void init(ServletConfig config) throws ServletException
+    {
+        super.init(config);
+
+        _testSuiteClassName = config.getInitParameter("TestSuiteClassName");
+    }
+
+    public void doGet(HttpServletRequest request, HttpServletResponse response)
+        throws ServletException, IOException
+    {
+        try
+        {
+            PrintWriter writer = response.getWriter();
+
+            response.setContentType("text/html");
+            response.setHeader("Cache-Control", "no-cache");
+
+            if (request.getParameter("failednumber") != null)
+                doStatusFailed(writer, request, response);
+            else if (request.getParameter("errornumber") != null)
+                doStatusError(writer, request, response);
+            else
+                doStatus(writer, request, response);
+        }
+        catch (Exception exception)
+        {
+            log("Test Runner: doGet failed", exception);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, exception.toString());
+        }
+        catch (Error error)
+        {
+            log("Test Runner: doGet failed", error);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, error.toString());
+        }
+    }
+
+    public void doPost(HttpServletRequest request, HttpServletResponse response)
+        throws ServletException, IOException
+    {
+        try
+        {
+            PrintWriter writer = response.getWriter();
+
+            response.setContentType("text/html");
+            response.setHeader("Cache-Control", "no-cache");
+
+	    if ((_runnerThread == null) || (! _runnerThread.isAlive()))
+	    {
+                _runnerThread = new RunnerThread();
+                _runnerThread.start();
+            }
+
+            if (request.getParameter("failednumber") != null)
+                doStatusFailed(writer, request, response);
+            else if (request.getParameter("errornumber") != null)
+                doStatusError(writer, request, response);
+            else
+                doStatus(writer, request, response);
+        }
+        catch (Exception exception)
+        {
+            log("Test Runner: doPost failed", exception);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, exception.toString());
+        }
+        catch (Error error)
+        {
+            log("Test Runner: doPost failed", error);
+
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, error.toString());
+        }
+    }
+
+    public void doStatus(PrintWriter writer, HttpServletRequest request, HttpServletResponse response)
+        throws ServletException
+    {
+        writer.println("<HTML>");
+        writer.println("<HEAD>");
+        writer.println("<TITLE>Test Runner</TITLE>");
+        writer.println("</HEAD>");
+        writer.println("<BODY bgcolor=\"white\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+        writer.println("<DIV style=\"font-family: Arial, Helvetica, sans-serif; font-size: large\">&nbsp;<BR>Test Runner: Status<BR>&nbsp;</DIV>");
+
+        writer.println("<TABLE width=\"100%\">");
+
+        writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Status</TD></TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test suite class:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _testSuiteClassName + "</TD>");
+        writer.println("</TR>");
+
+        if ((_runnerThread == null) || (! _runnerThread.isAlive()))
+        {
+            writer.println("<TR>");
+            writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Action:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.print("<FORM method=\"POST\" action=\"" + request.getRequestURL() + "\">");
+            writer.print("<INPUT type=\"button\" value=\"run\" onclick=\"this.form.submit()\">");
+            writer.print("</FORM>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+        }
+        else
+        {
+            writer.println("<TR>");
+            writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Action:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.print("<FORM method=\"GET\" action=\"" + request.getRequestURL() + "\">");
+            writer.print("<INPUT type=\"button\" value=\"reload\" onclick=\"this.form.submit()\">");
+            writer.print("</FORM>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            if (_currentTest != null)
+	    {
+                writer.println("<TR>");
+                writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Current test:</TD>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, _currentTest.toString());
+                writer.println("</TD>");
+                writer.println("</TR>");
+            }
+        }
+        writer.println("</TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Passed count:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _passedTests.size() + "</TD>");
+        writer.println("</TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Failed count:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _failedTests.size() + "</TD>");
+        writer.println("</TR>");
+        writer.println("<TR>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Error count:</TD>");
+        writer.println("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + _errorTests.size() + "</TD>");
+        writer.println("</TR>");
+
+        writer.println("</TABLE>");
+
+        if (! _passedTests.isEmpty())
+        {
+            writer.println("<BR>");
+
+            writer.println("<TABLE width=\"100%\">");
+
+            writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Passes</TD></TR>");
+
+            writer.println("<TR>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration</TD>");
+            writer.println("</TR>");
+
+            Iterator passedTestsIterator = _passedTests.iterator();
+            while (passedTestsIterator.hasNext())
+            {
+                PassedTest passedTest = (PassedTest) passedTestsIterator.next();
+                writer.println("<TR>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, passedTest.test.toString());
+                writer.println("</TD>");
+                writer.print("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif\">" + passedTest.duration + " ms</TD>");
+                writer.println("</TR>");
+            }
+
+            writer.println("</TABLE>");
+        }
+
+        if (! _failedTests.isEmpty())
+        {
+            writer.println("<BR>");
+
+            writer.println("<TABLE width=\"100%\">");
+
+            writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Failures</TD></TR>");
+            writer.println("<TR>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Message</TD>");
+            writer.println("</TR>");
+
+            int failedNumber = 0;
+            Iterator failedTestsIterator = _failedTests.iterator();
+            while (failedTestsIterator.hasNext())
+            {
+                FailedTest failedTest = (FailedTest) failedTestsIterator.next();
+                writer.println("<TR>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                writer.print("<A href=\"" + request.getRequestURL() + "?failednumber=" + failedNumber + "\">");
+                encode(writer, failedTest.test.toString());
+                writer.print("</A>");
+                writer.println("</TD>");
+                writer.print("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif\">" + failedTest.duration + " ms</TD>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, failedTest.assertionFailedError.getMessage());
+                writer.println("</TD>");
+                writer.println("</TR>");
+                failedNumber++;
+            }
+
+            writer.println("</TABLE>");
+
+            writer.println("<BR>");
+        }
+
+        if (! _errorTests.isEmpty())
+        {
+            writer.println("<TABLE width=\"100%\">");
+            writer.println("<TR>");
+            writer.println("<TR><TD colspan=\"3\" align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Errors</TD></TR>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration</TD>");
+            writer.println("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Exception/Error</TD>");
+            writer.println("</TR>");
+
+            int errorNumber = 0;
+            Iterator errorTestsIterator = _errorTests.iterator();
+            while (errorTestsIterator.hasNext())
+            {
+                ErrorTest errorTest = (ErrorTest) errorTestsIterator.next();
+                writer.println("<TR>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                writer.print("<A href=\"" + request.getRequestURL() + "?errornumber=" + errorNumber + "\">");
+                encode(writer, errorTest.test.toString());
+                writer.print("</A>");
+                writer.println("</TD>");
+                writer.print("<TD align=\"center\" style=\"font-family: Arial, Helvetica, sans-serif\">" + errorTest.duration + " ms</TD>");
+                writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+                encode(writer, errorTest.throwable.toString());
+                writer.println("</TD>");
+                writer.println("</TR>");
+                errorNumber++;
+            }
+
+            writer.println("</TABLE>");
+        }
+
+        writer.println("</BODY>");
+        writer.println("</HTML>");
+    }
+
+    public void doStatusFailed(PrintWriter writer, HttpServletRequest request, HttpServletResponse response)
+        throws ServletException
+    {
+        int        failedIndex = 0;
+        FailedTest failedTest  = null;
+
+        try
+        {
+            String failedIndexString = (String) request.getParameter("failednumber");
+
+            failedIndex = Integer.parseInt(failedIndexString);
+            failedTest  = (FailedTest) _failedTests.get(failedIndex);
+        }
+        catch (Exception exception)
+        {
+            failedTest = null;
+        }
+
+        if (failedTest != null)
+        {
+            writer.println("<HTML>");
+            writer.println("<HEAD>");
+            writer.println("<TITLE>Test Runner</TITLE>");
+            writer.println("</HEAD>");
+            writer.println("<BODY bgcolor=\"white\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<DIV style=\"font-family: Arial, Helvetica, sans-serif; font-size: large\">&nbsp;<BR>Test Runner: Failed Status<BR>&nbsp;</DIV>");
+
+            writer.println("<TABLE>");
+
+            writer.print("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, failedTest.test.toString());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + failedTest.duration + " ms</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Message:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, failedTest.assertionFailedError.getMessage());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.print("<TR>");
+            writer.print("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Stack trace:</TD>");
+            writer.println("</TR>");
+            writer.println("<TR>");
+            writer.println("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<PRE>");
+            CharArrayWriter charArrayWriter = new CharArrayWriter();
+            PrintWriter     printWriter     = new PrintWriter(charArrayWriter, true);
+            failedTest.assertionFailedError.printStackTrace(printWriter);
+            printWriter.close();
+            charArrayWriter.close();
+            encode(writer, charArrayWriter.toString());
+            writer.println("</PRE>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("</TABLE>");
+
+            writer.println("<TABLE width=\"100%\">");
+            writer.println("<TR>");
+            writer.println("<TD align=\"left\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (failedIndex > 0)
+                writer.println("<A href=\"" + request.getRequestURL() + "?failednumber=" + (failedIndex - 1)+ "\">previous</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("<TD align=\"center\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<A href=\"" + request.getRequestURL() + "\">all</A>");
+            writer.println("</TD>");
+            writer.println("<TD align=\"right\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (failedIndex < (_failedTests.size() - 1))
+                writer.println("<A href=\"" + request.getRequestURL() + "?failednumber=" + (failedIndex + 1)+ "\">next</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("</TR>");
+            writer.println("</TABLE>");
+
+            writer.println("</BODY>");
+            writer.println("</HTML>");
+        }
+        else
+            doStatus(writer, request, response);
+    }
+
+    public void doStatusError(PrintWriter writer, HttpServletRequest request, HttpServletResponse response)
+        throws ServletException
+    {
+        int       errorIndex = 0;
+        ErrorTest errorTest  = null;
+
+        try
+        {
+            String errorIndexString = (String) request.getParameter("errornumber");
+
+            errorIndex = Integer.parseInt(errorIndexString);
+            errorTest  = (ErrorTest) _errorTests.get(errorIndex);
+        }
+        catch (Exception exception)
+        {
+            errorTest = null;
+        }
+
+        if (errorTest != null)
+        {
+            writer.println("<HTML>");
+            writer.println("<HEAD>");
+            writer.println("<TITLE>Test Runner</TITLE>");
+            writer.println("</HEAD>");
+            writer.println("<BODY bgcolor=\"white\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<DIV style=\"font-family: Arial, Helvetica, sans-serif; font-size: large\">&nbsp;<BR>Test Runner: Error Status<BR>&nbsp;</DIV>");
+
+            writer.println("<TABLE>");
+
+            writer.print("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Test:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, errorTest.test.toString());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Duration:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">" + errorTest.duration + " ms</TD>");
+            writer.println("</TR>");
+
+            writer.println("<TR>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Exception/error:</TD>");
+            writer.print("<TD style=\"font-family: Arial, Helvetica, sans-serif\">");
+            encode(writer, errorTest.throwable.toString());
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.print("<TR>");
+            writer.print("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif; font-weight: bold\">Stack trace:</TD>");
+            writer.println("</TR>");
+            writer.println("<TR>");
+            writer.println("<TD colspan=\"2\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<PRE>");
+            CharArrayWriter charArrayWriter = new CharArrayWriter();
+            PrintWriter     printWriter     = new PrintWriter(charArrayWriter, true);
+            errorTest.throwable.printStackTrace(printWriter);
+            printWriter.close();
+            charArrayWriter.close();
+            encode(writer, charArrayWriter.toString());
+            writer.println("</PRE>");
+            writer.println("</TD>");
+            writer.println("</TR>");
+
+            writer.println("</TABLE>");
+
+            writer.println("<TABLE width=\"100%\">");
+            writer.println("<TR>");
+            writer.println("<TD align=\"left\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (errorIndex > 0)
+                writer.println("<A href=\"" + request.getRequestURL() + "?errornumber=" + (errorIndex - 1)+ "\">previous</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("<TD align=\"center\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            writer.println("<A href=\"" + request.getRequestURL() + "\">all</A>");
+            writer.println("</TD>");
+            writer.println("<TD align=\"right\" width=\"33%\" style=\"font-family: Arial, Helvetica, sans-serif\">");
+            if (errorIndex < (_errorTests.size() - 1))
+                writer.println("<A href=\"" + request.getRequestURL() + "?errornumber=" + (errorIndex + 1)+ "\">next</A>");
+            else
+                writer.print("&nbsp;");
+            writer.println("</TD>");
+            writer.println("</TR>");
+            writer.println("</TABLE>");
+
+            writer.println("</BODY>");
+            writer.println("</HTML>");
+        }
+        else
+            doStatus(writer, request, response);
+    }
+
+    private class PassedTest
+    {
+        public Test test;
+        public long duration;
+    }
+
+    private class FailedTest
+    {
+        public Test                 test;
+        public long                 duration;
+        public AssertionFailedError assertionFailedError;
+    }
+
+    private class ErrorTest
+    {
+        public Test      test;
+        public long      duration;
+	public Throwable throwable;
+    }
+
+    private class RunnerThread extends Thread
+    {
+        public void run()
+        {
+            try
+            {
+                _passedTests.clear();
+                _failedTests.clear();
+                _errorTests.clear();
+
+                Class        testSuiteClass = Class.forName(_testSuiteClassName);
+                TestListener testListener   = new BasicTestListener();
+
+                _testResult = new TestResult();
+                _testSuite  = (TestSuite) testSuiteClass.newInstance();
+
+                _testResult.addListener(testListener);
+                _testSuite.run(_testResult);
+                _testResult.removeListener(testListener);
+            }
+            catch (Exception exception)
+            {
+                log("Runner Thread: run failed", exception);
+            }
+            catch (Error error)
+            {
+                log("Runner Thread: run failed", error);
+            }
+        }
+    }
+
+    private class BasicTestListener implements TestListener
+    {
+        public void startTest(Test test)
+        {
+            _startTime            = System.currentTimeMillis();
+            _failed               = false;
+            _error                = false;
+            _assertionFailedError = null;
+            _throwable            = null;
+            _currentTest          = test;
+        }
+
+        public void addError(Test test, Throwable throwable)
+        {
+            _error     = true;
+            _throwable = throwable;
+            throwable.printStackTrace(System.out);
+        }
+
+        public void addFailure(Test test, AssertionFailedError assertionFailedError)
+        {
+            _failed               = true;
+            _assertionFailedError = assertionFailedError;
+            assertionFailedError.printStackTrace(System.out);
+        }
+
+        public void endTest(Test test)
+        {
+            if (_failed)
+            {
+                FailedTest failedTest           = new FailedTest();
+                failedTest.test                 = test;
+                failedTest.duration             = System.currentTimeMillis() - _startTime;
+                failedTest.assertionFailedError = _assertionFailedError;
+                _failedTests.add(failedTest);
+	    }
+	    else if (_error)
+            {
+                ErrorTest errorTest = new ErrorTest();
+                errorTest.test      = test;
+                errorTest.duration  = System.currentTimeMillis() - _startTime;
+                errorTest.throwable = _throwable;
+                _errorTests.add(errorTest);
+	    }
+	    else
+            {
+                PassedTest passedTest = new PassedTest();
+                passedTest.test       = test;
+                passedTest.duration   = System.currentTimeMillis() - _startTime;
+                _passedTests.add(passedTest);
+	    }
+
+            _currentTest = null;
+        }
+
+        private long                 _startTime            = 0;
+        private boolean              _failed               = false;
+        private boolean              _error                = false;
+        private AssertionFailedError _assertionFailedError = null;
+        private Throwable            _throwable            = null;
+    }
+
+    private static void encode(PrintWriter writer, String string)
+    {
+        if (string != null)
+        {
+            char[] chars = string.toCharArray();
+
+            for (int index = 0; index < chars.length; index++)
+                if (chars[index] == '<')
+                    writer.print("&lt;");
+                else if (chars[index] == '>')
+                    writer.print("&gt;");
+                else if (chars[index] == '&')
+                    writer.print("&amp;");
+                else
+                    writer.print(chars[index]);
+        }
+        else
+            writer.print("null");
+    }
+
+    private List         _passedTests        = new LinkedList();
+    private List         _failedTests        = new LinkedList();
+    private List         _errorTests         = new LinkedList();
+    private Test         _currentTest        = null;
+    private String       _testSuiteClassName = null;
+    private RunnerThread _runnerThread       = null;
+    private TestResult   _testResult         = null;
+    private TestSuite    _testSuite          = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestAbortedVoteParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestAbortedVoteParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestAbortedVoteParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestAbortedVoteParticipant.java,v 1.1.2.1 2005/11/22 10:37:41 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.Aborted;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestAbortedVoteParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        return new Aborted();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:51 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant implements BusinessAgreementWithCoordinatorCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	throw new FaultedException();
+    }
+    
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+
+    public void forget () throws WrongStateException, SystemException
+    {
+    }
+
+    public void complete () throws WrongStateException, SystemException
+    {
+    }
+    
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:52 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant implements BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	throw new FaultedException();
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,166 @@
+/*
+ * 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.tests;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.webservices.wsarjtx.processors.ParticipantManagerParticipantProcessor;
+import com.arjuna.webservices.wsarjtx.processors.TerminatorParticipantProcessor;
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+
+/**
+ * Initialise the test.
+ * @author kevin
+ */
+public class TestInitialisation implements ServletContextListener
+{
+    private final CompletionCoordinatorParticipant testNoExceptionCompletionCoordinatorParticipant                 = new TestNoExceptionCompletionCoordinatorParticipant();
+    private final CompletionCoordinatorParticipant testTransactionRolledExceptionCompletionCoordinatorParticipant  = new TestTransactionRolledBackExceptionCompletionCoordinatorParticipant();
+    private final CompletionCoordinatorParticipant testUnknownTransactionExceptionCompletionCoordinatorParticipant = new TestUnknownTransactionExceptionCompletionCoordinatorParticipant();
+    private final CompletionCoordinatorParticipant testSystemExceptionCompletionCoordinatorParticipant             = new TestSystemExceptionCompletionCoordinatorParticipant();
+
+    private final Participant testPreparedVoteParticipant                   = new TestPreparedVoteParticipant();
+    private final Participant testAbortedVoteParticipant                    = new TestAbortedVoteParticipant();
+    private final Participant testReadOnlyParticipant                       = new TestReadOnlyVoteParticipant();
+    private final Participant testNoExceptionParticipant                    = new TestNoExceptionParticipant();
+    private final Participant testTransactionRolledBackExceptionParticipant = new TestTransactionRolledBackExceptionParticipant();
+    private final Participant testWrongStateExceptionParticipant            = new TestWrongStateExceptionParticipant();
+    private final Participant testSystemExceptionParticipant                = new TestSystemExceptionParticipant();
+
+    private final BusinessAgreementWithParticipantCompletionParticipant testSystemExceptionBusinessAgreementWithParticipantCompletionParticipant = new TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant();
+    private final BusinessAgreementWithParticipantCompletionParticipant testWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant = new TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant();
+    private final BusinessAgreementWithParticipantCompletionParticipant testNoExceptionBusinessAgreementWithParticipantCompletionParticipant = new TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant();
+    private final BusinessAgreementWithParticipantCompletionParticipant testFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant = new TestFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant();
+
+    private final BusinessAgreementWithCoordinatorCompletionParticipant testSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant = new TestSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant();
+    private final BusinessAgreementWithCoordinatorCompletionParticipant testWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant = new TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant();
+    private final BusinessAgreementWithCoordinatorCompletionParticipant testNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant = new TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant();
+    private final BusinessAgreementWithCoordinatorCompletionParticipant testFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant = new TestFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant();
+
+    private final BAParticipantManager testNoExceptionBAPMParticipant                    = new TestNoExceptionBAPMParticipant();
+    private final BAParticipantManager testWrongStateExceptionBAPMParticipant            = new TestWrongStateExceptionBAPMParticipant();
+    private final BAParticipantManager testSystemExceptionBAPMParticipant                = new TestSystemExceptionBAPMParticipant();
+
+    private final BusinessActivityTerminator testNoExceptionBusinessActivityTerminator = new TestNoExceptionBusinessActivityTerminator();
+    private final BusinessActivityTerminator testUnknownTransactionExceptionBusinessActivityTerminator = new TestUnknownTransactionExceptionBusinessActivityTerminator();
+    private final BusinessActivityTerminator testTransactionRolledBackExceptionBusinessActivityTerminator = new TestTransactionRolledBackExceptionBusinessActivityTerminator();
+    private final BusinessActivityTerminator testSystemExceptionBusinessActivityTerminator = new TestSystemExceptionBusinessActivityTerminator();
+    
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        final CompletionCoordinatorProcessor completionCoordinatorProcessor = CompletionCoordinatorProcessor.getCoordinator() ;
+        completionCoordinatorProcessor.activateParticipant(testNoExceptionCompletionCoordinatorParticipant, TestUtil.NOEXCEPTION_TRANSACTION_IDENTIFIER);
+        completionCoordinatorProcessor.activateParticipant(testTransactionRolledExceptionCompletionCoordinatorParticipant, TestUtil.TRANSACTIONROLLEDBACKEXCEPTION_TRANSACTION_IDENTIFIER);
+        completionCoordinatorProcessor.activateParticipant(testUnknownTransactionExceptionCompletionCoordinatorParticipant, TestUtil.UNKNOWNTRANSACTIONEXCEPTION_TRANSACTION_IDENTIFIER);
+        completionCoordinatorProcessor.activateParticipant(testSystemExceptionCompletionCoordinatorParticipant, TestUtil.SYSTEMEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        final ParticipantProcessor participantProcessor = ParticipantProcessor.getParticipant() ;
+        participantProcessor.activateParticipant(testPreparedVoteParticipant, TestUtil.PREPAREDVOTE_PARTICIPANT_IDENTIFIER);
+        participantProcessor.activateParticipant(testAbortedVoteParticipant, TestUtil.ABORTEDVOTE_PARTICIPANT_IDENTIFIER);
+        participantProcessor.activateParticipant(testReadOnlyParticipant, TestUtil.READONLYVOTE_PARTICIPANT_IDENTIFIER);
+        participantProcessor.activateParticipant(testNoExceptionParticipant, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantProcessor.activateParticipant(testTransactionRolledBackExceptionParticipant, TestUtil.TRANSACTIONROLLEDBACKEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantProcessor.activateParticipant(testWrongStateExceptionParticipant, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantProcessor.activateParticipant(testSystemExceptionParticipant, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        final ParticipantCompletionParticipantProcessor participantCompletionParticipantProcessor = ParticipantCompletionParticipantProcessor.getParticipant() ;
+        participantCompletionParticipantProcessor.activateParticipant(testSystemExceptionBusinessAgreementWithParticipantCompletionParticipant, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantCompletionParticipantProcessor.activateParticipant(testWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantCompletionParticipantProcessor.activateParticipant(testNoExceptionBusinessAgreementWithParticipantCompletionParticipant, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantCompletionParticipantProcessor.activateParticipant(testFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant, TestUtil.FAULTEDEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        final CoordinatorCompletionParticipantProcessor coordinatorCompletionParticipantProcessor = CoordinatorCompletionParticipantProcessor.getParticipant() ;
+        coordinatorCompletionParticipantProcessor.activateParticipant(testSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+        coordinatorCompletionParticipantProcessor.activateParticipant(testWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+        coordinatorCompletionParticipantProcessor.activateParticipant(testNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+        coordinatorCompletionParticipantProcessor.activateParticipant(testFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant, TestUtil.FAULTEDEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        final ParticipantManagerParticipantProcessor participantManagerParticipantProcessor = ParticipantManagerParticipantProcessor.getParticipant() ;
+        participantManagerParticipantProcessor.activateParticipant(testNoExceptionBAPMParticipant, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantManagerParticipantProcessor.activateParticipant(testWrongStateExceptionBAPMParticipant, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+        participantManagerParticipantProcessor.activateParticipant(testSystemExceptionBAPMParticipant, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        final TerminatorParticipantProcessor terminatorParticipantProcessor = TerminatorParticipantProcessor.getParticipant() ;
+        terminatorParticipantProcessor.activateParticipant(testNoExceptionBusinessActivityTerminator, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+        terminatorParticipantProcessor.activateParticipant(testTransactionRolledBackExceptionBusinessActivityTerminator, TestUtil.TRANSACTIONROLLEDBACKEXCEPTION_TRANSACTION_IDENTIFIER);
+        terminatorParticipantProcessor.activateParticipant(testUnknownTransactionExceptionBusinessActivityTerminator, TestUtil.UNKNOWNTRANSACTIONEXCEPTION_TRANSACTION_IDENTIFIER);
+        terminatorParticipantProcessor.activateParticipant(testSystemExceptionBusinessActivityTerminator, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+        final CompletionCoordinatorProcessor completionCoordinatorProcessor = CompletionCoordinatorProcessor.getCoordinator() ;
+        completionCoordinatorProcessor.deactivateParticipant(testNoExceptionCompletionCoordinatorParticipant);
+        completionCoordinatorProcessor.deactivateParticipant(testTransactionRolledExceptionCompletionCoordinatorParticipant);
+        completionCoordinatorProcessor.deactivateParticipant(testUnknownTransactionExceptionCompletionCoordinatorParticipant);
+        completionCoordinatorProcessor.deactivateParticipant(testSystemExceptionCompletionCoordinatorParticipant);
+
+        final ParticipantProcessor participantProcessor = ParticipantProcessor.getParticipant() ;
+        participantProcessor.deactivateParticipant(testPreparedVoteParticipant);
+        participantProcessor.deactivateParticipant(testAbortedVoteParticipant);
+        participantProcessor.deactivateParticipant(testReadOnlyParticipant);
+        participantProcessor.deactivateParticipant(testNoExceptionParticipant);
+        participantProcessor.deactivateParticipant(testTransactionRolledBackExceptionParticipant);
+        participantProcessor.deactivateParticipant(testWrongStateExceptionParticipant);
+        participantProcessor.deactivateParticipant(testSystemExceptionParticipant);
+        
+        final ParticipantCompletionParticipantProcessor participantCompletionParticipantProcessor = ParticipantCompletionParticipantProcessor.getParticipant() ;
+        participantCompletionParticipantProcessor.deactivateParticipant(testSystemExceptionBusinessAgreementWithParticipantCompletionParticipant);
+        participantCompletionParticipantProcessor.deactivateParticipant(testWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant);
+        participantCompletionParticipantProcessor.deactivateParticipant(testNoExceptionBusinessAgreementWithParticipantCompletionParticipant);
+        participantCompletionParticipantProcessor.deactivateParticipant(testFaultedExceptionBusinessAgreementWithParticipantCompletionParticipant);
+
+        final CoordinatorCompletionParticipantProcessor coordinatorCompletionParticipantProcessor = CoordinatorCompletionParticipantProcessor.getParticipant() ;
+        coordinatorCompletionParticipantProcessor.deactivateParticipant(testSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant);
+        coordinatorCompletionParticipantProcessor.deactivateParticipant(testWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant);
+        coordinatorCompletionParticipantProcessor.deactivateParticipant(testNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant);
+        coordinatorCompletionParticipantProcessor.deactivateParticipant(testFaultedExceptionBusinessAgreementWithCoordinatorCompletionParticipant);
+
+        final ParticipantManagerParticipantProcessor participantManagerParticipantProcessor = ParticipantManagerParticipantProcessor.getParticipant() ;
+        participantManagerParticipantProcessor.deactivateParticipant(testNoExceptionBAPMParticipant);
+        participantManagerParticipantProcessor.deactivateParticipant(testWrongStateExceptionBAPMParticipant);
+        participantManagerParticipantProcessor.deactivateParticipant(testSystemExceptionBAPMParticipant);
+
+        final TerminatorParticipantProcessor terminatorParticipantProcessor = TerminatorParticipantProcessor.getParticipant() ;
+        terminatorParticipantProcessor.deactivateParticipant(testNoExceptionBusinessActivityTerminator);
+        terminatorParticipantProcessor.deactivateParticipant(testTransactionRolledBackExceptionBusinessActivityTerminator);
+        terminatorParticipantProcessor.deactivateParticipant(testUnknownTransactionExceptionBusinessActivityTerminator);
+        terminatorParticipantProcessor.deactivateParticipant(testSystemExceptionBusinessActivityTerminator);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBAPMParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBAPMParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBAPMParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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: TestNoExceptionBAPMParticipant.java,v 1.5.8.1 2005/11/22 10:37:37 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestNoExceptionBAPMParticipant implements BAParticipantManager
+{
+
+    public void completed ()
+        throws WrongStateException, SystemException
+    {
+    }
+
+    public void exit ()
+        throws WrongStateException, SystemException
+    {
+    }
+
+    public void fault ()
+        throws SystemException
+    {
+    }
+
+    public void unknown ()
+        throws SystemException
+    {
+    }
+
+    public void error ()
+        throws SystemException
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessActivityTerminator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessActivityTerminator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessActivityTerminator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: TestNoExceptionBusinessActivityTerminator.java,v 1.3.20.1 2005/11/22 10:37:37 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestNoExceptionBusinessActivityTerminator implements BusinessActivityTerminator
+{
+
+    public void close ()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+    }
+
+    public void cancel ()
+        throws UnknownTransactionException, SystemException
+    {
+    }
+
+    public void complete ()
+        throws UnknownTransactionException, SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:52 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestNoExceptionBusinessAgreementWithCoordinatorCompletionParticipant implements BusinessAgreementWithCoordinatorCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+    }
+
+    public void compensate () throws WrongStateException, SystemException
+    {
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+    }
+
+    public void complete () throws WrongStateException, SystemException
+    {
+    }
+    
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:52 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestNoExceptionBusinessAgreementWithParticipantCompletionParticipant implements BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionCompletionCoordinatorParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionCompletionCoordinatorParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionCompletionCoordinatorParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ *
+ * TestNoExceptionCompletionCoordinatorParticipant.java
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestNoExceptionCompletionCoordinatorParticipant implements CompletionCoordinatorParticipant
+{
+    public void commit()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+    }
+
+    public void rollback()
+        throws UnknownTransactionException, SystemException
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestNoExceptionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestNoExceptionParticipant.java,v 1.1.2.1 2005/11/22 10:37:38 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestNoExceptionParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+    }
+
+    public void error()
+        throws SystemException
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestPreparedVoteParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestPreparedVoteParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestPreparedVoteParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestPreparedVoteParticipant.java,v 1.1.2.1 2005/11/22 10:37:37 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.Prepared;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestPreparedVoteParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        return new Prepared();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestReadOnlyVoteParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestReadOnlyVoteParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestReadOnlyVoteParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestReadOnlyVoteParticipant.java,v 1.1.2.1 2005/11/22 10:37:39 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.ReadOnly;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestReadOnlyVoteParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        return new ReadOnly();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBAPMParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBAPMParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBAPMParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: TestSystemExceptionBAPMParticipant.java,v 1.5.8.1 2005/11/22 10:37:36 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestSystemExceptionBAPMParticipant implements BAParticipantManager
+{
+    public void completed ()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void exit ()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void fault ()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void unknown ()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error ()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessActivityTerminator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessActivityTerminator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessActivityTerminator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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: TestSystemExceptionBusinessActivityTerminator.java,v 1.3.20.1 2005/11/22 10:37:40 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestSystemExceptionBusinessActivityTerminator implements BusinessActivityTerminator
+{
+
+    public void close ()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void cancel ()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void complete ()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new SystemException();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+/*
+ * 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) 2004, Arjuna Technologies Limited.
+ *
+ * $IdD$
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestSystemExceptionBusinessAgreementWithCoordinatorCompletionParticipant implements BusinessAgreementWithCoordinatorCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+
+    public void complete () throws WrongStateException, SystemException
+    {
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+
+    public void unknown () throws SystemException
+    {
+	throw new SystemException();
+    }
+
+    public void error () throws SystemException
+    {
+	throw new SystemException();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:53 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestSystemExceptionBusinessAgreementWithParticipantCompletionParticipant implements BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+	throw new SystemException();
+    }
+
+    public void unknown () throws SystemException
+    {
+	throw new SystemException();
+    }
+
+    public void error () throws SystemException
+    {
+	throw new SystemException();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionCompletionCoordinatorParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionCompletionCoordinatorParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionCompletionCoordinatorParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ *
+ * TestSystemExceptionCompletionCoordinatorParticipant.java
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestSystemExceptionCompletionCoordinatorParticipant implements CompletionCoordinatorParticipant
+{
+    public void commit()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void rollback()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestSystemExceptionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestSystemExceptionParticipant.java,v 1.1.2.1 2005/11/22 10:37:39 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestSystemExceptionParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionBusinessActivityTerminator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionBusinessActivityTerminator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionBusinessActivityTerminator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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: TestTransactionRolledBackExceptionBusinessActivityTerminator.java,v 1.3.20.1 2005/11/22 10:37:37 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestTransactionRolledBackExceptionBusinessActivityTerminator implements BusinessActivityTerminator
+{
+
+    public void close ()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        throw new TransactionRolledBackException();
+    }
+
+    public void cancel ()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+
+    public void complete ()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionCompletionCoordinatorParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionCompletionCoordinatorParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionCompletionCoordinatorParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ *
+ * TestTransactionRolledBackExceptionCompletionCoordinatorParticipant.java
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestTransactionRolledBackExceptionCompletionCoordinatorParticipant implements CompletionCoordinatorParticipant
+{
+    public void commit()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        throw new TransactionRolledBackException();
+    }
+
+    public void rollback()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestTransactionRolledBackExceptionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestTransactionRolledBackExceptionParticipant.java,v 1.1.2.1 2005/11/22 10:37:40 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestTransactionRolledBackExceptionParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+        throw new TransactionRolledBackException();
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionBusinessActivityTerminator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionBusinessActivityTerminator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionBusinessActivityTerminator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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: TestUnknownTransactionExceptionBusinessActivityTerminator.java,v 1.3.20.1 2005/11/22 10:37:41 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestUnknownTransactionExceptionBusinessActivityTerminator implements BusinessActivityTerminator
+{
+
+    public void close ()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+
+    public void cancel ()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+
+    public void complete ()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionCompletionCoordinatorParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionCompletionCoordinatorParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUnknownTransactionExceptionCompletionCoordinatorParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ *
+ * TestUnknownTransactionExceptionCompletionCoordinatorParticipant.java
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class TestUnknownTransactionExceptionCompletionCoordinatorParticipant implements CompletionCoordinatorParticipant
+{
+    public void commit()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+
+    public void rollback()
+        throws UnknownTransactionException, SystemException
+    {
+        throw new UnknownTransactionException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUtil.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUtil.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestUtil.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ *
+ * TestUtil.java
+ */
+
+package com.arjuna.wst.tests;
+
+public class TestUtil
+{
+    public static final String NOEXCEPTION_TRANSACTION_IDENTIFIER                    = "NE123456TI";
+    public static final String TRANSACTIONROLLEDBACKEXCEPTION_TRANSACTION_IDENTIFIER = "TRBE123456TI";
+    public static final String UNKNOWNTRANSACTIONEXCEPTION_TRANSACTION_IDENTIFIER    = "UTE123456TI";
+    public static final String SYSTEMEXCEPTION_TRANSACTION_IDENTIFIER                = "SE123456TI";
+
+    public static final String NONEXISTENT_TRANSACTION_IDENTIFIER                    = "NONE123456TI";
+
+    public static final String PREPAREDVOTE_PARTICIPANT_IDENTIFIER           = "PV123456PI";
+    public static final String ABORTEDVOTE_PARTICIPANT_IDENTIFIER            = "AV123456PI";
+    public static final String READONLYVOTE_PARTICIPANT_IDENTIFIER           = "ROV123456PI";
+
+    public static final String NOEXCEPTION_PARTICIPANT_IDENTIFIER                    = "NE123456PI";
+
+    public static final String FAULTEDEXCEPTION_PARTICIPANT_IDENTIFIER               = "FE123456PI";
+
+    public static final String TRANSACTIONROLLEDBACKEXCEPTION_PARTICIPANT_IDENTIFIER = "TRBE123456PI";
+    public static final String WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER            = "WSE123456PI";
+    public static final String SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER                = "SE123456PI";
+
+    public static final String NONEXISTENT_PARTICIPANT_IDENTIFIER                    = "NONE123456PI";
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBAPMParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBAPMParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBAPMParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: TestWrongStateExceptionBAPMParticipant.java,v 1.5.8.1 2005/11/22 10:37:38 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestWrongStateExceptionBAPMParticipant implements BAParticipantManager
+{
+    public void completed ()
+        throws WrongStateException, SystemException
+    {
+        throw new WrongStateException();
+    }
+
+    public void exit ()
+        throws WrongStateException, SystemException
+    {
+        throw new WrongStateException();
+    }
+
+    public void unknown ()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void fault ()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error ()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:53 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestWrongStateExceptionBusinessAgreementWithCoordinatorCompletionParticipant implements BusinessAgreementWithCoordinatorCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+
+    public void complete () throws WrongStateException, SystemException
+    {
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant.java,v 1.1.2.1 2004/05/26 10:04:54 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.Status;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+
+public class TestWrongStateExceptionBusinessAgreementWithParticipantCompletionParticipant implements BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    public void close () throws WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+    
+    public void cancel () throws WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+
+    public String status () throws SystemException
+    {
+	return Status.STATUS_ACTIVE;
+    }
+    
+    public void forget () throws WrongStateException, SystemException
+    {
+	throw new WrongStateException();
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/TestWrongStateExceptionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (c) 2003, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TestWrongStateExceptionParticipant.java,v 1.1.2.1 2005/11/22 10:37:38 kconner Exp $
+ */
+
+package com.arjuna.wst.tests;
+
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+
+public class TestWrongStateExceptionParticipant implements Participant
+{
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        throw new WrongStateException();
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        throw new WrongStateException();
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        throw new WrongStateException();
+    }
+
+    public void commitOnePhase()
+        throws TransactionRolledBackException, WrongStateException, SystemException
+    {
+        throw new WrongStateException();
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+
+    public void error()
+        throws SystemException
+    {
+        throw new SystemException();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerCoordinatorTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerCoordinatorTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerCoordinatorTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,124 @@
+/*
+ * 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: BAParticipantManagerCoordinatorTestCase.java,v 1.7.6.1 2005/11/22 10:37:45 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.client.ParticipantManagerParticipantClient;
+import com.arjuna.webservices.wsarjtx.processors.ParticipantManagerParticipantProcessor;
+import com.arjuna.wst.tests.junit.TestParticipantManagerParticipantProcessor.ParticipantManagerParticipantDetails;
+
+public class BAParticipantManagerCoordinatorTestCase extends TestCase
+{
+    private ParticipantManagerParticipantProcessor origParticipantManagerParticipantProcessor ;
+    
+    private TestParticipantManagerParticipantProcessor testParticipantManagerParticipantProcessor = new TestParticipantManagerParticipantProcessor() ;
+    private String participantManagerParticipantService ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origParticipantManagerParticipantProcessor = ParticipantManagerParticipantProcessor.setParticipant(testParticipantManagerParticipantProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        participantManagerParticipantService = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_PARTICIPANT_MANAGER_PARTICIPANT) ;
+    }
+
+    public void testSendExit()
+        throws Exception
+    {
+        final String messageId = "testSendExit" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantManagerParticipantClient.getClient().sendExit(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantManagerParticipantDetails details = testParticipantManagerParticipantProcessor.getParticipantManagerParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasExit()) ;
+    }
+
+    public void testSendCompleted()
+        throws Exception
+    {
+        final String messageId = "testSendCompleted" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantManagerParticipantClient.getClient().sendCompleted(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantManagerParticipantDetails details = testParticipantManagerParticipantProcessor.getParticipantManagerParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCompleted()) ;
+    }
+
+    public void testSendFault()
+        throws Exception
+    {
+        final String messageId = "testSendFault" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantManagerParticipantClient.getClient().sendFault(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantManagerParticipantDetails details = testParticipantManagerParticipantProcessor.getParticipantManagerParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasFault()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "testSendFault" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        
+        final String reason = "testSendFaultReason" ;
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        ParticipantManagerParticipantClient.getClient().sendSoapFault(addressingContext, soapFault, instanceIdentifier) ;
+        
+        final ParticipantManagerParticipantDetails details = testParticipantManagerParticipantProcessor.getParticipantManagerParticipantDetails(messageId, 10000) ;
+        final SoapFault receivedSoapFault = details.getSoapFault() ;
+        
+        assertNotNull(receivedSoapFault) ;
+        assertEquals(soapFaultType, receivedSoapFault.getSoapFaultType()) ;
+        assertEquals(subcode, receivedSoapFault.getSubcode()) ;
+        assertEquals(reason, receivedSoapFault.getReason()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        ParticipantManagerParticipantProcessor.setParticipant(origParticipantManagerParticipantProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerParticipantTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerParticipantTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerParticipantTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,225 @@
+/*
+ * 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: BAParticipantManagerParticipantTestCase.java,v 1.7.6.1 2005/11/22 10:37:46 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.client.ParticipantManagerCoordinatorClient;
+import com.arjuna.webservices.wsarjtx.processors.ParticipantManagerCoordinatorProcessor;
+
+public class BAParticipantManagerParticipantTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        participantManagerParticipantServiceURI = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_PARTICIPANT_MANAGER_PARTICIPANT) ;
+        participantManagerCoordinatorServiceURI = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_PARTICIPANT_MANAGER_COORDINATOR) ;
+    }
+
+    public void testSendComplete()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendComplete" ;
+        final EndpointReferenceType participantManagerParticipantService = new EndpointReferenceType(new AttributedURIType(participantManagerCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantManagerParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        
+        final TestParticipantManagerCoordinatorCallback callback = new TestParticipantManagerCoordinatorCallback() {
+            public void complete(final NotificationType complete, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantManagerCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantManagerCoordinatorProcessor coordinator = ParticipantManagerCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantManagerCoordinatorClient.getClient().sendComplete(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendExited()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendExited" ;
+        final EndpointReferenceType participantManagerParticipantService = new EndpointReferenceType(new AttributedURIType(participantManagerCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantManagerParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        
+        final TestParticipantManagerCoordinatorCallback callback = new TestParticipantManagerCoordinatorCallback() {
+            public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantManagerCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantManagerCoordinatorProcessor coordinator = ParticipantManagerCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantManagerCoordinatorClient.getClient().sendExited(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendFaulted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendFaulted" ;
+        final EndpointReferenceType participantManagerParticipantService = new EndpointReferenceType(new AttributedURIType(participantManagerCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantManagerParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        
+        final TestParticipantManagerCoordinatorCallback callback = new TestParticipantManagerCoordinatorCallback() {
+            public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantManagerCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantManagerCoordinatorProcessor coordinator = ParticipantManagerCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantManagerCoordinatorClient.getClient().sendFaulted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType participantManagerParticipantService = new EndpointReferenceType(new AttributedURIType(participantManagerCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantManagerParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantManagerParticipantService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestParticipantManagerCoordinatorCallback callback = new TestParticipantManagerCoordinatorCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantManagerCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantManagerParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantManagerCoordinatorProcessor coordinator = ParticipantManagerCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantManagerCoordinatorClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+    }
+
+    private String participantManagerParticipantServiceURI ;
+    private String participantManagerCoordinatorServiceURI ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BAParticipantManagerServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,240 @@
+/*
+ * 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: BAParticipantManagerServiceTestCase.java,v 1.7.6.1 2005/11/22 10:37:49 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.stub.BAParticipantManagerStub;
+import com.arjuna.wst.tests.TestUtil;
+
+public class BAParticipantManagerServiceTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String participantManagerParticipantServiceURI = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_PARTICIPANT_MANAGER_PARTICIPANT) ;
+
+        EndpointReferenceType noExceptionBAParticipantManagerCoordinator = new EndpointReferenceType(new AttributedURIType(participantManagerParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(noExceptionBAParticipantManagerCoordinator, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType wrongStateExceptionBAParticipantManagerCoordinator = new EndpointReferenceType(new AttributedURIType(participantManagerParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(wrongStateExceptionBAParticipantManagerCoordinator, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType systemExceptionBAParticipantManagerCoordinator = new EndpointReferenceType(new AttributedURIType(participantManagerParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(systemExceptionBAParticipantManagerCoordinator, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType nonexistentBAParticipantManagerCoordinator = new EndpointReferenceType(new AttributedURIType(participantManagerParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(nonexistentBAParticipantManagerCoordinator, TestUtil.NONEXISTENT_PARTICIPANT_IDENTIFIER);
+
+        _noExceptionBAParticipantManagerStub                    = new BAParticipantManagerStub("participantManagerCoordinator", noExceptionBAParticipantManagerCoordinator);
+        _wrongStateExceptionBAParticipantManagerStub            = new BAParticipantManagerStub("participantManagerCoordinator", wrongStateExceptionBAParticipantManagerCoordinator);
+        _systemExceptionBAParticipantManagerStub                = new BAParticipantManagerStub("participantManagerCoordinator", systemExceptionBAParticipantManagerCoordinator);
+        _nonexistentBAParticipantManagerStub                    = new BAParticipantManagerStub("participantManagerCoordinator", nonexistentBAParticipantManagerCoordinator);
+    }
+
+    public void testCompletedWithNoException ()
+        throws Exception
+    {
+        _noExceptionBAParticipantManagerStub.completed();
+    }
+
+    public void testExitWithNoException()
+        throws Exception
+    {
+        _noExceptionBAParticipantManagerStub.exit();
+    }
+
+    public void testUnknownWithNoException()
+        throws Exception
+    {
+        _noExceptionBAParticipantManagerStub.unknown();
+    }
+
+    public void testFaultWithNoException()
+        throws Exception
+    {
+        _noExceptionBAParticipantManagerStub.fault();
+    }
+
+    public void testErrorWithNoException()
+        throws Exception
+    {
+        _noExceptionBAParticipantManagerStub.error();
+    }
+
+    public void testCompletedWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBAParticipantManagerStub.completed();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testExitWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBAParticipantManagerStub.exit();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCompletedWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBAParticipantManagerStub.completed();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testExitWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBAParticipantManagerStub.exit();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testFaultWithSystemException ()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBAParticipantManagerStub.fault();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testUnknownWithSystemException ()
+        throws Exception
+    {
+	_systemExceptionBAParticipantManagerStub.unknown();
+    } 
+
+    public void testErrorWithSystemException ()
+        throws Exception
+    {
+	_systemExceptionBAParticipantManagerStub.error();
+    }
+
+    public void testCompletedWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentBAParticipantManagerStub.completed();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testExitWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentBAParticipantManagerStub.exit();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testFaultWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentBAParticipantManagerStub.fault();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testUnknownWithNonExistent()
+        throws Exception
+    {
+        _nonexistentBAParticipantManagerStub.unknown();
+    }
+
+    public void testErrorWithNonExistent()
+        throws Exception
+    {
+        _nonexistentBAParticipantManagerStub.error();
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        _noExceptionBAParticipantManagerStub                    = null;
+        _wrongStateExceptionBAParticipantManagerStub            = null;
+        _systemExceptionBAParticipantManagerStub                = null;
+        _nonexistentBAParticipantManagerStub                    = null;
+    }
+
+    private BAParticipantManager _noExceptionBAParticipantManagerStub = null;
+    private BAParticipantManager _wrongStateExceptionBAParticipantManagerStub = null;
+    private BAParticipantManager _systemExceptionBAParticipantManagerStub = null;
+    private BAParticipantManager _nonexistentBAParticipantManagerStub = null;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessActivityTerminatorServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessActivityTerminatorServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessActivityTerminatorServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,190 @@
+/*
+ * 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: BusinessActivityTerminatorServiceTestCase.java,v 1.6.6.1 2005/11/22 10:37:46 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.stub.BusinessActivityTerminatorStub;
+import com.arjuna.wst.tests.TestUtil;
+
+public class BusinessActivityTerminatorServiceTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String businessActivityTerminatorParticipantServiceURI = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_TERMINATOR_PARTICIPANT);
+
+        EndpointReferenceType noExceptionBusinessActivityTerminatorCoordinator = new EndpointReferenceType(new AttributedURIType(businessActivityTerminatorParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(noExceptionBusinessActivityTerminatorCoordinator, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType unknownTransactionExceptionBusinessActivityTerminatorCoordinator = new EndpointReferenceType(new AttributedURIType(businessActivityTerminatorParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(unknownTransactionExceptionBusinessActivityTerminatorCoordinator, TestUtil.UNKNOWNTRANSACTIONEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        EndpointReferenceType transactionRolledBackExceptionBusinessActivityTerminatorCoordinator = new EndpointReferenceType(new AttributedURIType(businessActivityTerminatorParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(transactionRolledBackExceptionBusinessActivityTerminatorCoordinator, TestUtil.TRANSACTIONROLLEDBACKEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        EndpointReferenceType systemExceptionBusinessActivityTerminatorCoordinator = new EndpointReferenceType(new AttributedURIType(businessActivityTerminatorParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(systemExceptionBusinessActivityTerminatorCoordinator, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        _noExceptionBusinessActivityTerminatorStub = new BusinessActivityTerminatorStub("businessActivityTerminatorCoordinator", noExceptionBusinessActivityTerminatorCoordinator);
+        _transactionRolledBackExceptionBusinessActivityTerminatorStub = new BusinessActivityTerminatorStub("businessActivityTerminatorCoordinator", transactionRolledBackExceptionBusinessActivityTerminatorCoordinator);
+        _systemExceptionBusinessActivityTerminatorStub = new BusinessActivityTerminatorStub("businessActivityTerminatorCoordinator", systemExceptionBusinessActivityTerminatorCoordinator);
+        _unknownTransactionExceptionBusinessActivityTerminatorStub = new BusinessActivityTerminatorStub("businessActivityTerminatorCoordinator", unknownTransactionExceptionBusinessActivityTerminatorCoordinator);
+    }
+
+    public void testCloseWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessActivityTerminatorStub.close();
+    }
+
+    public void testCancelWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessActivityTerminatorStub.cancel();
+    }
+
+    public void testCompleteWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessActivityTerminatorStub.complete();
+    }
+
+    public void testCloseWithUnknownTransactionException()
+        throws Exception
+    {
+        try
+        {
+            _unknownTransactionExceptionBusinessActivityTerminatorStub.close();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testCancelWithUnknownTransactionException()
+        throws Exception
+    {
+        try
+        {
+            _unknownTransactionExceptionBusinessActivityTerminatorStub.cancel();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testCompleteWithUnknownTransactionException()
+        throws Exception
+    {
+        try
+        {
+            _unknownTransactionExceptionBusinessActivityTerminatorStub.complete();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testCloseWithTransactionRolledBackException()
+        throws Exception
+    {
+        try
+        {
+            _transactionRolledBackExceptionBusinessActivityTerminatorStub.close();
+            fail("Expected exception \"TransactionRolledBackException\"");
+        }
+        catch (TransactionRolledBackException transactionRolledBackException)
+        {
+        }
+    }
+
+    public void testCloseWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessActivityTerminatorStub.close();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCancelWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessActivityTerminatorStub.cancel();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCompleteWithSystemException()
+        throws Exception
+    {
+	try
+	{
+	    _systemExceptionBusinessActivityTerminatorStub.complete();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        _noExceptionBusinessActivityTerminatorStub                    = null;
+        _transactionRolledBackExceptionBusinessActivityTerminatorStub            = null;
+        _systemExceptionBusinessActivityTerminatorStub                = null;
+    }
+
+    private BusinessActivityTerminatorStub _noExceptionBusinessActivityTerminatorStub                    = null;
+    private BusinessActivityTerminatorStub _transactionRolledBackExceptionBusinessActivityTerminatorStub            = null;
+    private BusinessActivityTerminatorStub _systemExceptionBusinessActivityTerminatorStub                = null;
+    private BusinessActivityTerminatorStub _unknownTransactionExceptionBusinessActivityTerminatorStub                = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,302 @@
+/*
+ * 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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase.java,v 1.1.2.1 2004/05/26 10:04:55 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionParticipantClient;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.wst.tests.junit.TestCoordinatorCompletionParticipantProcessor.CoordinatorCompletionParticipantDetails;
+
+public class BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase extends TestCase
+{
+    private CoordinatorCompletionParticipantProcessor origCoordinatorCompletionParticipantProcessor ;
+    private TestCoordinatorCompletionParticipantProcessor testCoordinatorCompletionParticipantProcessor = new TestCoordinatorCompletionParticipantProcessor() ;
+    private String coordinatorCompletionParticipantServiceURI ;
+    private String coordinatorCompletionCoordinatorServiceURI ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origCoordinatorCompletionParticipantProcessor = CoordinatorCompletionParticipantProcessor.setParticipant(testCoordinatorCompletionParticipantProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        coordinatorCompletionParticipantServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT) ;
+        coordinatorCompletionCoordinatorServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_COORDINATOR) ;
+    }
+
+    public void testSendClose()
+        throws Exception
+    {
+        final String messageId = "testSendClose" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionParticipantClient.getClient().sendClose(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionParticipantDetails details = testCoordinatorCompletionParticipantProcessor.getCoordinatorCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasClose()) ;
+    }
+
+    public void testSendCancel()
+        throws Exception
+    {
+        final String messageId = "testSendCancel" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionParticipantClient.getClient().sendCancel(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionParticipantDetails details = testCoordinatorCompletionParticipantProcessor.getCoordinatorCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCancel()) ;
+    }
+
+    public void testSendCompensate()
+        throws Exception
+    {
+        final String messageId = "testSendCompensate" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionParticipantClient.getClient().sendCompensate(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionParticipantDetails details = testCoordinatorCompletionParticipantProcessor.getCoordinatorCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCompensate()) ;
+    }
+
+    public void testSendFaulted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendFaulted" ;
+        final EndpointReferenceType coordinatorCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantService, messageId) ;
+        
+        final TestCoordinatorCompletionParticipantCallback callback = new TestCoordinatorCompletionParticipantCallback() {
+            public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionParticipantProcessor participant = CoordinatorCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendFaulted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendExited()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendExited" ;
+        final EndpointReferenceType coordinatorCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantService, messageId) ;
+        
+        final TestCoordinatorCompletionParticipantCallback callback = new TestCoordinatorCompletionParticipantCallback() {
+            public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionParticipantProcessor participant = CoordinatorCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendExited(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendStatus()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendStatus" ;
+        final EndpointReferenceType coordinatorCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantService, messageId) ;
+        
+        final State state = State.STATE_ACTIVE ;
+        
+        final TestCoordinatorCompletionParticipantCallback callback = new TestCoordinatorCompletionParticipantCallback() {
+            public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(state, status.getState()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionParticipantProcessor participant = CoordinatorCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendStatus(addressingContext, new InstanceIdentifier("sender"), state) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendComplete()
+        throws Exception
+    {
+        final String messageId = "testSendComplete" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionParticipantClient.getClient().sendComplete(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionParticipantDetails details = testCoordinatorCompletionParticipantProcessor.getCoordinatorCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasComplete()) ;
+    }
+
+    public void testSendGetStatus()
+        throws Exception
+    {
+        final String messageId = "testSendGetStatus" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionParticipantClient.getClient().sendGetStatus(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionParticipantDetails details = testCoordinatorCompletionParticipantProcessor.getCoordinatorCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasGetStatus()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType coordinatorCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionParticipantService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestCoordinatorCompletionParticipantCallback callback = new TestCoordinatorCompletionParticipantCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionParticipantProcessor participant = CoordinatorCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionParticipantClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        CoordinatorCompletionParticipantProcessor.setParticipant(origCoordinatorCompletionParticipantProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionParticipantTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionParticipantTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionParticipantTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,381 @@
+/*
+ * 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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: BusinessAgreementWithCoordinatorCompletionParticipantTestCase.java,v 1.1.2.1 2004/05/26 10:04:55 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionCoordinatorClient;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+import com.arjuna.wst.tests.junit.TestCoordinatorCompletionCoordinatorProcessor.CoordinatorCompletionCoordinatorDetails;
+
+public class BusinessAgreementWithCoordinatorCompletionParticipantTestCase extends TestCase
+{
+    private CoordinatorCompletionCoordinatorProcessor origCoordinatorCompletionCoordinatorProcessor ;
+    private TestCoordinatorCompletionCoordinatorProcessor testCoordinatorCompletionCoordinatorProcessor = new TestCoordinatorCompletionCoordinatorProcessor() ;
+    private String coordinatorCompletionCoordinatorServiceURI ;
+    private String coordinatorCompletionParticipantServiceURI ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origCoordinatorCompletionCoordinatorProcessor = CoordinatorCompletionCoordinatorProcessor.setCoordinator(testCoordinatorCompletionCoordinatorProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        coordinatorCompletionCoordinatorServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_COORDINATOR) ;
+        coordinatorCompletionParticipantServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT) ;
+    }
+
+    public void testSendClosed()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendClosed" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendClosed(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCancelled()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCancelled" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCancelled(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCompensated()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCompensated" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCompensated(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendFault()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendFault" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final String exceptionIdentifier = "testSendFaultExceptionIdentifier" ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void fault(final ExceptionType fault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(exceptionIdentifier, fault.getExceptionIdentifier()) ;
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendFault(addressingContext, new InstanceIdentifier("sender"), exceptionIdentifier) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCompleted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCompleted" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void completed(final NotificationType completed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendCompleted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendStatus()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendStatus" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final State state = State.STATE_COMPENSATING ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(state, status.getState()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendStatus(addressingContext, new InstanceIdentifier("sender"), state) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType coordinatorCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestCoordinatorCompletionCoordinatorCallback callback = new TestCoordinatorCompletionCoordinatorCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), coordinatorCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorCompletionCoordinatorProcessor coordinator = CoordinatorCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorCompletionCoordinatorClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+    
+    public void testSendExit()
+        throws Exception
+    {
+        final String messageId = "testSendExit" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionCoordinatorClient.getClient().sendExit(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionCoordinatorDetails details = testCoordinatorCompletionCoordinatorProcessor.getCoordinatorCompletionCoordinatorDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasExit()) ;
+    }
+    
+    public void testSendGetStatus()
+        throws Exception
+    {
+        final String messageId = "testSendGetStatus" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorCompletionCoordinatorServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CoordinatorCompletionCoordinatorClient.getClient().sendGetStatus(addressingContext, instanceIdentifier) ;
+        
+        final CoordinatorCompletionCoordinatorDetails details = testCoordinatorCompletionCoordinatorProcessor.getCoordinatorCompletionCoordinatorDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasGetStatus()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        CoordinatorCompletionCoordinatorProcessor.setCoordinator(origCoordinatorCompletionCoordinatorProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithCoordinatorCompletionServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,194 @@
+/*
+ * 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) 2004, Arjuna Technologies Limited.
+ *
+ * $Id: BusinessAgreementWithCoordinatorCompletionServiceTestCase.java,v 1.1.2.2 2004/06/18 15:06:10 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub;
+import com.arjuna.wst.tests.TestUtil;
+
+public class BusinessAgreementWithCoordinatorCompletionServiceTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String coordinatorCompletionParticipantServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT) ;
+
+        EndpointReferenceType noExceptionBusinessAgreementWithCoordinatorCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(noExceptionBusinessAgreementWithCoordinatorCompletionCoordinator, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType wrongStateExceptionBusinessAgreementWithCoordinatorCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(wrongStateExceptionBusinessAgreementWithCoordinatorCompletionCoordinator, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType systemExceptionBusinessAgreementWithCoordinatorCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(systemExceptionBusinessAgreementWithCoordinatorCompletionCoordinator, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType nonexistentBusinessAgreementWithCoordinatorCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(nonexistentBusinessAgreementWithCoordinatorCompletionCoordinator, TestUtil.NONEXISTENT_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType faultedExceptionBusinessAgreementWithCoordinatorCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(coordinatorCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(faultedExceptionBusinessAgreementWithCoordinatorCompletionCoordinator, TestUtil.FAULTEDEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        _noExceptionBusinessAgreementWithCoordinatorCompletionStub                    = new BusinessAgreementWithCoordinatorCompletionStub("businessAgreementWithCoordinatorCompletionCoordinator", noExceptionBusinessAgreementWithCoordinatorCompletionCoordinator);
+        _wrongStateExceptionBusinessAgreementWithCoordinatorCompletionStub            = new BusinessAgreementWithCoordinatorCompletionStub("businessAgreementWithCoordinatorCompletionCoordinator", wrongStateExceptionBusinessAgreementWithCoordinatorCompletionCoordinator);
+        _systemExceptionBusinessAgreementWithCoordinatorCompletionStub                = new BusinessAgreementWithCoordinatorCompletionStub("businessAgreementWithCoordinatorCompletionCoordinator", systemExceptionBusinessAgreementWithCoordinatorCompletionCoordinator);
+        _faultedExceptionBusinessAgreementWithCoordinatorCompletionStub                = new BusinessAgreementWithCoordinatorCompletionStub("businessAgreementWithCoordinatorCompletionCoordinator", faultedExceptionBusinessAgreementWithCoordinatorCompletionCoordinator);
+    }
+
+    public void testCloseWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithCoordinatorCompletionStub.close();
+    }
+
+    public void testCancelWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithCoordinatorCompletionStub.cancel();
+    }
+
+    public void testCompensateWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithCoordinatorCompletionStub.compensate();
+    }
+
+    public void testCloseWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBusinessAgreementWithCoordinatorCompletionStub.close();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCancelWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBusinessAgreementWithCoordinatorCompletionStub.cancel();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCompensateWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBusinessAgreementWithCoordinatorCompletionStub.compensate();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCloseWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessAgreementWithCoordinatorCompletionStub.close();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCancelWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessAgreementWithCoordinatorCompletionStub.cancel();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCompensateWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessAgreementWithCoordinatorCompletionStub.compensate();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCompensateWithFaultedException ()
+        throws Exception
+    {
+        try
+        {
+            _faultedExceptionBusinessAgreementWithCoordinatorCompletionStub.compensate();
+            fail("Expected exception \"FaultedException\"");
+        }
+        catch (FaultedException faultedException)
+        {
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithCoordinatorCompletionStub                    = null;
+        _wrongStateExceptionBusinessAgreementWithCoordinatorCompletionStub            = null;
+        _systemExceptionBusinessAgreementWithCoordinatorCompletionStub                = null;
+    }
+
+    private BusinessAgreementWithCoordinatorCompletionParticipant _noExceptionBusinessAgreementWithCoordinatorCompletionStub                    = null;
+    private BusinessAgreementWithCoordinatorCompletionParticipant _wrongStateExceptionBusinessAgreementWithCoordinatorCompletionStub            = null;
+    private BusinessAgreementWithCoordinatorCompletionParticipant _systemExceptionBusinessAgreementWithCoordinatorCompletionStub                = null;
+    private BusinessAgreementWithCoordinatorCompletionParticipant _faultedExceptionBusinessAgreementWithCoordinatorCompletionStub               = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionCoordinatorTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionCoordinatorTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionCoordinatorTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,289 @@
+/*
+ * 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: BusinessAgreementWithParticipantCompletionCoordinatorTestCase.java,v 1.1.2.1 2004/05/26 10:04:55 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionParticipantClient;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.wst.tests.junit.TestParticipantCompletionParticipantProcessor.ParticipantCompletionParticipantDetails;
+
+public class BusinessAgreementWithParticipantCompletionCoordinatorTestCase extends TestCase
+{
+    private ParticipantCompletionParticipantProcessor origParticipantCompletionParticipantProcessor ;
+    private TestParticipantCompletionParticipantProcessor testParticipantCompletionParticipantProcessor = new TestParticipantCompletionParticipantProcessor() ;
+    private String participantCompletionParticipantServiceURI ;
+    private String participantCompletionCoordinatorServiceURI ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origParticipantCompletionParticipantProcessor = ParticipantCompletionParticipantProcessor.setParticipant(testParticipantCompletionParticipantProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        participantCompletionParticipantServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT) ;
+        participantCompletionCoordinatorServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_COORDINATOR) ;
+    }
+
+    public void testSendClose()
+        throws Exception
+    {
+        final String messageId = "testSendClose" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantCompletionParticipantClient.getClient().sendClose(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantCompletionParticipantDetails details = testParticipantCompletionParticipantProcessor.getParticipantCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasClose()) ;
+    }
+
+    public void testSendCancel()
+        throws Exception
+    {
+        final String messageId = "testSendCancel" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantCompletionParticipantClient.getClient().sendCancel(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantCompletionParticipantDetails details = testParticipantCompletionParticipantProcessor.getParticipantCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCancel()) ;
+    }
+
+    public void testSendCompensate()
+        throws Exception
+    {
+        final String messageId = "testSendCompensate" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantCompletionParticipantClient.getClient().sendCompensate(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantCompletionParticipantDetails details = testParticipantCompletionParticipantProcessor.getParticipantCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCompensate()) ;
+    }
+
+    public void testSendFaulted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendFaulted" ;
+        final EndpointReferenceType participantCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantService, messageId) ;
+        
+        final TestParticipantCompletionParticipantCallback callback = new TestParticipantCompletionParticipantCallback() {
+            public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionParticipantProcessor participant = ParticipantCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendFaulted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendExited()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendExited" ;
+        final EndpointReferenceType participantCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantService, messageId) ;
+        
+        final TestParticipantCompletionParticipantCallback callback = new TestParticipantCompletionParticipantCallback() {
+            public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionParticipantProcessor participant = ParticipantCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendExited(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendStatus()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendStatus" ;
+        final EndpointReferenceType participantCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantService, messageId) ;
+        
+        final State state = State.STATE_ACTIVE ;
+        
+        final TestParticipantCompletionParticipantCallback callback = new TestParticipantCompletionParticipantCallback() {
+            public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(state, status.getState()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionParticipantProcessor participant = ParticipantCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendStatus(addressingContext, new InstanceIdentifier("sender"), state) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+    
+    public void testSendGetStatus()
+        throws Exception
+    {
+        final String messageId = "testSendGetStatus" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionParticipantServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantCompletionParticipantClient.getClient().sendGetStatus(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantCompletionParticipantDetails details = testParticipantCompletionParticipantProcessor.getParticipantCompletionParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasGetStatus()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType ParticipantCompletionParticipantService = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(ParticipantCompletionParticipantService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(ParticipantCompletionParticipantService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestParticipantCompletionParticipantCallback callback = new TestParticipantCompletionParticipantCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionParticipantProcessor participant = ParticipantCompletionParticipantProcessor.getParticipant() ;
+        participant.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionParticipantClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            participant.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        ParticipantCompletionParticipantProcessor.setParticipant(origParticipantCompletionParticipantProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionParticipantTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionParticipantTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionParticipantTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,381 @@
+/*
+ * 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: BusinessAgreementWithParticipantCompletionParticipantTestCase.java,v 1.1.2.1 2004/05/26 10:04:56 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.State;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionCoordinatorClient;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+import com.arjuna.wst.tests.junit.TestParticipantCompletionCoordinatorProcessor.ParticipantCompletionCoordinatorDetails;
+
+public class BusinessAgreementWithParticipantCompletionParticipantTestCase extends TestCase
+{
+    private ParticipantCompletionCoordinatorProcessor origParticipantCompletionCoordinatorProcessor ;
+    private TestParticipantCompletionCoordinatorProcessor testParticipantCompletionCoordinatorProcessor = new TestParticipantCompletionCoordinatorProcessor() ;
+    private String participantCompletionCoordinatorServiceURI ;
+    private String participantCompletionParticipantServiceURI ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origParticipantCompletionCoordinatorProcessor = ParticipantCompletionCoordinatorProcessor.setCoordinator(testParticipantCompletionCoordinatorProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        participantCompletionCoordinatorServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_COORDINATOR) ;
+        participantCompletionParticipantServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT) ;
+    }
+
+    public void testSendClosed()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendClosed" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendClosed(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCancelled()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCancelled" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCancelled(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCompensated()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCompensated" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCompensated(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCompleted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCompleted" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void completed(final NotificationType completed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendCompleted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendStatus()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendStatus" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final State state = State.STATE_ENDED ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(state, status.getState()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendStatus(addressingContext, new InstanceIdentifier("sender"), state) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendExit()
+        throws Exception
+    {
+        final String messageId = "testSendExit" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantCompletionCoordinatorClient.getClient().sendExit(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantCompletionCoordinatorDetails details = testParticipantCompletionCoordinatorProcessor.getParticipantCompletionCoordinatorDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasExit()) ;
+    }
+
+    public void testSendFault()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendFault" ;
+        final String exceptionIdentifier = "testSendFaultExceptionIdentifier" ;
+        final EndpointReferenceType participantCompletionCoordinatorService = new EndpointReferenceType(new AttributedURIType(participantCompletionCoordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participantCompletionCoordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorService, messageId) ;
+        
+        final TestParticipantCompletionCoordinatorCallback callback = new TestParticipantCompletionCoordinatorCallback() {
+            public void fault(final ExceptionType fault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), participantCompletionCoordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantCompletionParticipantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertEquals(exceptionIdentifier, fault.getExceptionIdentifier()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final ParticipantCompletionCoordinatorProcessor coordinator = ParticipantCompletionCoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            ParticipantCompletionCoordinatorClient.getClient().sendFault(addressingContext, new InstanceIdentifier("sender"), exceptionIdentifier) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendGetStatus()
+        throws Exception
+    {
+        final String messageId = "testSendGetStatus" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantCompletionCoordinatorServiceURI, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantCompletionCoordinatorClient.getClient().sendGetStatus(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantCompletionCoordinatorDetails details = testParticipantCompletionCoordinatorProcessor.getParticipantCompletionCoordinatorDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasGetStatus()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        ParticipantCompletionCoordinatorProcessor.setCoordinator(origParticipantCompletionCoordinatorProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/BusinessAgreementWithParticipantCompletionServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,194 @@
+/*
+ * 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: BusinessAgreementWithParticipantCompletionServiceTestCase.java,v 1.1.2.2 2004/06/18 15:06:10 nmcl Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub;
+import com.arjuna.wst.tests.TestUtil;
+
+public class BusinessAgreementWithParticipantCompletionServiceTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String participantCompletionParticipantServiceURI = soapRegistry.getServiceURI(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT) ;
+
+        EndpointReferenceType noExceptionBusinessAgreementWithParticipantCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(noExceptionBusinessAgreementWithParticipantCompletionCoordinator, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType wrongStateExceptionBusinessAgreementWithParticipantCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(wrongStateExceptionBusinessAgreementWithParticipantCompletionCoordinator, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType systemExceptionBusinessAgreementWithParticipantCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(systemExceptionBusinessAgreementWithParticipantCompletionCoordinator, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType nonexistentBusinessAgreementWithParticipantCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(nonexistentBusinessAgreementWithParticipantCompletionCoordinator, TestUtil.NONEXISTENT_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType faultedExceptionBusinessAgreementWithParticipantCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(participantCompletionParticipantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(faultedExceptionBusinessAgreementWithParticipantCompletionCoordinator, TestUtil.FAULTEDEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        _noExceptionBusinessAgreementWithParticipantCompletionStub                    = new BusinessAgreementWithParticipantCompletionStub("businessAgreementWithParticipantCompletionCoordinator", noExceptionBusinessAgreementWithParticipantCompletionCoordinator);
+        _wrongStateExceptionBusinessAgreementWithParticipantCompletionStub            = new BusinessAgreementWithParticipantCompletionStub("businessAgreementWithParticipantCompletionCoordinator", wrongStateExceptionBusinessAgreementWithParticipantCompletionCoordinator);
+        _systemExceptionBusinessAgreementWithParticipantCompletionStub                = new BusinessAgreementWithParticipantCompletionStub("businessAgreementWithParticipantCompletionCoordinator", systemExceptionBusinessAgreementWithParticipantCompletionCoordinator);
+        _faultedExceptionBusinessAgreementWithParticipantCompletionStub                = new BusinessAgreementWithParticipantCompletionStub("businessAgreementWithParticipantCompletionCoordinator", faultedExceptionBusinessAgreementWithParticipantCompletionCoordinator);
+    }
+
+    public void testCloseWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithParticipantCompletionStub.close();
+    }
+
+    public void testCancelWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithParticipantCompletionStub.cancel();
+    }
+
+    public void testCompensateWithNoException()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithParticipantCompletionStub.compensate();
+    }
+
+    public void testCloseWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBusinessAgreementWithParticipantCompletionStub.close();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCancelWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBusinessAgreementWithParticipantCompletionStub.cancel();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCompensateWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionBusinessAgreementWithParticipantCompletionStub.compensate();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCloseWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessAgreementWithParticipantCompletionStub.close();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCancelWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessAgreementWithParticipantCompletionStub.cancel();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCompensateWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionBusinessAgreementWithParticipantCompletionStub.compensate();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCompensateWithFaultedException ()
+        throws Exception
+    {
+        try
+        {
+            _faultedExceptionBusinessAgreementWithParticipantCompletionStub.compensate();
+            fail("Expected exception \"FaultedException\"");
+        }
+        catch (FaultedException faultedException)
+        {
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        _noExceptionBusinessAgreementWithParticipantCompletionStub                    = null;
+        _wrongStateExceptionBusinessAgreementWithParticipantCompletionStub            = null;
+        _systemExceptionBusinessAgreementWithParticipantCompletionStub                = null;
+    }
+
+    private BusinessAgreementWithParticipantCompletionParticipant _noExceptionBusinessAgreementWithParticipantCompletionStub                    = null;
+    private BusinessAgreementWithParticipantCompletionParticipant _wrongStateExceptionBusinessAgreementWithParticipantCompletionStub            = null;
+    private BusinessAgreementWithParticipantCompletionParticipant _systemExceptionBusinessAgreementWithParticipantCompletionStub                = null;
+    private BusinessAgreementWithParticipantCompletionParticipant _faultedExceptionBusinessAgreementWithParticipantCompletionStub               = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionCoordinatorTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionCoordinatorTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionCoordinatorTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,188 @@
+/*
+ * 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.
+ *
+ * CompletionCoordinatorTestCase.java
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.client.CompletionInitiatorClient;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessor;
+
+public class CompletionCoordinatorTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        completionInitiatorServiceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_INITIATOR) ;
+        completionCoordinatorServiceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR) ;
+    }
+
+    public void testSendCommitted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCommitted" ;
+        final EndpointReferenceType completionInitiatorService = new EndpointReferenceType(new AttributedURIType(completionInitiatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionInitiatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(completionInitiatorService, messageId) ;
+        
+        final TestCompletionInitiatorCallback callback = new TestCompletionInitiatorCallback() {
+            public void committed(final NotificationType committed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), completionInitiatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), completionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CompletionInitiatorProcessor initiator = CompletionInitiatorProcessor.getInitiator() ;
+        initiator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CompletionInitiatorClient.getClient().sendCommitted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            initiator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendAborted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendAborted" ;
+        final EndpointReferenceType completionInitiatorService = new EndpointReferenceType(new AttributedURIType(completionInitiatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionInitiatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(completionInitiatorService, messageId) ;
+        
+        final TestCompletionInitiatorCallback callback = new TestCompletionInitiatorCallback() {
+            public void aborted(final NotificationType aborted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), completionInitiatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), completionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CompletionInitiatorProcessor initiator = CompletionInitiatorProcessor.getInitiator() ;
+        initiator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CompletionInitiatorClient.getClient().sendAborted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            initiator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType completionInitiatorService = new EndpointReferenceType(new AttributedURIType(completionInitiatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionInitiatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(completionInitiatorService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestCompletionInitiatorCallback callback = new TestCompletionInitiatorCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), completionInitiatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), completionCoordinatorServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CompletionInitiatorProcessor initiator = CompletionInitiatorProcessor.getInitiator() ;
+        initiator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CompletionInitiatorClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            initiator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+    }
+
+    private String completionInitiatorServiceURI ;
+    private String completionCoordinatorServiceURI ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionParticipantTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionParticipantTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionParticipantTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ *
+ * CompletionParticipantTestCase.java
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.client.CompletionCoordinatorClient;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.wst.tests.junit.TestCompletionCoordinatorProcessor.CompletionCoordinatorDetails;
+
+public class CompletionParticipantTestCase extends TestCase
+{
+    private CompletionCoordinatorProcessor origCompletionCoordinatorProcessor ;
+    
+    private TestCompletionCoordinatorProcessor testCompletionCoordinatorProcessor = new TestCompletionCoordinatorProcessor() ;
+    private String completionCoordinatorService ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origCompletionCoordinatorProcessor = CompletionCoordinatorProcessor.setCoordinator(testCompletionCoordinatorProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        completionCoordinatorService = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR) ;
+    }
+
+    public void testSendCommit()
+        throws Exception
+    {
+        final String messageId = "testSendCommit" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(completionCoordinatorService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CompletionCoordinatorClient.getClient().sendCommit(addressingContext, instanceIdentifier) ;
+        
+        final CompletionCoordinatorDetails details = testCompletionCoordinatorProcessor.getCompletionCoordinatorDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCommit()) ;
+    }
+
+    public void testSendRollback()
+        throws Exception
+    {
+        final String messageId = "testSendRollback" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(completionCoordinatorService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        CompletionCoordinatorClient.getClient().sendRollback(addressingContext, instanceIdentifier) ;
+        
+        final CompletionCoordinatorDetails details = testCompletionCoordinatorProcessor.getCompletionCoordinatorDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasRollback()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        CompletionCoordinatorProcessor.setCoordinator(origCompletionCoordinatorProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/CompletionServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,191 @@
+/*
+ * 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.
+ *
+ * CompletionServiceTestCase.java
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.stub.CompletionStub;
+import com.arjuna.wst.tests.TestUtil;
+
+public class CompletionServiceTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String completionCoordinatorServiceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR) ;
+
+        EndpointReferenceType noExceptionCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(completionCoordinatorServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(noExceptionCompletionCoordinator, TestUtil.NOEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        EndpointReferenceType transactionRolledBackExceptionCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(completionCoordinatorServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(transactionRolledBackExceptionCompletionCoordinator, TestUtil.TRANSACTIONROLLEDBACKEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        EndpointReferenceType unknownTransactionExceptionCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(completionCoordinatorServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(unknownTransactionExceptionCompletionCoordinator, TestUtil.UNKNOWNTRANSACTIONEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        EndpointReferenceType systemExceptionCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(completionCoordinatorServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(systemExceptionCompletionCoordinator, TestUtil.SYSTEMEXCEPTION_TRANSACTION_IDENTIFIER);
+
+        EndpointReferenceType nonexistentCompletionCoordinator = new EndpointReferenceType(new AttributedURIType(completionCoordinatorServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(nonexistentCompletionCoordinator, TestUtil.NONEXISTENT_TRANSACTION_IDENTIFIER);
+
+        _noExceptionCompletionStub                    = new CompletionStub("completionParticipant", noExceptionCompletionCoordinator);
+        _transactionRolledBackExceptionCompletionStub = new CompletionStub("completionParticipant", transactionRolledBackExceptionCompletionCoordinator);
+        _unknownExceptionExceptionCompletionStub      = new CompletionStub("completionParticipant", unknownTransactionExceptionCompletionCoordinator);
+        _systemExceptionCompletionStub                = new CompletionStub("completionParticipant", systemExceptionCompletionCoordinator);
+        _nonexistentCompletionStub                    = new CompletionStub("completionParticipant", nonexistentCompletionCoordinator);
+    }
+
+    public void testCommitWithNoException()
+        throws Exception
+    {
+        _noExceptionCompletionStub.commit();
+    }
+
+    public void testRollbackWithNoException()
+        throws Exception
+    {
+        _noExceptionCompletionStub.rollback();
+    }
+
+    public void testCommitWithTransactionRolledBackException()
+        throws Exception
+    {
+        try
+        {
+            _transactionRolledBackExceptionCompletionStub.commit();
+            fail("Expected exception \"TransactionRolledBackException\"");
+        }
+        catch (TransactionRolledBackException transactionRolledBackException)
+        {
+        }
+    }
+
+    public void testCommitWithUnknownTransactionException()
+        throws Exception
+    {
+        try
+        {
+            _unknownExceptionExceptionCompletionStub.commit();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testRollbackWithUnknownTransactionException()
+        throws Exception
+    {
+        try
+        {
+            _unknownExceptionExceptionCompletionStub.rollback();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testCommitWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionCompletionStub.commit();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testRollbackWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionCompletionStub.rollback();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCommitWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentCompletionStub.commit();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    public void testRollbackWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentCompletionStub.rollback();
+            fail("Expected exception \"UnknownTransactionException\"");
+        }
+        catch (UnknownTransactionException unknownTransactionException)
+        {
+        }
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        _noExceptionCompletionStub                    = null;
+        _transactionRolledBackExceptionCompletionStub = null;
+        _unknownExceptionExceptionCompletionStub      = null;
+        _systemExceptionCompletionStub                = null;
+        _nonexistentCompletionStub                    = null;
+    }
+
+    private CompletionCoordinatorParticipant _noExceptionCompletionStub                    = null;
+    private CompletionCoordinatorParticipant _transactionRolledBackExceptionCompletionStub = null;
+    private CompletionCoordinatorParticipant _unknownExceptionExceptionCompletionStub      = null;
+    private CompletionCoordinatorParticipant _systemExceptionCompletionStub                = null;
+    private CompletionCoordinatorParticipant _nonexistentCompletionStub                    = null;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,165 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+
+public class TestCompletionCoordinatorProcessor extends CompletionCoordinatorProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public CompletionCoordinatorDetails getCompletionCoordinatorDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final CompletionCoordinatorDetails details = (CompletionCoordinatorDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final CompletionCoordinatorDetails details = (CompletionCoordinatorDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+    
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void commit(final NotificationType commit, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CompletionCoordinatorDetails details = new CompletionCoordinatorDetails(addressingContext, arjunaContext) ;
+        details.setCommit(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void rollback(final NotificationType rollback, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CompletionCoordinatorDetails details = new CompletionCoordinatorDetails(addressingContext, arjunaContext) ;
+        details.setRollback(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public void activateParticipant(final CompletionCoordinatorParticipant participant, final String identifier)
+    {
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final CompletionCoordinatorParticipant participant)
+    {
+    }
+    
+    public static class CompletionCoordinatorDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean commit ;
+        private boolean rollback ;
+        
+        CompletionCoordinatorDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasCommit()
+        {
+            return commit ;
+        }
+        
+        void setCommit(final boolean commit)
+        {
+            this.commit = commit ;
+        }
+        
+        public boolean hasRollback()
+        {
+            return rollback ;
+        }
+        
+        void setRollback(final boolean rollback)
+        {
+            this.rollback = rollback ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionInitiatorCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionInitiatorCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCompletionInitiatorCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wst.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorCallback;
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestCompletionInitiatorCallback extends CompletionInitiatorCallback
+{
+    /**
+     * An aborted response.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void aborted(final NotificationType aborted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected aborted response") ;
+    }
+    
+    /**
+     * A committed response.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void committed(final NotificationType committed, final AddressingContext addressingContext, 
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected committed response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,106 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.processors.CoordinatorCallback;
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestCoordinatorCallback extends CoordinatorCallback
+{
+    /**
+     * An aborted response.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void aborted(final NotificationType aborted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected aborted response") ;
+    }
+    
+    /**
+     * A committed response.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void committed(final NotificationType committed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected committed response") ;
+    }
+    
+    /**
+     * A prepared response.
+     * @param prepared The prepared notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void prepared(final NotificationType prepared, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected prepared response") ;
+    }
+    
+    /**
+     * A read only response.
+     * @param readOnly The read only notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void readOnly(final NotificationType readOnly, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected read only response") ;
+    }
+    
+    /**
+     * A replay response.
+     * @param replay The replay notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void replay(final NotificationType replay, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected replay response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,116 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorCallback;
+
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestCoordinatorCompletionCoordinatorCallback extends CoordinatorCompletionCoordinatorCallback
+{
+    /**
+     * A cancelled response.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected cancelled response") ;
+    }
+    
+    /**
+     * A closed response.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected closed response") ;
+    }
+    
+    /**
+     * A compensated response.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected compensated response") ;
+    }
+
+    /**
+     * A completed response.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected completed response") ;
+    }
+    
+    /**
+     * A Status.
+     * @param status The status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected status response") ;
+    }
+    
+    /**
+     * A fault response.
+     * @param fault The fault notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected fault response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,134 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+
+
+public class TestCoordinatorCompletionCoordinatorProcessor extends CoordinatorCompletionCoordinatorProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public CoordinatorCompletionCoordinatorDetails getCoordinatorCompletionCoordinatorDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final CoordinatorCompletionCoordinatorDetails details = (CoordinatorCompletionCoordinatorDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final CoordinatorCompletionCoordinatorDetails details = (CoordinatorCompletionCoordinatorDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+
+    public void exit(NotificationType exit, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionCoordinatorDetails details = new CoordinatorCompletionCoordinatorDetails(addressingContext, arjunaContext) ;
+        details.setExit(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void getStatus(NotificationType getStatus, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionCoordinatorDetails details = new CoordinatorCompletionCoordinatorDetails(addressingContext, arjunaContext) ;
+        details.setGetStatus(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public static class CoordinatorCompletionCoordinatorDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean exit ;
+        private boolean getStatus ;
+        
+        CoordinatorCompletionCoordinatorDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasExit()
+        {
+            return exit ;
+        }
+        
+        void setExit(final boolean exit)
+        {
+            this.exit = exit ;
+        }
+        
+        public boolean hasGetStatus()
+        {
+            return getStatus ;
+        }
+        
+        void setGetStatus(final boolean getStatus)
+        {
+            this.getStatus = getStatus ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantCallback;
+
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestCoordinatorCompletionParticipantCallback extends CoordinatorCompletionParticipantCallback
+{
+    /**
+     * An exited response.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected exited response") ;
+    }
+    
+    /**
+     * A faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected faulted response") ;
+    }
+    
+    /**
+     * A status response.
+     * @param status The status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected status response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorCompletionParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,215 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+
+
+public class TestCoordinatorCompletionParticipantProcessor extends CoordinatorCompletionParticipantProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public CoordinatorCompletionParticipantDetails getCoordinatorCompletionParticipantDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final CoordinatorCompletionParticipantDetails details = (CoordinatorCompletionParticipantDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final CoordinatorCompletionParticipantDetails details = (CoordinatorCompletionParticipantDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+
+    public void cancel(NotificationType cancel, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionParticipantDetails details = new CoordinatorCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setCancel(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void close(NotificationType close, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionParticipantDetails details = new CoordinatorCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setClose(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void compensate(NotificationType compensate, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionParticipantDetails details = new CoordinatorCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setCompensate(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void complete(NotificationType complete, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionParticipantDetails details = new CoordinatorCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setComplete(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void getStatus(NotificationType getStatus, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final CoordinatorCompletionParticipantDetails details = new CoordinatorCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setGetStatus(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public void activateParticipant(BusinessAgreementWithCoordinatorCompletionParticipant participant, String identifier)
+    {
+    }
+    
+    public void deactivateParticipant(BusinessAgreementWithCoordinatorCompletionParticipant participant)
+    {
+    }
+    
+    public static class CoordinatorCompletionParticipantDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean cancel ;
+        private boolean close ;
+        private boolean compensate ;
+        private boolean complete ;
+        private boolean getStatus ;
+        
+        CoordinatorCompletionParticipantDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasCancel()
+        {
+            return cancel ;
+        }
+        
+        void setCancel(final boolean cancel)
+        {
+            this.cancel = cancel ;
+        }
+        
+        public boolean hasClose()
+        {
+            return close ;
+        }
+        
+        void setClose(final boolean close)
+        {
+            this.close = close ;
+        }
+        
+        public boolean hasCompensate()
+        {
+            return compensate ;
+        }
+        
+        void setCompensate(final boolean compensate)
+        {
+            this.compensate = compensate ;
+        }
+        
+        public boolean hasComplete()
+        {
+            return complete ;
+        }
+        
+        void setComplete(final boolean complete)
+        {
+            this.complete = complete ;
+        }
+        
+        public boolean hasGetStatus()
+        {
+            return getStatus ;
+        }
+        
+        void setGetStatus(final boolean getStatus)
+        {
+            this.getStatus = getStatus ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,117 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.ExceptionType;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorCallback;
+
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestParticipantCompletionCoordinatorCallback extends ParticipantCompletionCoordinatorCallback
+{
+    /**
+     * A cancelled response.
+     * @param cancelled The cancelled notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected cancelled response") ;
+    }
+    
+    /**
+     * A closed response.
+     * @param closed The closed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void closed(final NotificationType closed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected closed response") ;
+    }
+    
+    /**
+     * A compensated response.
+     * @param compensated The compensated notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensated(final NotificationType compensated, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected compensated response") ;
+    }
+
+    /**
+     * A completed response.
+     * @param completed The completed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void completed(final NotificationType completed, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected completed response") ;
+    }
+    
+    /**
+     * A Status.
+     * @param status The status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected status response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+    
+    /**
+     * A fault response.
+     * @param fault The fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void fault(final ExceptionType fault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionCoordinatorProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,134 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+
+
+public class TestParticipantCompletionCoordinatorProcessor extends ParticipantCompletionCoordinatorProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public ParticipantCompletionCoordinatorDetails getParticipantCompletionCoordinatorDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final ParticipantCompletionCoordinatorDetails details = (ParticipantCompletionCoordinatorDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final ParticipantCompletionCoordinatorDetails details = (ParticipantCompletionCoordinatorDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+
+    public void exit(NotificationType exit, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantCompletionCoordinatorDetails details = new ParticipantCompletionCoordinatorDetails(addressingContext, arjunaContext) ;
+        details.setExit(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void getStatus(NotificationType getStatus, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantCompletionCoordinatorDetails details = new ParticipantCompletionCoordinatorDetails(addressingContext, arjunaContext) ;
+        details.setGetStatus(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public static class ParticipantCompletionCoordinatorDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean exit ;
+        private boolean getStatus ;
+        
+        ParticipantCompletionCoordinatorDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasExit()
+        {
+            return exit ;
+        }
+        
+        void setExit(final boolean exit)
+        {
+            this.exit = exit ;
+        }
+        
+        public boolean hasGetStatus()
+        {
+            return getStatus ;
+        }
+        
+        void setGetStatus(final boolean getStatus)
+        {
+            this.getStatus = getStatus ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.StatusType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantCallback;
+
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestParticipantCompletionParticipantCallback extends ParticipantCompletionParticipantCallback
+{
+    /**
+     * An exited response.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected exited response") ;
+    }
+    
+    /**
+     * A faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected faulted response") ;
+    }
+    
+    /**
+     * A status response.
+     * @param status The status notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected status response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantCompletionParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,191 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsba.NotificationType;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+
+
+public class TestParticipantCompletionParticipantProcessor extends ParticipantCompletionParticipantProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public ParticipantCompletionParticipantDetails getParticipantCompletionParticipantDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final ParticipantCompletionParticipantDetails details = (ParticipantCompletionParticipantDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final ParticipantCompletionParticipantDetails details = (ParticipantCompletionParticipantDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+
+    public void cancel(NotificationType cancel, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantCompletionParticipantDetails details = new ParticipantCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setCancel(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void close(NotificationType close, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantCompletionParticipantDetails details = new ParticipantCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setClose(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void compensate(NotificationType compensate, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantCompletionParticipantDetails details = new ParticipantCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setCompensate(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void getStatus(NotificationType getStatus, AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantCompletionParticipantDetails details = new ParticipantCompletionParticipantDetails(addressingContext, arjunaContext) ;
+        details.setGetStatus(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public void activateParticipant(BusinessAgreementWithParticipantCompletionParticipant participant, String identifier)
+    {
+    }
+    
+    public void deactivateParticipant(BusinessAgreementWithParticipantCompletionParticipant participant)
+    {
+    }
+    
+    public static class ParticipantCompletionParticipantDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean cancel ;
+        private boolean close ;
+        private boolean compensate ;
+        private boolean getStatus ;
+        
+        ParticipantCompletionParticipantDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasCancel()
+        {
+            return cancel ;
+        }
+        
+        void setCancel(final boolean cancel)
+        {
+            this.cancel = cancel ;
+        }
+        
+        public boolean hasClose()
+        {
+            return close ;
+        }
+        
+        void setClose(final boolean close)
+        {
+            this.close = close ;
+        }
+        
+        public boolean hasCompensate()
+        {
+            return compensate ;
+        }
+        
+        void setCompensate(final boolean compensate)
+        {
+            this.compensate = compensate ;
+        }
+        
+        public boolean hasGetStatus()
+        {
+            return getStatus ;
+        }
+        
+        void setGetStatus(final boolean getStatus)
+        {
+            this.getStatus = getStatus ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerCoordinatorCallback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerCoordinatorCallback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerCoordinatorCallback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.wst.tests.junit;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarjtx.processors.ParticipantManagerCoordinatorCallback;
+
+/**
+ * Base callback class for tests.
+ * @author kevin
+ */
+public class TestParticipantManagerCoordinatorCallback extends ParticipantManagerCoordinatorCallback
+{
+    /**
+     * A complete response.
+     * @param complete The complete notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void complete(final NotificationType complete, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected complete response") ;
+    }
+
+    /**
+     * An exited response.
+     * @param exited The exited notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected exited response") ;
+    }
+
+    /**
+     * A faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void faulted(final NotificationType faulted, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected faulted response") ;
+    }
+    
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext,
+        final ArjunaContext arjunaContext)
+    {
+        throw new RuntimeException("Unexpected SOAP fault response") ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantManagerParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,197 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarjtx.processors.ParticipantManagerParticipantProcessor;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.wst.BAParticipantManager;
+
+public class TestParticipantManagerParticipantProcessor extends
+        ParticipantManagerParticipantProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public ParticipantManagerParticipantDetails getParticipantManagerParticipantDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final ParticipantManagerParticipantDetails details = (ParticipantManagerParticipantDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final ParticipantManagerParticipantDetails details = (ParticipantManagerParticipantDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+
+    public void completed(NotificationType completed,
+            AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantManagerParticipantDetails details = new ParticipantManagerParticipantDetails(addressingContext, arjunaContext) ;
+        details.setCompleted(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void exit(NotificationType exit,
+            AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantManagerParticipantDetails details = new ParticipantManagerParticipantDetails(addressingContext, arjunaContext) ;
+        details.setExit(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void fault(NotificationType fault,
+            AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantManagerParticipantDetails details = new ParticipantManagerParticipantDetails(addressingContext, arjunaContext) ;
+        details.setFault(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void soapFault(SoapFault soapFault, AddressingContext addressingContext,
+            ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantManagerParticipantDetails details = new ParticipantManagerParticipantDetails(addressingContext, arjunaContext) ;
+        details.setSoapFault(soapFault) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public void activateParticipant(BAParticipantManager participant,
+            String identifier)
+    {
+    }
+
+    public void deactivateParticipant(BAParticipantManager participant)
+    {
+    }
+    
+    public static class ParticipantManagerParticipantDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean completed ;
+        private boolean exit ;
+        private boolean fault ;
+        private SoapFault soapFault ;
+        
+        ParticipantManagerParticipantDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasCompleted()
+        {
+            return completed ;
+        }
+        
+        void setCompleted(final boolean completed)
+        {
+            this.completed = completed ;
+        }
+        
+        public boolean hasExit()
+        {
+            return exit ;
+        }
+        
+        void setExit(final boolean exit)
+        {
+            this.exit = exit ;
+        }
+        
+        public boolean hasFault()
+        {
+            return fault ;
+        }
+        
+        void setFault(final boolean fault)
+        {
+            this.fault = fault ;
+        }
+        
+        public SoapFault getSoapFault()
+        {
+            return soapFault ;
+        }
+        
+        void setSoapFault(final SoapFault soapFault)
+        {
+            this.soapFault = soapFault ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestParticipantProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,196 @@
+/*
+ * 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.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+
+public class TestParticipantProcessor extends ParticipantProcessor
+{
+    private Map messageIdMap = new HashMap() ;
+    
+    public ParticipantDetails getParticipantDetails(final String messageId, final long timeout)
+    {
+        final long endTime = System.currentTimeMillis() + timeout ;
+        synchronized(messageIdMap)
+        {
+            long now = System.currentTimeMillis() ;
+            while(now < endTime)
+            {
+                final ParticipantDetails details = (ParticipantDetails)messageIdMap.remove(messageId) ;
+                if (details != null)
+                {
+                    return details ;
+                }
+                try
+                {
+                    messageIdMap.wait(endTime - now) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+                now = System.currentTimeMillis() ;
+            }
+            final ParticipantDetails details = (ParticipantDetails)messageIdMap.remove(messageId) ;
+            if (details != null)
+            {
+                return details ;
+            }
+        }
+        throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+    }
+
+    public void commit(NotificationType commit,
+            AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantDetails details = new ParticipantDetails(addressingContext, arjunaContext) ;
+        details.setCommit(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void prepare(NotificationType prepare,
+            AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantDetails details = new ParticipantDetails(addressingContext, arjunaContext) ;
+        details.setPrepare(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void rollback(NotificationType rollback,
+            AddressingContext addressingContext, ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantDetails details = new ParticipantDetails(addressingContext, arjunaContext) ;
+        details.setRollback(true) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+
+    public void soapFault(SoapFault soapFault, AddressingContext addressingContext,
+            ArjunaContext arjunaContext)
+    {
+        final String messageId = addressingContext.getMessageID().getValue() ;
+        final ParticipantDetails details = new ParticipantDetails(addressingContext, arjunaContext) ;
+        details.setSoapFault(soapFault) ;
+        
+        synchronized(messageIdMap)
+        {
+            messageIdMap.put(messageId, details) ;
+            messageIdMap.notifyAll() ;
+        }
+    }
+    
+    public void activateParticipant(Participant participant,
+            String identifier)
+    {
+    }
+
+    public void deactivateParticipant(Participant participant)
+    {
+    }
+    
+    public static class ParticipantDetails
+    {
+        private final AddressingContext addressingContext ;
+        private final ArjunaContext arjunaContext ;
+        private boolean commit ;
+        private boolean prepare ;
+        private boolean rollback ;
+        private SoapFault soapFault ;
+        
+        ParticipantDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+        {
+            this.addressingContext = addressingContext ;
+            this.arjunaContext = arjunaContext ;
+        }
+        
+        public AddressingContext getAddressingContext()
+        {
+            return addressingContext ;
+        }
+        
+        public ArjunaContext getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+        
+        public boolean hasCommit()
+        {
+            return commit ;
+        }
+        
+        void setCommit(final boolean commit)
+        {
+            this.commit = commit ;
+        }
+        
+        public boolean hasPrepare()
+        {
+            return prepare ;
+        }
+        
+        void setPrepare(final boolean prepare)
+        {
+            this.prepare = prepare ;
+        }
+        
+        public boolean hasRollback()
+        {
+            return rollback ;
+        }
+        
+        void setRollback(final boolean rollback)
+        {
+            this.rollback = rollback ;
+        }
+        
+        public SoapFault getSoapFault()
+        {
+            return soapFault ;
+        }
+        
+        void setSoapFault(final SoapFault soapFault)
+        {
+            this.soapFault = soapFault ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestSuite.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestSuite.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TestSuite.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ *
+ * TestSuite.java
+ */
+
+package com.arjuna.wst.tests.junit;
+
+public class TestSuite extends junit.framework.TestSuite
+{
+    public TestSuite()
+    {
+        addTest(new junit.framework.TestSuite(CompletionParticipantTestCase.class));
+        addTest(new junit.framework.TestSuite(CompletionCoordinatorTestCase.class));
+        addTest(new junit.framework.TestSuite(TwoPCParticipantTestCase.class));
+        addTest(new junit.framework.TestSuite(TwoPCCoordinatorTestCase.class));
+        addTest(new junit.framework.TestSuite(CompletionServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(TwoPCServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessAgreementWithParticipantCompletionServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessAgreementWithParticipantCompletionParticipantTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessAgreementWithParticipantCompletionCoordinatorTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessAgreementWithCoordinatorCompletionServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessAgreementWithCoordinatorCompletionParticipantTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessAgreementWithCoordinatorCompletionCoordinatorTestCase.class));
+        addTest(new junit.framework.TestSuite(BAParticipantManagerServiceTestCase.class));
+        addTest(new junit.framework.TestSuite(BAParticipantManagerParticipantTestCase.class));
+        addTest(new junit.framework.TestSuite(BAParticipantManagerCoordinatorTestCase.class));
+        addTest(new junit.framework.TestSuite(BusinessActivityTerminatorServiceTestCase.class));
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCCoordinatorTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCCoordinatorTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCCoordinatorTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,127 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TwoPCCoordinatorTestCase.java,v 1.6.2.1 2005/11/22 10:37:45 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.client.ParticipantClient;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.wst.tests.junit.TestParticipantProcessor.ParticipantDetails;
+
+public class TwoPCCoordinatorTestCase extends TestCase
+{
+    private ParticipantProcessor origParticipantProcessor ;
+    
+    private TestParticipantProcessor testParticipantProcessor = new TestParticipantProcessor() ;
+    private String participantService ;
+
+    protected void setUp()
+        throws Exception
+    {
+        origParticipantProcessor = ParticipantProcessor.setParticipant(testParticipantProcessor) ;
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        participantService = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_PARTICIPANT) ;
+    }
+
+    public void testSendPrepare()
+        throws Exception
+    {
+        final String messageId = "testSendPrepare" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantClient.getClient().sendPrepare(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantDetails details = testParticipantProcessor.getParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasPrepare()) ;
+    }
+
+    public void testSendCommit()
+        throws Exception
+    {
+        final String messageId = "testSendCommit" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantClient.getClient().sendCommit(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantDetails details = testParticipantProcessor.getParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasCommit()) ;
+    }
+
+    public void testSendRollback()
+        throws Exception
+    {
+        final String messageId = "testSendRollback" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        ParticipantClient.getClient().sendRollback(addressingContext, instanceIdentifier) ;
+        
+        final ParticipantDetails details = testParticipantProcessor.getParticipantDetails(messageId, 10000) ;
+        
+        assertTrue(details.hasRollback()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "testSendError" ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(participantService, messageId) ;
+        final InstanceIdentifier instanceIdentifier = new InstanceIdentifier("2") ;
+        
+        final String reason = "testSendErrorReason" ;
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        ParticipantClient.getClient().sendSoapFault(addressingContext, soapFault, instanceIdentifier) ;
+        
+        final ParticipantDetails details = testParticipantProcessor.getParticipantDetails(messageId, 10000) ;
+        final SoapFault receivedSoapFault = details.getSoapFault() ;
+        
+        assertNotNull(receivedSoapFault) ;
+        assertEquals(soapFaultType, receivedSoapFault.getSoapFaultType()) ;
+        assertEquals(subcode, receivedSoapFault.getSubcode()) ;
+        assertEquals(reason, receivedSoapFault.getReason()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        ParticipantProcessor.setParticipant(origParticipantProcessor) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCParticipantTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCParticipantTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCParticipantTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,304 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TwoPCParticipantTestCase.java,v 1.6.2.1 2005/11/22 10:37:46 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.client.CoordinatorClient;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+public class TwoPCParticipantTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        coordinatorServiceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COORDINATOR) ;
+        participantServiceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_PARTICIPANT) ;
+    }
+
+    public void testSendPrepared()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendPrepared" ;
+        final EndpointReferenceType coordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorService, messageId) ;
+        
+        final TestCoordinatorCallback callback = new TestCoordinatorCallback() {
+            public void prepared(final NotificationType prepared, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorProcessor coordinator = CoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorClient.getClient().sendPrepared(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendAborted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendAborted" ;
+        final EndpointReferenceType coordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorService, messageId) ;
+        
+        final TestCoordinatorCallback callback = new TestCoordinatorCallback() {
+            public void aborted(final NotificationType aborted, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorProcessor coordinator = CoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorClient.getClient().sendAborted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendReadOnly()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendReadOnly" ;
+        final EndpointReferenceType coordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorService, messageId) ;
+        
+        final TestCoordinatorCallback callback = new TestCoordinatorCallback() {
+            public void readOnly(final NotificationType readOnly, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorProcessor coordinator = CoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorClient.getClient().sendReadOnly(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendCommitted()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendCommitted" ;
+        final EndpointReferenceType coordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorService, messageId) ;
+        
+        final TestCoordinatorCallback callback = new TestCoordinatorCallback() {
+            public void committed(final NotificationType committed, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorProcessor coordinator = CoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorClient.getClient().sendCommitted(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendReplay()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String instanceIdentifier = "testSendReplay" ;
+        final EndpointReferenceType coordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorService, messageId) ;
+        
+        final TestCoordinatorCallback callback = new TestCoordinatorCallback() {
+            public void replay(final NotificationType replay, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantServiceURI);
+                assertEquals(addressingContext.getReplyTo().getAddress().getValue(), participantServiceURI);
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorProcessor coordinator = CoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorClient.getClient().sendReplay(addressingContext, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    public void testSendError()
+        throws Exception
+    {
+        final String messageId = "123456" ;
+        final String reason = "testSendErrorReason" ;
+        final String instanceIdentifier = "testSendError" ;
+        final EndpointReferenceType coordinatorService = new EndpointReferenceType(new AttributedURIType(coordinatorServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinatorService, instanceIdentifier) ;
+        final AddressingContext addressingContext = AddressingContext.createRequestContext(coordinatorService, messageId) ;
+        
+        final SoapFaultType soapFaultType = SoapFaultType.FAULT_SENDER ;
+        final QName subcode = ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME ;
+        final SoapFault soapFault = new SoapFault(soapFaultType, subcode, reason) ;
+        
+        final TestCoordinatorCallback callback = new TestCoordinatorCallback() {
+            public void soapFault(final SoapFault soapFault, final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+            {
+                assertEquals(addressingContext.getTo().getValue(), coordinatorServiceURI);
+                assertEquals(addressingContext.getFrom().getAddress().getValue(), participantServiceURI);
+                assertNull(addressingContext.getReplyTo());
+                assertEquals(addressingContext.getMessageID().getValue(), messageId);
+                
+                assertNotNull(soapFault) ;
+                assertEquals(soapFaultType, soapFault.getSoapFaultType()) ;
+                assertEquals(subcode, soapFault.getSubcode()) ;
+                assertEquals(reason, soapFault.getReason()) ;
+                
+                assertNotNull(arjunaContext.getInstanceIdentifier()) ;
+                assertEquals(instanceIdentifier, arjunaContext.getInstanceIdentifier().getInstanceIdentifier()) ;
+            }
+        };
+        final CoordinatorProcessor coordinator = CoordinatorProcessor.getCoordinator() ;
+        coordinator.registerCallback(instanceIdentifier, callback) ;
+        
+        try
+        {
+            CoordinatorClient.getClient().sendSoapFault(addressingContext, soapFault, new InstanceIdentifier("sender")) ;
+            callback.waitUntilTriggered() ;
+        }
+        finally
+        {
+            coordinator.removeCallback(instanceIdentifier) ;
+        }
+        
+        assertTrue(callback.hasTriggered()) ;
+        assertFalse(callback.hasFailed()) ;
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+    }
+
+    private String coordinatorServiceURI ;
+    private String participantServiceURI ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCServiceTestCase.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCServiceTestCase.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/tests/src/com/arjuna/wst/tests/junit/TwoPCServiceTestCase.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,294 @@
+/*
+ * 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, 2004,
+ *
+ * Arjuna Technologies Limited.
+ *
+ * $Id: TwoPCServiceTestCase.java,v 1.5.2.1 2005/11/22 10:37:45 kconner Exp $
+ */
+
+package com.arjuna.wst.tests.junit;
+
+import junit.framework.TestCase;
+
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.Participant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.Vote;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.stub.ParticipantStub;
+import com.arjuna.wst.tests.TestUtil;
+
+public class TwoPCServiceTestCase extends TestCase
+{
+    protected void setUp()
+        throws Exception
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String participantServiceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_PARTICIPANT) ;
+
+        EndpointReferenceType preparedVoteCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(preparedVoteCoordinator, TestUtil.PREPAREDVOTE_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType abortedVoteCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(abortedVoteCoordinator, TestUtil.ABORTEDVOTE_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType readOnlyVoteCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(readOnlyVoteCoordinator, TestUtil.READONLYVOTE_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType noExceptionCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(noExceptionCoordinator, TestUtil.NOEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType wrongStateExceptionCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(wrongStateExceptionCoordinator, TestUtil.WRONGSTATEEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType systemExceptionCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(systemExceptionCoordinator, TestUtil.SYSTEMEXCEPTION_PARTICIPANT_IDENTIFIER);
+
+        EndpointReferenceType nonexistentCoordinator = new EndpointReferenceType(new AttributedURIType(participantServiceURI));
+        InstanceIdentifier.setEndpointInstanceIdentifier(nonexistentCoordinator, TestUtil.NONEXISTENT_PARTICIPANT_IDENTIFIER);
+
+        _preparedVoteStub                   = new ParticipantStub("twoPCCoordinator", preparedVoteCoordinator);
+        _abortedVoteStub                    = new ParticipantStub("twoPCCoordinator", abortedVoteCoordinator);
+        _readOnlyVoteStub                   = new ParticipantStub("twoPCCoordinator", readOnlyVoteCoordinator);
+        _noExceptionStub                    = new ParticipantStub("twoPCCoordinator", noExceptionCoordinator);
+        _wrongStateExceptionStub            = new ParticipantStub("twoPCCoordinator", wrongStateExceptionCoordinator);
+        _systemExceptionStub                = new ParticipantStub("twoPCCoordinator", systemExceptionCoordinator);
+        _nonexistentStub                    = new ParticipantStub("twoPCCoordinator", nonexistentCoordinator);
+    }
+
+    public void testPrepareWithPreparedVote()
+        throws Exception
+    {
+        Vote vote = _preparedVoteStub.prepare();
+
+        assertNotNull(vote);
+        assertTrue("Expected vote \"Prepared\" got \"" + vote.getClass().getName() + "\"", vote instanceof com.arjuna.wst.Prepared);
+    }
+
+    public void testPrepareWithAbortedVote()
+        throws Exception
+    {
+        Vote vote = _abortedVoteStub.prepare();
+
+        assertNotNull(vote);
+        assertTrue("Expected vote \"Aborted\" got \"" + vote.getClass().getName() + "\"", vote instanceof com.arjuna.wst.Aborted);
+    }
+
+    public void testPrepareWithReadOnlyVote()
+        throws Exception
+    {
+        Vote vote = _readOnlyVoteStub.prepare();
+
+        assertNotNull(vote);
+        assertTrue("Expected vote \"ReadOnly\" got \"" + vote.getClass().getName() + "\"", vote instanceof com.arjuna.wst.ReadOnly);
+    }
+
+    public void testCommitWithNoException()
+        throws Exception
+    {
+        _noExceptionStub.commit();
+    }
+
+    public void testRollbackWithNoException()
+        throws Exception
+    {
+        _noExceptionStub.rollback();
+    }
+
+    public void testUnknownWithNoException()
+        throws Exception
+    {
+        _noExceptionStub.unknown();
+    }
+
+    public void testErrorWithNoException()
+        throws Exception
+    {
+        _noExceptionStub.error();
+    }
+
+    public void testPrepareWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionStub.prepare();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testCommitWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionStub.commit();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testRollbackWithWrongStateException()
+        throws Exception
+    {
+        try
+        {
+            _wrongStateExceptionStub.rollback();
+            fail("Expected exception \"WrongStateException\"");
+        }
+        catch (WrongStateException wrongStateException)
+        {
+        }
+    }
+
+    public void testPrepareWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionStub.prepare();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCommitWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionStub.commit();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testRollbackWithSystemException()
+        throws Exception
+    {
+        try
+        {
+            _systemExceptionStub.rollback();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testUnknownWithSystemException()
+        throws Exception
+    {
+        _systemExceptionStub.unknown();
+    }
+
+    public void testErrorWithSystemException()
+        throws Exception
+    {
+        _systemExceptionStub.error();
+    }
+
+    public void testPrepareWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentStub.prepare();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testCommitWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentStub.commit();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testRollbackWithNonExistent()
+        throws Exception
+    {
+        try
+        {
+            _nonexistentStub.rollback();
+            fail("Expected exception \"SystemException\"");
+        }
+        catch (SystemException systemException)
+        {
+        }
+    }
+
+    public void testUnknownWithNonExistent()
+        throws Exception
+    {
+        _nonexistentStub.unknown();
+    }
+
+    public void testErrorWithNonExistent()
+        throws Exception
+    {
+        _nonexistentStub.error();
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        _preparedVoteStub                   = null;
+        _abortedVoteStub                    = null;
+        _readOnlyVoteStub                   = null;
+        _noExceptionStub                    = null;
+        _wrongStateExceptionStub            = null;
+        _systemExceptionStub                = null;
+        _nonexistentStub                    = null;
+    }
+
+    private Participant _preparedVoteStub                   = null;
+    private Participant _abortedVoteStub                    = null;
+    private Participant _readOnlyVoteStub                   = null;
+    private Participant _noExceptionStub                    = null;
+    private Participant _wrongStateExceptionStub            = null;
+    private Participant _systemExceptionStub                = null;
+    private Participant _nonexistentStub                    = null;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,178 @@
+<!--
+  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.
+-->
+<project name="WSAS" default="com.arjuna.mw.wsas.jar" basedir=".">
+	<!-- Set module name -->
+	<property name="com.arjuna.mwlabs.ts.modulename" value="wsas"/>
+
+	<!-- Set default properties filename -->
+	<property name="com.arjuna.mw.wsas.properties" value="wsas.properties"/>
+
+	<!-- Load Build Properties File -->
+	<property file="${com.arjuna.mw.wsas.properties}"/>
+
+    <property name="com.arjuna.buildsystem.dir" location="../../antbuildsystem"/>
+    <property name="com.arjuna.jta.install" location="../../install"/>
+
+    <property name="com.arjuna.buildsystem.lib" location="${com.arjuna.buildsystem.dir}/build/lib"/>
+    <property name="com.arjuna.jta.install.lib" location="${com.arjuna.jta.install}/lib"/>
+    <property name="com.arjuna.jta.install.ext" location="${com.arjuna.jta.install.lib}/ext"/>
+    <property name="com.arjuna.xts.ext" location="../ext"/>
+
+    <property name="com.arjuna.buildsystem.lib.jars" value="buildsystem.jar"/>
+
+    <property name="jta.lib.jars" value="jbossjta.jar"/>
+    <property name="jta.ext.jars" value="jbossts-common.jar"/>
+
+    <property name="com.arjuna.mwlabs.wsas.resourcebundle" value="wsas_msg_en_US.properties"/>
+
+	<!-- Set internal property defaults -->
+	<!-- Path names -->
+	<property name="com.arjuna.mwlabs.wsas.src" value="classes"/>
+	<property name="com.arjuna.mwlabs.wsas.dest.root" value="build"/>
+	<property name="com.arjuna.mwlabs.wsas.dest" value="${com.arjuna.mwlabs.wsas.dest.root}/classes"/>
+	<property name="com.arjuna.mwlabs.wsas.jar.dest" value="${com.arjuna.mwlabs.wsas.dest.root}/lib"/>
+	<property name="com.arjuna.mwlabs.wsas.htdocs.dest" value="build/htdocs"/>
+
+	<!-- class path behaviour -->
+    <path id="com.arjuna.buildsystem.classpath">
+        <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
+    </path>
+    <property name="com.arjuna.buildsystem.classpath" refid="com.arjuna.buildsystem.classpath"/>
+	<property name="build.sysclasspath" value="last"/>
+	<property name="com.arjuna.mwlabs.classpathbuilderfilename" location="buildsystem.classpath"/>
+
+	<path id="com.arjuna.mwlabs.wsas.lib.classpath">
+        <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars}"/>
+        <fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
+    </path>
+
+	<!-- Initialisation -->
+	<target name="com.arjuna.mwlabs.wsas.init">
+		<!-- Define default build properties -->
+		<tstamp>
+			<format property="com.arjuna.mw.wsas.date" pattern="yyyy/mm/dd hh:mm aa"/>
+		</tstamp>
+		<!-- Compile with debugging? -->
+		<condition property="com.arjuna.mwlabs.debug" value="no">
+			<equals arg1="${com.arjuna.mw.debug}" arg2="no"/>
+		</condition>
+		<property name="com.arjuna.mwlabs.debug" value="yes"/>
+
+		<!-- Compile with deprecation? -->
+		<condition property="com.arjuna.mwlabs.deprecation" value="yes">
+			<equals arg1="${com.arjuna.mw.deprecation}" arg2="yes"/>
+		</condition>
+		<property name="com.arjuna.mwlabs.deprecation" value="no"/>
+		<!-- Make the destination directory -->
+		<mkdir dir="${com.arjuna.mwlabs.wsas.dest}"/>
+	</target>
+
+	<!-- Define classpath builder task and add this JAR to the classpath -->
+	<taskdef name="classpath-builder" classname="com.hp.mw.buildsystem.ant.ClasspathBuilder" classpathref="com.arjuna.buildsystem.classpath"/>
+
+	<!-- Compilation targets -->
+	<target name="com.arjuna.mw.wsas.compile"
+	depends="com.arjuna.mwlabs.wsas.compile,
+		com.arjuna.mw.wsas.htdocs, com.arjuna.mwlabs.wsas.generateresourcebundle"/>
+
+	<target name="com.arjuna.mwlabs.wsas.compile" depends="com.arjuna.mwlabs.wsas.init">
+		<echo message="Compiling module"/>
+		<javac srcdir="${com.arjuna.mwlabs.wsas.src}" destdir="${com.arjuna.mwlabs.wsas.dest}"
+               debug="${com.arjuna.mwlabs.debug}" deprecation="${com.arjuna.mwlabs.deprecation}"
+		       classpathref = "com.arjuna.mwlabs.wsas.lib.classpath"/>
+	</target>
+
+	<!-- htdocs paths -->
+	<path id="com.arjuna.mw.wsas.htdocs.path" path="${com.arjuna.mwlabs.wsas.src}"/>
+
+	<!-- Build htdocs for just mw, or mw and mwlabs -->
+	<property name="com.arjuna.mwlabs.wsas.htdocs.list" value="com.arjuna.mw.*"/>
+
+	<!-- Jar targets -->
+	<target name="com.arjuna.mw.wsas.jar" depends="com.arjuna.mw.wsas.compile">
+		<echo message="Building jar file"/>
+		<mkdir dir="${com.arjuna.mwlabs.wsas.jar.dest}"/>
+		<jar jarfile="${com.arjuna.mwlabs.wsas.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar" basedir="${com.arjuna.mwlabs.wsas.dest}">
+			<manifest>
+                <attribute name="Class-Path" value="${jta.lib.jars}"/>
+            </manifest>
+        </jar>
+	</target>
+
+	<target name="com.arjuna.mw.wsas.htdocs"
+				depends="com.arjuna.mwlabs.wsas.init">
+		<echo message="Building htdocs "/>
+		<mkdir dir="${com.arjuna.mwlabs.wsas.htdocs.dest}"/>
+		<path id="com.arjuna.mwlabs.wsas.htdocs.path">
+			<path refid="com.arjuna.mw.wsas.htdocs.path"/>
+		</path>
+
+		<javadoc
+			sourcepathref="com.arjuna.mwlabs.wsas.htdocs.path"
+			destdir="${com.arjuna.mwlabs.wsas.htdocs.dest}"
+			packagenames="${com.arjuna.mwlabs.wsas.htdocs.list}"
+	        >
+			<classpath>
+				<path refid="com.arjuna.mwlabs.wsas.lib.classpath"/>
+				<path path="${com.arjuna.mwlabs.wsas.src}"/>
+			</classpath>
+		</javadoc>
+	</target>
+
+        <target name="com.arjuna.mwlabs.wsas.generateresourcebundle">
+
+            <echo message="Generating WSAS Bundle"/>
+
+            <classpath-builder filename="${com.arjuna.mwlabs.classpathbuilderfilename}" inproperty="build.classpath"/>
+
+            <javadoc    sourcepath="${com.arjuna.mwlabs.wsas.src}"
+                        packagenames="com.arjuna.*"
+                        failonerror="yes"
+                        private="yes"
+                        defaultexcludes="yes"
+                        classpath="${build.classpath}">
+
+                 <doclet name="com.hp.mw.buildsystem.doclet.resbundledoclet.ResourceBundleDoclet">
+                    <path>
+                        <pathelement path="${com.arjuna.buildsystem.classpath}"/>
+                    </path>
+                    <param name="-basedir" value="${basedir}/${com.arjuna.mwlabs.wsas.dest}"/>
+                    <param name="-resourcebundle" value="${com.arjuna.mwlabs.wsas.resourcebundle}"/>
+                 </doclet>
+            </javadoc>
+
+        </target>
+
+	<!-- Clean targets -->
+	<target name="com.arjuna.mw.wsas.clean">
+		<echo message="Cleaning module"/>
+		<delete dir="${com.arjuna.mwlabs.wsas.dest}"/>
+		<delete dir="${com.arjuna.mwlabs.wsas.dest.root}"/>
+		<delete dir="${com.arjuna.mwlabs.wsas.htdocs.dest}"/>
+		<delete file="${com.arjuna.mwlabs.wsas.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar"/>
+		<delete file="${com.arjuna.mwlabs.wsas.info.dest}"/>
+	</target>
+
+	<!-- Short target names -->
+	<target name="compile" depends="com.arjuna.mw.wsas.compile"/>
+	<target name="jar" depends="com.arjuna.mw.wsas.jar"/>
+	<target name="clean" depends="com.arjuna.mw.wsas.clean"/>
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,120 @@
+/*
+ * 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: ActivityManager.java,v 1.1 2002/11/25 10:51:40 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas;
+
+import com.arjuna.mw.wsas.activity.HLS;
+import com.arjuna.mw.wsas.activity.OutcomeManager;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidHLSException;
+
+/**
+ * The activity manager is the way in which an HLS can register
+ * itself with the activity service. This allows it to be informed
+ * of the lifecycle of activities and to augment that lifecyle and
+ * associated context.
+ *
+ * An HLS can be associated with all threads (globally) or with only
+ * a specific thread (locally).
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityManager.java,v 1.1 2002/11/25 10:51:40 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface ActivityManager
+{
+
+    /**
+     * Register the specified HLS with the activity service.
+     *
+     * @param service The HLS to register.
+     *
+     * @exception InvalidHLSException Thrown if the HLS is invalid in the
+     * current execution environment.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addHLS (HLS service) throws InvalidHLSException, SystemException;
+
+    /**
+     * Unregister the specified HLS with the activity service.
+     *
+     * @param service The HLS to unregister.
+     *
+     * @exception InvalidHLSException Thrown if the HLS is invalid in the
+     * current execution environment.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void removeHLS (HLS service) throws InvalidHLSException, SystemException;
+
+    /**
+     * Allows an invoker to obtain a list of all registered HLSs.
+     * Elements at the start of the array have higher priority than those at
+     * the end.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the list of HLSs.
+     *
+     */
+
+    public HLS[] allHighLevelServices () throws SystemException;
+
+    /**
+     * When multiple HLSs are registered with the activity service, some
+     * means of collating their Outcome responses may be required. An
+     * application may provide an OutcomeManager to do this work rather than
+     * use the default provided by the system.
+     *
+     * @param om The manager to use. If null is specified, then
+     * the default manager will be used.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     */
+
+    public void setOutcomeManager (OutcomeManager om) throws SystemException;
+
+    /*
+     * When multiple HLSs are registered with the activity service, some
+     * means of collating their Outcome responses may be required. This
+     * method returns the current manager.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The manager currently associated with activities.
+     */
+
+    public OutcomeManager getOutcomeManager () throws SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/ActivityManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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: ActivityManagerFactory.java,v 1.1 2002/11/25 10:51:40 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas;
+
+import com.arjuna.mwlabs.wsas.ActivityManagerImple;
+
+/**
+ * Return the ActivityManager implementation to use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityManagerFactory.java,v 1.1 2002/11/25 10:51:40 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ActivityManagerFactory
+{
+
+    /**
+     * @return The ActivityManager for applications to use.
+     */
+
+    public static ActivityManager activityManager ()
+    {
+	return _imple;
+    }
+
+    private static ActivityManagerImple _imple = new ActivityManagerImple();
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivity.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivity.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivity.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,279 @@
+/*
+ * 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: UserActivity.java,v 1.2 2005/05/19 12:13:15 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.ActiveChildException;
+
+/**
+ * The user portion of the activity API. An implementation of this interface
+ * presents each thread with the capability to create and manage activities.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserActivity.java,v 1.2 2005/05/19 12:13:15 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface UserActivity
+{
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. An implementation specific
+     * timeout will be associated with the activity (which may be no
+     * timeout).
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void start () throws WrongStateException, SystemException;
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. If the activity is still
+     * active when the specified timeout elapses, it will be terminated.
+     *
+     * @param timeout The timeout associated with the activity (in
+     * seconds). If the activity has not been terminated by the time this
+     * period elapses, then it will automatically be terminated.
+     * @exception WrongStateException Thrown if the currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted as a child.
+     * @exception InvalidTimeoutException Thrown if the specified timeout is
+     * invalid within the current working environment.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void start (int timeout) throws WrongStateException, InvalidTimeoutException, SystemException;
+
+    /**
+     * Complete the activity with the current completion status.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception ActiveChildException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed in the status requested.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public Outcome end () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoActivityException, ActiveChildException, SystemException, NoPermissionException;
+
+    /**
+     * Complete the activity with the completion status provided.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception ActiveChildException Thrown if the current activity is a
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @param cs The CompletionStatus to use.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public Outcome end (com.arjuna.mw.wsas.completionstatus.CompletionStatus cs) throws InvalidActivityException, WrongStateException, ProtocolViolationException, SystemException, ActiveChildException, NoActivityException, NoPermissionException;
+
+    /**
+     * Set the termination status for the current activity, if any.
+     *
+     * @param endStatus The state in which the activity
+     * should attempt to terminate. This may be one of the default values
+     * provided by WSAS or may be extended in an implementation specific
+     * manner by an HLS.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception WrongStateException Thrown if the completion status is
+     * incompatible with the current state of the activity.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setCompletionStatus (CompletionStatus endStatus) throws NoActivityException, WrongStateException, SystemException;
+
+    /**
+     * Get the completion status currently associated with the activity.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the current thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the termination status for the current activity, if any.
+     */
+
+    public CompletionStatus getCompletionStatus () throws NoActivityException, SystemException;
+
+    /**
+     * Get the timeout value currently associated with activities.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException;
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException;
+    
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current activity. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException;
+
+    /**
+     * What is the name of the current activity? Use only for
+     * debugging purposes!
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the name of the activity.
+     */
+
+    public String activityName () throws NoActivityException, SystemException;
+
+    /**
+     * @return the unique activity id.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public GlobalId activityId () throws NoActivityException, SystemException;
+    
+    /**
+     * Suspend the current activity from this thread and return the token
+     * representing the context, if any, or null otherwise. Once called, the
+     * thread will have no activities associated with it.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the token representing the current context, if any, or null
+     * otherwise.
+     */
+
+    public ActivityHierarchy suspend () throws SystemException;
+
+    /**
+     * Given a token representing a context, associate it with the current
+     * thread of control. This will implicitly disassociate the thread from any
+     * activities that it may already be associated with. If the parameter is
+     * null then the thread is associated with no activity.
+     *
+     * @param tx The activity to associate with this thread. This
+     * may be null in which case the current thread becomes associated with
+     * no activity.
+     *
+     * @exception InvalidActivityException Thrown if the activity handle
+     * is invalid in this context.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (ActivityHierarchy tx) throws InvalidActivityException, SystemException;
+
+    /**
+     * @return the token representing the current activity context hierarchy,
+     * or null if there is none associated with the invoking thread.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     */
+
+    public ActivityHierarchy currentActivity () throws SystemException;
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivityFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivityFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/UserActivityFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UserActivityFactory.java,v 1.7 2005/05/19 12:13:15 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas;
+
+import com.arjuna.mwlabs.wsas.UserActivityImple;
+
+import java.io.FileNotFoundException;
+
+/**
+ * Return the UserActivity implementation to use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserActivityFactory.java,v 1.7 2005/05/19 12:13:15 nmcl Exp $
+ * @since 1.0.
+ */
+
+/*
+ * TODO
+ *
+ * DOH! This is severely broken/restricted, because we can only ever have
+ * a single activity service per process in this model. All HLS-es are added
+ * to the same service and run simultaneously, even if that doesn't actually
+ * make sense! What we need is to have multiple activity services with
+ * different HLS-es allowed for each. Very similar to having multiple POAs.
+ *
+ * At the moment it works as is because we know there is a very limited
+ * set of HLS-es that are running and that they don't conflict. However, this
+ * isn't guaranteed in general, so we need to fix this in the refactoring!
+ *
+ * The reason we can say with certainty that it currently works is: we only
+ * have either AtomicTransaction (at) and/or BusinessActivity (ba) HLS-es
+ * registered for AXTS. If both are registered then a start on an activity
+ * will create an activity that has both running! However, the start was the
+ * result of a specific incoming SOAP message on a specific ActivationService
+ * (either an at or a ba). So, we give back a context that only contains
+ * an at or a ba RegistrationService, not both. This means that participants
+ * can only be registered with the at *or* the ba; the other is a redundant
+ * coordinator and will just terminate in a success mode. We end up with
+ * two coordinators for each activity, but only the right one will ever be
+ * used. Not ideal, but one of the limitations of the original WS-AS model.
+ */
+
+public class UserActivityFactory
+{
+    
+    /**
+     * @return The UserActivity for the application to use.
+     */
+
+    public static UserActivity userActivity ()
+    {
+	return _imple;
+    }
+
+    /*
+    public static UserActivity userActivity (String name)
+    {
+	UserActivity imple = (UserActivity) _instances.get(name);
+	
+	if (imple == null)
+	{
+	    imple = new UserActivityImple();
+
+	    _instances.put(name, imple);
+	}
+	
+	_currentActivity.put(Thread.currentThread(), imple);
+	
+	return imple;
+    }
+
+    public static UserActivity currentActivityService ()
+    {
+	return (UserActivity) _currentActivity.get(Thread.currentThread());
+    }
+
+    private static Hashtable   _instances = new Hashtable();
+    private static WeakHashMap _currentActivity = new WeakHashMap();
+    */
+
+    private static UserActivityImple _imple = new UserActivityImple();
+
+    static
+    {
+	try
+	{
+	    com.arjuna.mw.wsas.utils.Configuration.initialise("/wsas.xml");
+	}
+	catch (FileNotFoundException ex)
+	{
+	}
+	catch (Exception ex)
+	{
+	    throw new ExceptionInInitializerError(ex.toString());
+	}
+    }
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHandle.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHandle.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHandle.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: ActivityHandle.java,v 1.1 2002/11/25 10:51:40 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.activity;
+
+/**
+ * ActivityHandle is used as a representation of a single activity
+ * when it is suspended from a running thread and may be later
+ * resumed. The implementation of the token can be as lightweight
+ * as required by the underlying implementation in order that it
+ * can uniquely represent all activity instances.
+ *
+ * Since this is a client-facing class, it is unlikely that the
+ * application user will typically want to see the entire activity
+ * context in order to simply suspend it from the thread.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityHandle.java,v 1.1 2002/11/25 10:51:40 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface ActivityHandle
+{
+    /**
+     * @return the timeout associated with this activity.
+     */
+
+    public int getTimeout ();
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     *
+     * Two instances are equal if the refer to the same transaction.
+     *
+     * @return <code>true</code> if the two objects are the same,
+     * <code>false</code> otherwise.
+     */
+
+    public boolean equals (Object obj);
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     *
+     * @return the hash value for the target.
+     */
+
+    public int hashCode ();
+
+    /**
+     * @return whether or not this is a valid handle.
+     */
+
+    public boolean valid ();
+
+    /**
+     * @return the unique activity identifier.
+     */
+
+    public String tid ();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHierarchy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHierarchy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/ActivityHierarchy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,108 @@
+/*
+ * 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: ActivityHierarchy.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.activity;
+
+/**
+ * This class represents a handle on a stack of activities.
+ * It should only be used for suspending and resuming the
+ * thread-to-activity association.
+ *
+ * The activity at the top of the stack is the current activity.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityHierarchy.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface ActivityHierarchy
+{
+    /**
+     * @return the number of activities associated with this stack.
+     */
+
+    public int size ();
+    
+    /**
+     * @return whether or not this is a valid context. If a single entry in
+     * the context is invalid then we assume the entire context is.
+     */
+
+    public boolean valid ();
+
+    /**
+     * @param index index of the specific activity in the stack.
+     * @exception IndexOutOfBoundsException Thrown if the activity number
+     * is too large or small.
+     * @return the activity handle.
+     */
+
+    public ActivityHandle activity (int index) throws IndexOutOfBoundsException;
+
+    /**
+     * @return the current activity in the context.
+     */
+
+    public ActivityHandle current ();
+
+    /**
+     * Obtain a copy of this context. Although the context may be shared
+     * between different threads, the same instance of the context should
+     * not be.
+     *
+     * @return the context copy.
+     */
+
+    public ActivityHierarchy copy ();
+
+    /**
+     * Overrides Object.equals
+     *
+     * Two contexts are equal if both hierarchies are identical.
+     *
+     * @return <code>true</code> if the two objects are the same,
+     * <code>false</code> otherwise.
+     */
+
+    public boolean equals (Object obj);
+
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     *
+     * @return the hash value for the target.
+     */
+
+    public int hashCode ();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/HLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/HLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/HLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,136 @@
+/*
+ * 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: HLS.java,v 1.2 2005/05/19 12:13:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.activity;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * An HLS is registered with activities to be informed of their lifecycle
+ * and to augment the basic notion of what an activity is.
+ *
+ * Currently each HLS is registered globally so that all activities on
+ * all threads know about them. However, we may want to have finer
+ * granularity such that an HLS may only be registered with a specific
+ * thread.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HLS.java,v 1.2 2005/05/19 12:13:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface HLS
+{
+
+    /**
+     * An activity has begun and is active on the current thread.
+     *
+     * @exception SystemException Thrown if an error occurs. Any error
+     * will cause the activity to be failed.
+     */
+
+    public void begun () throws SystemException;
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param cs The completion status to use.
+     *
+     * @exception SystemException Thrown if an error occurs. Any error
+     * will cause the activity to be failed.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    /*
+     * How do we deal with the case where an HLS has seen the activity to
+     * be completing successfully then another sets it to fail? Unless we
+     * introduce a multi-phase completion protocol this will always be
+     * a problem.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException;
+
+    /**
+     * The activity is being suspended, but is still active on the current
+     * thread.
+     */
+
+    public void suspended () throws SystemException;
+
+    /**
+     * The activity has been resumed on the current thread and is active on
+     * that thread.
+     */
+
+    public void resumed () throws SystemException;
+
+    /**
+     * The activity has completed and is still active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException;
+
+    /**
+     * The HLS name.
+     */
+
+    public String identity () throws SystemException;
+
+    /**
+     * The activity service maintains a priority ordered list of HLS
+     * implementations. If an HLS wishes to be ordered based on priority
+     * then it can return a non-negative value: the higher the value,
+     * the higher the priority and hence the earlier in the list of HLSes
+     * it will appear (and be used in).
+     *
+     * @return a positive value for the priority for this HLS, or zero/negative
+     * if the order is not important.
+     */
+
+    public int priority () throws SystemException;
+
+    /**
+     * Return the context augmentation for this HLS, if any on the current
+     * activity, i.e., the activity active on the current thread.
+     *
+     * @return a context object or null if no augmentation is necessary.
+     */
+
+    public Context context () throws SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/Outcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/Outcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/Outcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+/*
+ * 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: Outcome.java,v 1.2 2005/05/19 12:13:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.activity;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The Outcome represents the final outcome of the activity. Because
+ * different HLS implementations will have different requirements
+ * on what they can or cannot return, this interface is deliberately
+ * generic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Outcome.java,v 1.2 2005/05/19 12:13:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Outcome
+{
+
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException;
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+
+    public CompletionStatus completedStatus () throws SystemException;
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/OutcomeManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/OutcomeManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/activity/OutcomeManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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: OutcomeManager.java,v 1.3 2005/05/19 12:13:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.activity;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * When multiple HLSs are registered with the activity service, some
+ * means of collating their Outcome responses may be required.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: OutcomeManager.java,v 1.3 2005/05/19 12:13:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface OutcomeManager
+{
+
+    /**
+     * Given the current (composite) Outcome and the Outcome just obtained
+     * from an HLS, the OutcomeManager may return a new Outcome.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the Oucome or null.
+     */
+
+    public Outcome processOutcome (Outcome current, Outcome next) throws SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/Environment.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/Environment.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/Environment.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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: Environment.java,v 1.5 2004/03/15 13:24:59 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.common;
+
+/**
+ */
+
+public class Environment
+{
+
+    public static final String ACTIVITY_TIMEOUT = "com.arjuna.mw.wsas.activityTimeout";
+    public static final String REAPER_MODE = "com.arjuna.mw.wsas.reaperMode";
+    public static final String REAPER_TIMEOUT = "com.arjuna.mw.wsas.reaperTimeout";
+
+    // to remove
+
+    public static final String DEPLOYMENT_CONTEXT = "com.arjuna.mw.wsas.deploymentContext";
+    
+    public static final String REPLAY_TIMEOUT = "com.arjuna.mw.wsas.replayTimeout" ;
+    
+    public static final String REPLAY_COUNT = "com.arjuna.mw.wsas.replayCount" ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/GlobalId.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/GlobalId.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/common/GlobalId.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: GlobalId.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.common;
+
+/**
+ * Implementations of this interface provide globally unique identifications
+ * for activities.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: GlobalId.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface GlobalId
+{
+
+    /**
+     * Two instances are identical if their targets are the same.
+     */
+
+    public boolean equals (Object obj);
+    
+    /**
+     * @return the byte stream representing this instance.
+     */
+
+    public byte[] value ();
+    
+    /**
+     * @return <code>true</code> if this instance is valid, <code>false</code>
+     * otherwise.
+     */
+
+    public boolean valid ();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/CompletionStatus.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/CompletionStatus.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/CompletionStatus.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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: CompletionStatus.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.completionstatus;
+
+/**
+ * Implementations of this interface represent the various ways in which
+ * an activity can terminate. Services are expected to extend this in
+ * specific ways. Uniqueness is guaranteed by the package scope of the
+ * final implementation.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: CompletionStatus.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+/*
+ * There is an argument that the basic activity service layer should know
+ * nothing about success of failure and hence does not need completion
+ * statuses. We have them here for now until we decide to remove them!
+ */
+
+public interface CompletionStatus
+{
+
+    /**
+     * Two statuses are equal if their targets are the same.
+     */
+
+    public boolean equals (Object param);
+ 
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Failure.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Failure.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Failure.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Failure.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.completionstatus;
+
+/**
+ * The activity has terminated in a failed state. The activity state can
+ * toggle between this and any other state.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Failure.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Failure implements CompletionStatus
+{
+
+    public static Failure instance ()
+    {
+	return _instance;
+    }
+
+    /**
+     * Two statuses are equal if their targets are the same.
+     */
+
+    public boolean equals (Object param)
+    {
+	if (this == param)
+	    return true;
+	else
+	{
+	    if (param instanceof Failure)
+		return true;
+	    else
+		return false;
+	}
+    }	
+
+    public String toString ()
+    {
+	return "CompletionStatus.Failure";
+    }
+
+    private Failure ()
+    {
+    }
+
+    private static final Failure _instance = new Failure();
+ 
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/FailureOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/FailureOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/FailureOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: FailureOnly.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.completionstatus;
+
+/**
+ * The activity has terminated in a failure state. Once in this state, the
+ * activity state cannot transition further.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: FailureOnly.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class FailureOnly implements CompletionStatus
+{
+
+    public static FailureOnly instance ()
+    {
+	return _instance;
+    }
+
+    /**
+     * Two statuses are equal if their targets are the same.
+     */
+
+    public boolean equals (Object param)
+    {
+	if (this == param)
+	    return true;
+	else
+	{
+	    if (param instanceof FailureOnly)
+		return true;
+	    else
+		return false;
+	}
+    }	
+
+    public String toString ()
+    {
+	return "CompletionStatus.FailureOnly";
+    }
+
+    private FailureOnly ()
+    {
+    }
+
+    private static final FailureOnly _instance = new FailureOnly();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Success.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Success.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Success.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Success.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.completionstatus;
+
+/**
+ * The activity has terminated in a success state. The activity state can
+ * toggle between this and any other state.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Success.java,v 1.1 2002/11/25 10:51:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Success implements CompletionStatus
+{
+
+    public static Success instance ()
+    {
+	return _instance;
+    }
+
+    /**
+     * Two statuses are equal if their targets are the same.
+     */
+
+    public boolean equals (Object param)
+    {
+	if (this == param)
+	    return true;
+	else
+	{
+	    if (param instanceof Success)
+		return true;
+	    else
+		return false;
+	}
+    }	
+
+    public String toString ()
+    {
+	return "CompletionStatus.Success";
+    }
+
+    private Success ()
+    {
+    }
+
+    private static final Success _instance = new Success();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Unknown.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Unknown.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/completionstatus/Unknown.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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: Unknown.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.completionstatus;
+
+/**
+ * The completion status is unknown. This is a transient and should eventually
+ * become determined.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Unknown.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Unknown implements CompletionStatus
+{
+
+    /**
+     * Two statuses are equal if their targets are the same.
+     */
+
+    public boolean equals (Object param)
+    {
+	return this.equals(param);
+    }	
+
+    public String toString ()
+    {
+	return "CompletionStatus.Unknown";
+    }
+ 
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/Context.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/Context.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/Context.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Context.java,v 1.2.24.1 2005/11/22 10:31:42 kconner Exp $
+ */
+
+package com.arjuna.mw.wsas.context;
+
+/**
+ * The context is formed by the various HLSs that are present.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Context.java,v 1.2.24.1 2005/11/22 10:31:42 kconner Exp $
+ * @since 1.0.
+ */
+
+public interface Context
+{
+    /**
+     * @return the name of this context.
+     */
+    public String identifier() ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/ContextManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/ContextManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/ContextManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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: ContextManager.java,v 1.3 2005/05/19 12:13:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.context;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import com.arjuna.mw.wsas.ActivityManager;
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+
+import com.arjuna.mw.wsas.activity.HLS;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: ContextManager.java,v 1.3 2005/05/19 12:13:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ContextManager
+{
+
+    public ContextManager ()
+    {
+	_manager = ActivityManagerFactory.activityManager();
+    }
+
+    /**
+     * @message com.arjuna.mw.wsas.context.ContextManager_1 [com.arjuna.mw.wsas.context.ContextManager_1] - allHighLevelServices threw: 
+     * @message com.arjuna.mw.wsas.context.ContextManager_2 [com.arjuna.mw.wsas.context.ContextManager_2] - assembling contexts and received: 
+     */
+
+    public final Context[] contexts ()
+    {
+	Context[] ctxs = null;
+	HLS[] services = null;
+
+	try
+	{
+	    services = _manager.allHighLevelServices();
+	}
+	catch (Exception ex)
+	{
+	    wsasLogger.arjLoggerI18N.warn("com.arjuna.mw.wsas.context.ContextManager_1",
+					  new Object[]{ex});
+	}
+	
+	if (services != null)
+	{
+	    /*
+	     * Null entries are allowed and should be ignored.
+	     */
+
+	    ctxs = new Context[services.length];
+
+	    try
+	    {
+		//		ActivityHierarchy ctx = _activity.currentActivity();
+
+		/*
+		 * Check for null or leave to hls? (leave to hls at
+		 * the moment).
+		 */
+
+		for (int i = 0; i < services.length; i++)
+		    ctxs[i] = services[i].context();
+	    }
+	    catch (Exception ex)
+	    {
+		wsasLogger.arjLoggerI18N.warn("com.arjuna.mw.wsas.context.ContextManager_2",
+					      new Object[]{ex});
+		
+		ctxs = null;
+	    }
+	}
+	
+	return ctxs;
+    }
+
+    private ActivityManager _manager;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,45 @@
+/*
+ * 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: DeploymentContext.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.context;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContext.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface DeploymentContext
+{
+
+    public Context context ();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContextFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContextFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/DeploymentContextFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: DeploymentContextFactory.java,v 1.4 2004/03/15 13:25:00 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.context;
+
+import com.arjuna.mw.wsas.common.Environment;
+
+import com.arjuna.mwlabs.wsas.context.DeploymentContextImple;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContextFactory.java,v 1.4 2004/03/15 13:25:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+/*
+ * This is left over from an attempt at some fancy stuff in an early
+ * version of the WS-AS spec. That is not gone and this class (and all of
+ * its users) needs to go to. Braindead! Uggh!!
+ */
+
+public class DeploymentContextFactory
+{
+    
+    public static DeploymentContext deploymentContext ()
+    {
+	return _deployContext;
+    }
+    
+    private static DeploymentContext _deployContext = null;
+
+    static
+    {
+	String contextImple = System.getProperty(Environment.DEPLOYMENT_CONTEXT);
+
+	try
+	{
+	    if (contextImple != null)
+	    {
+		Class c = Class.forName(contextImple);
+
+		_deployContext = (DeploymentContext) c.newInstance();
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (_deployContext == null)
+	    _deployContext = new DeploymentContextImple();
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/corba/IIOPContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/corba/IIOPContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/corba/IIOPContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: IIOPContext.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.context.corba;
+
+import com.arjuna.mw.wsas.context.Context;
+
+/**
+ */
+
+public interface IIOPContext extends Context
+{
+
+    /**
+     * @return the position in the Service Context for this information.
+     */
+
+    public int position ();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/soap/SOAPContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/soap/SOAPContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/context/soap/SOAPContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: SOAPContext.java,v 1.3.24.1 2005/11/22 10:31:41 kconner Exp $
+ */
+
+package com.arjuna.mw.wsas.context.soap;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.mw.wsas.context.Context;
+
+/**
+ */
+
+public interface SOAPContext extends Context
+{
+    /**
+     * 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);
+
+    /**
+     * Initialise the implementation using the parameter provided.
+     */
+    public void initialiseContext(Object obj);
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActiveChildException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActiveChildException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActiveChildException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: ActiveChildException.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if an attempt is made to complete an activity that has active
+ * child activities and at least one of the registered HLSs determines
+ * the it is an invalid condition.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActiveChildException.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ActiveChildException extends WSASException
+{
+
+    public ActiveChildException ()
+    {
+	super();
+    }
+
+    public ActiveChildException (String s)
+    {
+	super(s);
+    }
+
+    public ActiveChildException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActivityFailedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActivityFailedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ActivityFailedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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: ActivityFailedException.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if the activity has failed.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityFailedException.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ActivityFailedException extends WSASException
+{
+
+    public ActivityFailedException ()
+    {
+	super();
+    }
+
+    public ActivityFailedException (String s)
+    {
+	super(s);
+    }
+
+    public ActivityFailedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSError.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSError.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSError.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: HLSError.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * An HLS may throw this error whenever a serious problem is encountered.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HLSError.java,v 1.1 2002/11/25 10:51:42 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HLSError extends Error
+{
+
+    public HLSError ()
+    {
+	super();
+    }
+
+    public HLSError (String s)
+    {
+	super(s);
+    }
+
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/HLSException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: HLSException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown the HLS completion fails. Allows the actual exception to be
+ * passed as an outcome.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HLSException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HLSException extends SystemException
+{
+
+    public HLSException ()
+    {
+	super();
+    }
+
+    public HLSException (String reason)
+    {
+	super(reason);
+    }
+
+    public HLSException (String reason, int errorcode)
+    {
+	super(reason, errorcode);
+    }
+
+    public HLSException (String reason, SystemException obj)
+    {
+	super(reason, obj);
+    }
+    
+    public HLSException (SystemException ex)
+    {
+	super(ex);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidActivityException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidActivityException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidActivityException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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: InvalidActivityException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if an attempt is made to utilise an unknown activity.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidActivityException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidActivityException extends WSASException
+{
+
+    public InvalidActivityException ()
+    {
+	super();
+    }
+
+    public InvalidActivityException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidActivityException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidHLSException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidHLSException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidHLSException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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: InvalidHLSException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if an attempt is made to unregister an unknown HLS from the activity.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidHLSException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidHLSException extends WSASException
+{
+
+    public InvalidHLSException ()
+    {
+	super();
+    }
+
+    public InvalidHLSException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidHLSException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidParentException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidParentException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidParentException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: InvalidParentException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * The parent activity was invalid in the scope it was intended to be
+ * used.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidParentException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidParentException extends WSASException
+{
+
+    public InvalidParentException ()
+    {
+	super();
+    }
+
+    public InvalidParentException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidParentException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidSecurityOptionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidSecurityOptionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidSecurityOptionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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: InvalidSecurityOptionException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * The invoker does not have sufficient access rights to attempt the
+ * operation. For example, obtaining all of the coordinator implementations
+ * that are provided by the underlying implementation.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidSecurityOptionException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidSecurityOptionException extends WSASException
+{
+
+    public InvalidSecurityOptionException ()
+    {
+	super();
+    }
+
+    public InvalidSecurityOptionException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidSecurityOptionException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidTimeoutException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidTimeoutException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/InvalidTimeoutException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: InvalidTimeoutException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if the timeout value associated with the invoking thread
+ * which should be applied to newly created activities is invalid.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidTimeoutException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidTimeoutException extends WSASException
+{
+
+    public InvalidTimeoutException ()
+    {
+	super();
+    }
+
+    public InvalidTimeoutException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidTimeoutException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NestingNotAllowedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NestingNotAllowedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NestingNotAllowedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: NestingNotAllowedException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Not all HLSs allow nesting of activities to occur. This
+ * exception is thrown if an attempt is made to create a new activity
+ * when a activity is already associated with the invoking thread and
+ * the activity implementation does not support nesting.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestingNotAllowedException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NestingNotAllowedException extends HLSException
+{
+
+    public NestingNotAllowedException ()
+    {
+	super();
+    }
+
+    public NestingNotAllowedException (String s)
+    {
+	super(s);
+    }
+
+    public NestingNotAllowedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoActivityException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoActivityException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoActivityException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NoActivityException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if there is no activity associated with the invoking
+ * thread and one needs to be in order to execute the operation.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NoActivityException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NoActivityException extends WSASException
+{
+
+    public NoActivityException ()
+    {
+	super();
+    }
+
+    public NoActivityException (String s)
+    {
+	super(s);
+    }
+
+    public NoActivityException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoPermissionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoPermissionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/NoPermissionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NoPermissionException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * The invoking thread does not have permission to attempt to use the
+ * operation. For example, some activity implementations only allow
+ * the creating thread to terminate an activity.
+ *
+ * Do we want to remove this and replace it with SecurityException, as
+ * the JTA has done?
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NoPermissionException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NoPermissionException extends WSASException
+{
+
+    public NoPermissionException ()
+    {
+	super();
+    }
+
+    public NoPermissionException (String s)
+    {
+	super(s);
+    }
+
+    public NoPermissionException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ProtocolViolationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ProtocolViolationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/ProtocolViolationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ProtocolViolationException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if the underlying protocol is violated in some way during
+ * termination. For example, a two-phase commit protocol is necessarily
+ * blocking to ensure consensus in the precence of failures. However,
+ * this could mean that participants who have been prepared have to wait
+ * forever if they don't get told the results of the transaction by the
+ * (failed) coordinator. As such, heuristics were introduced to allow
+ * a participant to make a unilateral decision about what to do. If this
+ * decision goes against the coordinator's choice then the two-phase
+ * protocol is violated.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolViolationException.java,v 1.1 2002/11/25 10:51:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolViolationException extends WSASException
+{
+
+    public ProtocolViolationException ()
+    {
+	super();
+    }
+
+    public ProtocolViolationException (String s)
+    {
+	super(s);
+    }
+
+    public ProtocolViolationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemCommunicationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemCommunicationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemCommunicationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,53 @@
+/*
+ * 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, a division of Red Hat.
+ */
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Marker interface for exceptions e.g. timeouts, in the client/server communication.
+ */
+public class SystemCommunicationException extends SystemException {
+
+	public SystemCommunicationException ()
+	{
+		super();
+	}
+
+	public SystemCommunicationException (String s)
+	{
+		super(s);
+	}
+
+	public SystemCommunicationException (String s, int errorcode)
+	{
+		super(s, errorcode);
+	}
+
+	public SystemCommunicationException (String reason, Object obj)
+	{
+		super(reason, obj);
+	}
+
+	public SystemCommunicationException (Object ex)
+	{
+		super(ex);
+	}
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/SystemException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SystemException.java,v 1.2 2005/05/19 12:13:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if an error occurs which is not met by another specific exception.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SystemException.java,v 1.2 2005/05/19 12:13:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SystemException extends WSASException
+{
+
+	public SystemException ()
+	{
+		super();
+	}
+
+	public SystemException (String s)
+	{
+		super(s);
+	}
+
+	public SystemException (String s, int errorcode)
+	{
+		super(s, errorcode);
+	}
+
+	public SystemException (String reason, Object obj)
+	{
+		super(reason, obj);
+	}
+
+	public SystemException (Object ex)
+	{
+		super(ex);
+	}
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WSASException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WSASException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WSASException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,136 @@
+/*
+ * 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: WSASException.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * This is the base class from which all WSAS related exceptions
+ * inherit. It provides several kinds of additional information:
+ *
+ * (i) a string describing the error.
+ * (ii) an integer code for the error.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WSASException.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class WSASException extends Exception
+{
+
+    /**
+     * Constructs a WSASException object; reason defaults to null and
+     * errorcode defaults to 0.
+     */
+
+    public WSASException ()
+    {
+	super();
+
+	_errorCode = 0;
+	_data = null;
+    }
+
+    /**
+     * Constructs a WSASException object with the specified reason.
+     * errorcode defaults to 0.
+     */
+
+    public WSASException (String reason)
+    {
+	super(reason);
+
+	_errorCode = 0;
+	_data = null;
+    }
+
+    /**
+     * Constructs a WSASException object with the specified reason and
+     * errorcode.
+     */
+
+    public WSASException (String reason, int errorcode)
+    {
+	super(reason);
+	
+	_errorCode = errorcode;
+	_data = null;
+    }
+
+    /**
+     * Constructs a WSASException object with the specified reason and
+     * object.
+     */
+
+    public WSASException (String reason, Object obj)
+    {
+	super(reason);
+	
+	_errorCode = 0;
+	_data = obj;
+    }
+
+    /**
+     * Constructs a WSASException object with the specified object.
+     */
+
+    public WSASException (Object obj)
+    {
+	super();
+	
+	_errorCode = 0;
+	_data = obj;
+    }
+
+    /**
+     * @return the errorcode associated with this exception.
+     */
+
+    public final int getErrorCode ()
+    {
+	return _errorCode;
+    }
+
+    /**
+     * @return the data object associated with this exception.
+     */
+    
+    public final Object getData ()
+    {
+	return _data;
+    }
+    
+    private int    _errorCode;
+    private Object _data;
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WrongStateException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WrongStateException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/exceptions/WrongStateException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: WrongStateException.java,v 1.2 2003/04/04 14:59:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.exceptions;
+
+/**
+ * Thrown if the state of the activity is such that it disallows the
+ * attempted operation. For example, the activity is committing and
+ * a participant that has prepared attempts to resign.
+ *
+ * Do we want to remove this and replace it with IllegalStateException as
+ * is done in the JTA?
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WrongStateException.java,v 1.2 2003/04/04 14:59:51 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class WrongStateException extends WSASException
+{
+
+    public WrongStateException ()
+    {
+	super();
+    }
+
+    public WrongStateException (String s)
+    {
+	super(s);
+    }
+
+    public WrongStateException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2005,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: wsasLogger.java,v 1.2 2005/05/19 12:13:17 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.logging;
+
+import com.arjuna.common.util.logging.*;
+
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+
+import java.util.*;
+
+public class wsasLogger
+{
+
+    public static LogNoi18n      arjLogger;
+    public static Logi18n        arjLoggerI18N;
+    public static ResourceBundle log_mesg;
+
+    private static String language;
+    private static String country;
+    private static Locale currentLocale;
+    private static String dirLocale;
+
+    static
+    {
+    /** Ensure the properties are loaded before initialising the logger **/
+    arjPropertyManager.getPropertyManager();
+        
+	arjLogger = LogFactory.getLogNoi18n("com.arjuna.mw.wsas.logging.wsasLogger");
+
+	language = commonPropertyManager.propertyManager.getProperty("language","en");
+	country  = commonPropertyManager.propertyManager.getProperty("country","US");
+
+	currentLocale = new Locale(language,country);
+	log_mesg = ResourceBundle.getBundle("wsas_msg",currentLocale);
+	
+	arjLoggerI18N = LogFactory.getLogi18n("com.arjuna.mw.wsas.logging.wsasLoggerI18N",
+					     "wsas_msg_"+language+"_"+country);
+	
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Active.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Active.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Active.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Active.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * The activity is active.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Active.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Active implements Status
+{
+
+    public static Active instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.Active";
+    }
+
+    private Active ()
+    {
+    }
+
+    private static final Active _instance = new Active();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completed.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completed.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completed.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Completed.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * The activity has completed.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Completed.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Completed implements Status
+{
+
+    public static Completed instance ()
+    {
+	return _instance;
+    }
+
+    public String toString ()
+    {
+	return "Status.Completed";
+    }
+
+    private Completed ()
+    {
+    }
+
+    private static final Completed _instance = new Completed();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completing.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completing.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Completing.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Completing.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * The activity is in the process of completing.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Completing.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Completing implements Status
+{
+
+    public static Completing instance ()
+    {
+	return _instance;
+    }
+
+    public String toString ()
+    {
+	return "Status.Completing";
+    }
+
+    private Completing ()
+    {
+    }
+
+    private static final Completing _instance = new Completing();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Created.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Created.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Created.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Created.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * The activity has been created and is yet to start executing.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Created.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Created implements Status
+{
+
+    public static Created instance ()
+    {
+	return _instance;
+    }
+
+    public String toString ()
+    {
+	return "Status.Created";
+    }
+
+    private Created ()
+    {
+    }
+
+    private static final Created _instance = new Created();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/NoActivity.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/NoActivity.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/NoActivity.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NoActivity.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * There is no activity associated with the invoking thread.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: NoActivity.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NoActivity implements Status
+{
+
+    public static NoActivity instance ()
+    {
+	return _instance;
+    }
+
+    public String toString ()
+    {
+	return "Status.NoActivity";
+    }
+
+    private NoActivity ()
+    {
+    }
+
+    private static final NoActivity _instance = new NoActivity();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Status.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Status.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Status.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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: Status.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * This interface is the basis for all statuses that the activity can go
+ * through. Services are expected to extend this in
+ * specific ways. Uniqueness is guaranteed by the package scope of the
+ * final implementation.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Status.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Status
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Unknown.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Unknown.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/status/Unknown.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Unknown.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.status;
+
+/**
+ * The current status of the activity is unknown. This should be a transient.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Unknown.java,v 1.1 2002/11/25 10:51:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Unknown implements Status
+{
+
+    public static Unknown instance ()
+    {
+	return _instance;
+    }
+
+    public String toString ()
+    {
+	return "Status.Unknown";
+    }
+
+    private Unknown ()
+    {
+    }
+
+    private static final Unknown _instance = new Unknown();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/utils/Configuration.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/utils/Configuration.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mw/wsas/utils/Configuration.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,134 @@
+/*
+ * 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: Configuration.java,v 1.6 2005/05/19 12:13:17 nmcl Exp $
+ */
+
+package com.arjuna.mw.wsas.utils;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import java.net.URL;
+
+import java.io.FileNotFoundException;
+
+import javax.xml.parsers.*;
+
+/**
+ */
+
+public class Configuration
+{
+
+    public static final String PROPERTIES = "properties";
+    public static final String PROPERTY = "property";
+
+    /**
+     * @message com.arjuna.mw.wsas.utils.Configuration_1 [com.arjuna.mw.wsas.utils.Configuration_1] -  not found.
+     */
+
+    public static final void initialise (String fileName) throws Exception
+    {
+	/*
+	 * Locate the configuration file.
+	 */
+
+	URL url = Configuration.class.getResource(fileName);
+
+	if (url == null)
+	{
+	    throw new FileNotFoundException(fileName);
+	    
+	    //	    throw new FileNotFoundException(fileName+wsasLogger.log_mesg.getString("com.arjuna.mw.wsas.utils.Configuration_1"));
+	}
+	else
+	    initialise(url);
+    }
+
+    /**
+     * @message com.arjuna.mw.wsas.utils.Configuration_2 [com.arjuna.mw.wsas.utils.Configuration_2] -  Failed to create doc 
+     */
+
+    public static final void initialise (URL url) throws Exception
+    {
+	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	DocumentBuilder builder = factory.newDocumentBuilder();
+	org.w3c.dom.Document doc = builder.parse(url.toExternalForm());
+	    
+	if (doc == null)
+	{
+	    throw new FileNotFoundException(wsasLogger.log_mesg.getString("com.arjuna.mw.wsas.utils.Configuration_2")+" "+url);
+	}
+	
+	org.w3c.dom.NodeList children = getProperties(doc.getDocumentElement());
+
+	if (children != null)
+	{
+	    for (int i = 0; i < children.getLength(); i++)
+	    {
+		org.w3c.dom.Node item = children.item(i);
+	    
+		if (item.getNodeName().equals(PROPERTY))
+		{
+		    org.w3c.dom.Element type = (org.w3c.dom.Element) item;
+		    
+		    String name = type.getAttribute("name");
+		    String value = type.getAttribute("value");
+		
+		    if ((name != null) && (value != null))
+			System.setProperty(name, value);
+		}
+	    }
+	}
+    }
+
+    private static final org.w3c.dom.NodeList getProperties (org.w3c.dom.Node elem)
+    {
+	org.w3c.dom.NodeList children = elem.getChildNodes();
+
+	for (int i = 0; i < children.getLength(); i++)
+	{
+	    org.w3c.dom.Node item = children.item(i);
+
+	    if (item.getNodeName().equals(PROPERTIES))
+	    {
+		return item.getChildNodes();
+	    }
+	    else
+	    {
+		org.w3c.dom.NodeList descendants = getProperties(item);
+		
+		if (descendants != null)
+		    return descendants;
+	    }
+	}
+
+	return null;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/ActivityManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/ActivityManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/ActivityManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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: ActivityManagerImple.java,v 1.2 2005/05/19 12:13:17 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas;
+
+import com.arjuna.mw.wsas.ActivityManager;
+
+import com.arjuna.mw.wsas.activity.HLS;
+import com.arjuna.mw.wsas.activity.OutcomeManager;
+
+import com.arjuna.mwlabs.wsas.activity.HLSManager;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidHLSException;
+
+/**
+ * The activity manager is the way in which an HLS can register
+ * itself with the activity service. This allows it to be informed
+ * of the lifecycle of activities and to augment that lifecyle and
+ * associated context.
+ *
+ * An HLS can be associated with all threads (globally) or with only
+ * a specific thread (locally).
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityManagerImple.java,v 1.2 2005/05/19 12:13:17 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ActivityManagerImple implements ActivityManager
+{
+
+    public ActivityManagerImple ()
+    {
+    }
+    
+    public void addHLS (HLS service) throws InvalidHLSException, SystemException
+    {
+	HLSManager.addHLS(service);
+    }
+
+    public void removeHLS (HLS service) throws InvalidHLSException, SystemException
+    {
+	HLSManager.removeHLS(service);
+    }
+
+    public HLS[] allHighLevelServices () throws SystemException
+    {
+	return HLSManager.allHighLevelServices();
+    }
+
+    public void setOutcomeManager (OutcomeManager om) throws SystemException
+    {
+	HLSManager.setOutcomeManager(om);
+    }
+
+    public OutcomeManager getOutcomeManager () throws SystemException
+    {
+	return HLSManager.getOutcomeManager();
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/UserActivityImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/UserActivityImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/UserActivityImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,647 @@
+/*
+ * 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: UserActivityImple.java,v 1.4 2005/03/10 15:37:00 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import com.arjuna.mw.wsas.UserActivity;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityHierarchyImple;
+import com.arjuna.mwlabs.wsas.activity.ActivityHandleImple;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.FailureOnly;
+
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+import com.arjuna.mwlabs.wsas.activity.HLSManager;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.ActiveChildException;
+
+import java.util.Stack;
+
+import java.util.EmptyStackException;
+
+/**
+ * The user portion of the activity API. An implementation of this interface
+ * presents each thread with the capability to create and manage activities.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserActivityImple.java,v 1.4 2005/03/10 15:37:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UserActivityImple implements UserActivity
+{
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. An implementation specific
+     * timeout will be associated with the activity (which may be no
+     * timeout).
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void start () throws WrongStateException, SystemException
+    {
+	try
+	{
+	    start(getTimeout());
+	}
+	catch (InvalidTimeoutException ex)
+	{
+	}
+    }
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested.
+     *
+     * @param int timeout The timeout associated with the activity. If the
+     * activity has not been terminated by the time this period elapses, then
+     * it will automatically be terminated.
+     * @exception WrongStateException Thrown if the currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted as a child.
+     * @exception InvalidTimeoutException Thrown if the specified timeout is
+     * invalid within the current working environment.
+     * @exception SystemException Thrown in any other situation.
+     *
+     * @message com.arjuna.mwlabs.wsas.UserActivityImple_1 [com.arjuna.mwlabs.wsas.UserActivityImple_1] - Activity.start caught: 
+     */
+
+    public void start (int timeout) throws WrongStateException, InvalidTimeoutException, SystemException
+    {
+	if (timeout < 0)
+	    throw new InvalidTimeoutException();
+	else
+	{
+	    if (timeout == 0)
+		timeout = getTimeout();
+	}
+
+	ActivityImple currentActivity = new ActivityImple(current());
+
+	currentActivity.start(timeout);
+
+	push(currentActivity);
+
+	HLS[] hls = HLSManager.allHighLevelServices();
+
+	if (hls != null)
+	{
+	    for (int i = 0; i < hls.length; i++)
+	    {
+		try
+		{
+		    hls[i].begun();
+		}
+		catch (SystemException ex)
+		{
+		    try
+		    {
+			setCompletionStatus(FailureOnly.instance());
+		    }
+		    catch (Exception e)
+		    {
+			wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_1",
+						      new Object[]{e});
+		    }
+
+		    throw ex;
+		}
+	    }
+	}
+    }
+    
+    /**
+     * Complete the activity with the current completion status.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception ActiveChildException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed.
+     * @exception ProtocolViolationException Thrown if a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.Outcome
+     *
+     * @message com.arjuna.mwlabs.wsas.UserActivityImple_2 [com.arjuna.mwlabs.wsas.UserActivityImple_2] - currentActivity.end threw: 
+     * @message com.arjuna.mwlabs.wsas.UserActivityImple_3 [com.arjuna.mwlabs.wsas.UserActivityImple_3] - Activity.completed caught: 
+     */
+
+    public Outcome end () throws InvalidActivityException, WrongStateException, ProtocolViolationException, SystemException, NoActivityException, SystemException, NoPermissionException, ActiveChildException
+    {
+	ActivityImple currentActivity = current();
+
+	if (currentActivity == null)
+	    throw new NoActivityException();
+
+	/*
+	if (currentActivity.parent() != null)
+	    throw new ActiveChildException();
+	*/
+
+	Outcome res = null;
+	
+	try
+	{
+	    res = currentActivity.end();
+	}
+	catch (Exception ex)
+	{
+	    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_1",
+					  new Object[]{ex});
+	}
+
+	HLS[] hls = HLSManager.allHighLevelServices();
+
+	if (hls != null)
+	{
+	    for (int i = 0; i < hls.length; i++)
+	    {
+		try
+		{
+		    hls[i].completed();
+		}
+		catch (SystemException ex)
+		{
+		    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_3",
+						  new Object[]{ex});
+		}
+	    }
+	}
+
+	pop();
+	
+	return res;
+    }
+
+    /**
+     * Complete the activity with the completion status provided.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception ActiveChildException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @param CompletionStatus cs The CompletionStatus to use.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.Outcome
+     */
+
+    public Outcome end (com.arjuna.mw.wsas.completionstatus.CompletionStatus cs) throws InvalidActivityException, WrongStateException, ProtocolViolationException, SystemException, NoActivityException, NoPermissionException, ActiveChildException
+    {
+	ActivityImple currentActivity = current();
+
+	if (currentActivity == null)
+	    throw new NoActivityException();
+
+	/*
+	if (currentActivity.parent() != null)
+	    throw new ActiveChildException();
+	*/
+
+	Outcome res = null;
+	
+	try
+	{
+	    res = currentActivity.end(cs);
+	}
+	catch (Exception ex)
+	{
+	    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_2",
+					  new Object[]{ex});
+	}
+
+	HLS[] hls = HLSManager.allHighLevelServices();
+
+	if (hls != null)
+	{
+	    for (int i = 0; i < hls.length; i++)
+	    {
+		try
+		{
+		    hls[i].completed();
+		}
+		catch (SystemException ex)
+		{
+		    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_3",
+						  new Object[]{ex});
+		}
+	    }
+	}
+
+	pop();
+	
+	return res;
+    }
+
+    /**
+     * Set the termination status for the current activity, if any.
+     *
+     * @param CompletionStatus endStatus The state in which the activity
+     * should attempt to terminate. This may
+     * be one of the default values provided by WSAS or may be extended in
+     * an implementation specific manner by an HLS.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception WrongStateException Thrown if the completion status is
+     * incompatible with the current state of the activity.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setCompletionStatus (CompletionStatus endStatus) throws NoActivityException, WrongStateException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+	
+	curr.setCompletionStatus(endStatus);
+    }
+
+    /**
+     * Get the completion status currently associated with the activity.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the current thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the termination status for the current activity, if any.
+     */
+
+    public CompletionStatus getCompletionStatus () throws NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+	else
+	    return curr.getCompletionStatus();
+    }
+
+    /**
+     * Get the timeout value currently associated with activities.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException
+    {
+	Integer t = (Integer) _timeouts.get();
+	int val = _defaultTimeout;
+	
+	if (t != null)
+	    val = t.intValue();
+	
+	return val;
+    }
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param int timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException
+    {
+	if (timeout < 0)
+	    throw new InvalidTimeoutException();
+	
+	_timeouts.set(new Integer(timeout));
+    }
+    
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current activity. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    return NoActivity.instance();
+	else
+	    return curr.status();
+    }
+
+    /**
+     * What is the name of the current activity? Use only for
+     * debugging purposes!
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the name of the activity.
+     */
+
+    public String activityName () throws NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();  // or return null?
+	else
+	    return curr.activityName();
+    }
+
+    public GlobalId activityId () throws NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();  // or return null?
+	else
+	    return curr.getGlobalId();
+    }
+	
+    /**
+     * Suspend the current activity from this thread and return the token
+     * representing the context, if any, or null otherwise. Once called, the
+     * thread will have no activities associated with it.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the token representing the current context, if any, or null
+     * otherwise.
+     *
+     * @message com.arjuna.mwlabs.wsas.UserActivityImple_4 [com.arjuna.mwlabs.wsas.UserActivityImple_4] - Activity.suspended caught: 
+     */
+
+    public ActivityHierarchy suspend () throws SystemException
+    {
+	HLS[] hls = HLSManager.allHighLevelServices();
+
+	if (hls != null)
+	{
+	    for (int i = 0; i < hls.length; i++)
+	    {
+		try
+		{
+		    hls[i].suspended();
+		}
+		catch (SystemException ex)
+		{
+		    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_4",
+						  new Object[]{ex});
+		}
+	    }
+	}
+
+	ActivityImple currentActivity = purge();
+	
+	if (currentActivity != null)
+	    return new ActivityHierarchyImple(currentActivity);
+	else
+	    return null;
+    }
+
+    /**
+     * Given a token representing a context, associate it with the current
+     * thread of control. This will implicitly disassociate the thread from any
+     * activities that it may already be associated with. If the parameter is
+     * null then the thread is associated with no activity.
+     *
+     * @param ActivityHierarchy tx The activity to associate with this thread. This
+     * may be null in which case the current thread becomes associated with
+     * no activity.
+     *
+     * @exception InvalidActivityException Thrown if the activity handle
+     * is invalid in this context.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @message com.arjuna.mwlabs.wsas.UserActivityImple_5 [com.arjuna.mwlabs.wsas.UserActivityImple_5] - Activity.resumed caught: 
+     * @message com.arjuna.mwlabs.wsas.UserActivityImple_51 [com.arjuna.mwlabs.wsas.UserActivityImple_51] - Unknown activity implementation!
+     */
+
+    public void resume (ActivityHierarchy tx) throws InvalidActivityException, SystemException
+    {
+	if (tx == null)
+	{
+	    purge();
+	}
+	else
+	{
+	    if (tx instanceof ActivityHierarchyImple)
+	    {
+		try
+		{
+		    for (int i = 0; i < tx.size(); i++)
+		    {
+			ActivityHandleImple handle = (ActivityHandleImple) tx.activity(i);
+			
+			push(handle.getActivity());
+		    }
+		}
+		catch (Exception ex)
+		{
+		    ex.printStackTrace();
+		    
+		    purge();
+		}
+	    }
+	    else
+		throw new InvalidActivityException(wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.UserActivityImple_51"));
+	}
+
+	HLS[] hls = HLSManager.allHighLevelServices();
+
+	if (hls != null)
+	{
+	    for (int i = 0; i < hls.length; i++)
+	    {
+		try
+		{
+		    hls[i].resumed();
+		}
+		catch (SystemException ex)
+		{
+		    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.UserActivityImple_5",
+						  new Object[]{ex});
+		}
+	    }
+	}
+    }
+
+    public ActivityHierarchy currentActivity () throws SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr != null)
+	    return new ActivityHierarchyImple(curr);
+	else
+	    return null;
+    }
+
+    public final ActivityImple current ()
+    {
+	Stack hier = (Stack) _threadAxData.get();
+	ActivityImple currentActivity = null;
+
+	if (hier != null)
+	{
+	    try
+	    {
+		currentActivity = (ActivityImple) hier.peek();
+	    }
+	    catch (EmptyStackException ex)
+	    {
+	    }
+	}
+
+	return currentActivity;
+    }
+    
+    private final void push (ActivityImple currentActivity)
+    {
+	Stack hier = (Stack) _threadAxData.get();
+
+	if (hier == null)
+	{
+	    hier = new Stack();
+
+	    _threadAxData.set(hier);
+	}
+
+	hier.push(currentActivity);
+    }
+    
+    private final ActivityImple pop ()
+    {
+	Stack hier = (Stack) _threadAxData.get();
+	ActivityImple currentActivity = null;
+	
+	if (hier != null)
+	{
+	    try
+	    {
+		currentActivity = (ActivityImple) hier.pop();
+
+		if (hier.size() == 0)
+		    _threadAxData.set(null);
+	    }
+	    catch (EmptyStackException ex)
+	    {
+	    }
+	}
+
+	return currentActivity;
+    }
+
+    private final ActivityImple purge ()
+    {
+	Stack hier = (Stack) _threadAxData.get();
+	ActivityImple currentActivity = null;
+	
+	if (hier != null)
+	{
+	    _threadAxData.set(null) ;
+	    try
+	    {
+		currentActivity = (ActivityImple) hier.peek();
+	    }
+	    catch (EmptyStackException ex)
+	    {
+	    }
+	}
+
+	return currentActivity;
+    }
+    
+    private static ThreadLocal _threadAxData = new ThreadLocal() ;
+    private static ThreadLocal _timeouts = new ThreadLocal() ;
+
+    private static final int _defaultTimeout = 0;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHandleImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHandleImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHandleImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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: ActivityHandleImple.java,v 1.1 2002/11/25 10:51:45 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+
+import com.arjuna.mw.wsas.activity.ActivityHandle;
+
+/**
+ * ActivityHandle is used as a representation of a single activity
+ * when it is suspended from a running thread and may be later
+ * resumed. The implementation of the token can be as lightweight
+ * as required by the underlying implementation in order that it
+ * can uniquely represent all activity instances.
+ *
+ * Since this is a client-facing class, it is unlikely that the
+ * application user will typically want to see the entire activity
+ * context in order to simply suspend it from the thread.
+ */
+
+public class ActivityHandleImple implements ActivityHandle
+{
+
+    public ActivityHandleImple (ActivityImple curr)
+    {
+	_theActivity = curr;
+	_valid = ((_theActivity == null) ? false : true);
+    }
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     *
+     * Two instances are equal if the refer to the same transaction.
+     */
+
+    public boolean equals (Object obj)
+    {
+	if (obj != null)
+	{
+	    if (obj == this)
+		return true;
+	    else
+	    {
+		if (obj instanceof ActivityHandleImple)
+		{
+		    if (_theActivity.equals(obj))
+			return true;
+		}
+	    }
+	}
+	
+	return false;
+    }
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     */
+
+    public int hashCode ()
+    {
+	return ((_theActivity == null) ? 0 : _theActivity.hashCode());
+    }
+
+    /**
+     * @return whether or not this is a valid handle.
+     */
+
+    public boolean valid ()
+    {
+	return _valid;
+    }
+
+    public int getTimeout ()
+    {
+	try
+	{
+	    return _theActivity.getTimeout();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    return -1;
+	}
+    }
+    
+    /**
+     * @return the activity identifier.
+     */
+
+    public String tid ()
+    {
+	return ((_theActivity == null) ? null : new String(_theActivity.getGlobalId().value()));
+    }
+
+    public final ActivityImple getActivity ()
+    {
+	return _theActivity;
+    }
+
+    public String toString ()
+    {
+	return tid();
+    }
+
+    private ActivityImple _theActivity;
+    private boolean       _valid;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHierarchyImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHierarchyImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityHierarchyImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,232 @@
+/*
+ * 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: ActivityHierarchyImple.java,v 1.1 2002/11/25 10:51:45 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.activity.ActivityHandle;
+
+import java.util.Stack;
+
+/**
+ * This class represents a handle on a stack of activities.
+ * It should only be used for suspending and resuming the
+ * thread-to-activity association.
+ *
+ * The activity at the top of the stack is the current activity.
+ */
+
+public class ActivityHierarchyImple implements ActivityHierarchy
+{
+
+    public ActivityHierarchyImple (ActivityImple current)
+    {
+	_hierarchy = new Stack();
+	
+	if (current != null)
+	{
+	    ActivityImple[] hierarchy = current.hierarchy();
+
+	    for (int i = 0; i < hierarchy.length; i++)
+		_hierarchy.push(new ActivityHandleImple(hierarchy[i]));
+
+	    _valid = true;
+	}
+	else
+	    _valid = false;
+    }
+    
+    /**
+     * @return the number of activities associated with this stack.
+     */
+
+    public int size ()
+    {
+	return _hierarchy.size();
+    }
+    
+    /**
+     * @return whether or not this is a valid context. If a single entry in
+     * the context is invalid then we assume the entire context is.
+     */
+
+    public boolean valid ()
+    {
+	return _valid;
+    }
+
+    /**
+     * @param the specific activity in the stack.
+     * @exception IndexOutOfBoundsException Thrown if the activity number
+     * is too large or small.
+     * @return the activity handle.
+     */
+
+    public ActivityHandle activity (int index) throws IndexOutOfBoundsException
+    {
+	try
+	{
+	    return (ActivityHandle) _hierarchy.elementAt(index);
+	}
+	catch (ArrayIndexOutOfBoundsException ex)
+	{
+	    throw new IndexOutOfBoundsException();
+	}
+    }
+
+    /**
+     * @return the current activity in the context.
+     */
+
+    public ActivityHandle current ()
+    {
+	try
+	{
+	    return (ActivityHandle) _hierarchy.peek();
+	}
+	catch (Exception ex)
+	{
+	    return null;
+	}
+    }
+
+    /**
+     * Obtain a copy of this context. Although the context may be shared
+     * between different threads, the same instance of the context should
+     * not be.
+     *
+     * @return the context copy.
+     */
+
+    public ActivityHierarchy copy ()
+    {
+	return new ActivityHierarchyImple(this);
+    }
+
+    /**
+     * Overrides Object.equals
+     *
+     * Two contexts are equal if both hierarchies are identical.
+     */
+
+    public boolean equals (Object obj)
+    {
+	if (obj != null)
+	{
+	    if (obj == this)
+		return true;
+	    else
+	    {
+		if (obj instanceof ActivityHierarchyImple)
+		{
+		    ActivityHierarchyImple compare = (ActivityHierarchyImple) obj;
+		    
+		    if (_hierarchy.size() == compare._hierarchy.size())
+		    {
+			for (int i = 0; i < _hierarchy.size(); i++)
+			{
+			    if (!_hierarchy.elementAt(i).equals(compare._hierarchy.elementAt(i)))
+			    {
+				return false;
+			    }
+			}
+			
+			return true;
+		    }
+		}
+		else
+		    return true;
+	    }
+	}
+	
+	return false;
+    }
+
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     */
+
+    public int hashCode ()
+    {
+	return _hierarchy.hashCode();
+    }
+
+    public String toString ()
+    {
+	String toReturn = "Activity context:";
+	
+	if ((_hierarchy == null) || (_hierarchy.size() == 0))
+	    toReturn += " null";
+	else
+	{
+	    for (int i = 0; i < _hierarchy.size(); i++)
+		toReturn += " "+_hierarchy.elementAt(i);
+	}
+
+	return toReturn;
+    }
+	
+    protected ActivityHierarchyImple (ActivityHierarchyImple toCopy)
+    {
+	_hierarchy = null;
+	_valid = false;
+	
+	if (toCopy != null)
+	{
+	    int copySize = toCopy._hierarchy.size();
+	    
+	    if (copySize > 0)
+	    {
+		_hierarchy = new Stack();
+	    
+		for (int i = 0; i < copySize; i++)
+		{
+		    /*
+		     * Do we want to create copies of the elements?
+		     */
+
+		    _hierarchy.push(toCopy._hierarchy.elementAt(i));
+		}
+
+		_valid = true;
+	    }
+	}
+    }
+    
+    private Stack   _hierarchy;
+    private boolean _valid;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,715 @@
+/*
+ * 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: ActivityImple.java,v 1.6 2005/05/19 12:13:18 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import com.arjuna.ats.internal.arjuna.template.OrderedList;
+import com.arjuna.ats.internal.arjuna.template.OrderedListIterator;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+// TODO: obtain via configuration
+
+import com.arjuna.mwlabs.wsas.common.arjunacore.GlobalIdImple;
+
+import com.arjuna.mwlabs.wsas.util.HLSWrapper;
+
+import com.arjuna.mw.wsas.status.Created;
+import com.arjuna.mw.wsas.status.Active;
+import com.arjuna.mw.wsas.status.Completing;
+import com.arjuna.mw.wsas.status.Completed;
+
+import com.arjuna.mw.wsas.completionstatus.Failure;
+import com.arjuna.mw.wsas.completionstatus.FailureOnly;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.status.Status;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.HLSException;
+
+import java.util.Hashtable;
+import java.util.Stack;
+import java.util.Enumeration;
+
+/**
+ * The Activity.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ActivityImple.java,v 1.6 2005/05/19 12:13:18 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ActivityImple
+{
+
+	public ActivityImple ()
+	{
+		this(null);
+	}
+
+	public ActivityImple (ActivityImple parent)
+	{
+		_parent = parent;
+		_children = new Hashtable();
+		_status = Created.instance();
+		_completionStatus = Failure.instance();
+		_activityId = new GlobalIdImple();
+		_timeout = 0;
+		_result = null;
+	}
+
+	/**
+	 * Start a new activity.
+	 * 
+	 * @param int
+	 *            timeout The timeout associated with the activity. If the
+	 *            activity has not been terminated by the time this period
+	 *            elapses, then it will automatically be terminated.
+	 * @exception WrongStateException
+	 *                Thrown if the currently associated activity is in a state
+	 *                that does not allow a new activity to be enlisted as a
+	 *                child.
+	 * @exception InvalidTimeoutException
+	 *                Thrown if the specified timeout is invalid within the
+	 *                current working environment.
+	 * @exception SystemException
+	 *                Thrown in any other situation.
+	 */
+
+	public void start () throws WrongStateException, SystemException
+	{
+		try
+		{
+			start(0);
+		}
+		catch (InvalidTimeoutException ex)
+		{
+		}
+	}
+
+	/**
+	 * Start a new activity. If there is already an activity associated with the
+	 * thread then it will be nested.
+	 * 
+	 * @param int
+	 *            timeout The timeout associated with the activity. If the
+	 *            activity has not been terminated by the time this period
+	 *            elapses, then it will automatically be terminated.
+	 * @exception WrongStateException
+	 *                Thrown if the currently associated activity is in a state
+	 *                that does not allow a new activity to be enlisted as a
+	 *                child.
+	 * @exception InvalidTimeoutException
+	 *                Thrown if the specified timeout is invalid within the
+	 *                current working environment.
+	 * @exception SystemException
+	 *                Thrown in any other situation.
+	 * 
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_1
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_1] - State
+	 *          incompatible to start activity:
+	 */
+
+	public void start (int timeout) throws WrongStateException,
+			InvalidTimeoutException, SystemException
+	{
+		if (timeout < 0)
+			throw new InvalidTimeoutException();
+
+		synchronized (this)
+		{
+			_timeout = timeout;
+
+			if (_status.equals(Created.instance()))
+			{
+				try
+				{
+					if (_parent != null)
+						_parent.addChild(this);
+				}
+				catch (InvalidActivityException ex)
+				{
+					_status = Completed.instance();
+
+					throw new WrongStateException(ex.toString());
+				}
+
+				if (_timeout > 0)
+				{
+					if (!ActivityReaper.activityReaper(true).insert(this, _timeout))
+					{
+						setCompletionStatus(FailureOnly.instance());
+					}
+				}
+
+				_status = Active.instance();
+			}
+			else
+				throw new WrongStateException(
+						wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_1")
+								+ " " + this + " " + _status);
+		}
+	}
+
+	/**
+	 * Complete the activity with the current completion status.
+	 * 
+	 * @exception InvalidActivityException
+	 *                Thrown if the current activity is not known about by the
+	 *                activity system.
+	 * @exception WrongStateException
+	 *                Thrown if the current activity is not in a state that
+	 *                allows it to be completed.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the a violation of the activity service or HLS
+	 *                protocol occurs.
+	 * @exception NoPermissionException
+	 *                Thrown if the invoking thread does not have permission to
+	 *                terminate the transaction.
+	 * @exception SystemException
+	 *                Thrown if some other error occurred.
+	 * 
+	 * @return the result of completing the activity. Null is valid and must be
+	 *         interpreted within the context of any HLS that may exist.
+	 * 
+	 * @see com.arjuna.mw.wsas.Outcome
+	 */
+
+	public Outcome end () throws InvalidActivityException, WrongStateException,
+			ProtocolViolationException, NoPermissionException, SystemException
+	{
+		return end(_completionStatus);
+	}
+
+	/**
+	 * Complete the activity with the completion status provided.
+	 * 
+	 * @exception InvalidActivityException
+	 *                Thrown if the current activity is not known about by the
+	 *                activity system.
+	 * @exception WrongStateException
+	 *                Thrown if the current activity is not in a state that
+	 *                allows it to be completed, or is incompatible with the
+	 *                completion status provided.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the a violation of the activity service or HLS
+	 *                protocol occurs.
+	 * @exception NoPermissionException
+	 *                Thrown if the invoking thread does not have permission to
+	 *                terminate the transaction.
+	 * @exception SystemException
+	 *                Thrown if some other error occurred.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The CompletionStatus to use.
+	 * 
+	 * @return the result of completing the activity. Null is valid and must be
+	 *         interpreted within the context of any HLS that may exist.
+	 * 
+	 * @see com.arjuna.mw.wsas.Outcome
+	 * 
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_2
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_2] - Activity
+	 *          cannot complete as it has active children:
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_3
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_3] - Cannot
+	 *          complete activity in status:
+	 */
+
+	// ActivityFailedException rather than an Outcome status?
+	public Outcome end (com.arjuna.mw.wsas.completionstatus.CompletionStatus cs)
+			throws InvalidActivityException, WrongStateException,
+			ProtocolViolationException, NoPermissionException, SystemException
+	{
+		/*
+		 * TODO
+		 * 
+		 * We need an exception that can be thrown to say that the activity is
+		 * completing.
+		 */
+
+		synchronized (this)
+		{
+			if (_status.equals(Active.instance()))
+			{
+				if (activeChildren())
+				{
+					/*
+					 * Can we do equivalent of rollback on all children and then
+					 * rollback this?
+					 */
+
+					throw new InvalidActivityException(
+							wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_2")
+									+ " " + this);
+				}
+
+				Outcome current = null;
+
+				try
+				{
+					setCompletionStatus(cs);
+				}
+				catch (Exception ex)
+				{
+					// ignore and complete with the status we have.
+				}
+
+				_status = Completing.instance();
+
+				try
+				{
+					OrderedList hls = HLSManager.HLServices();
+					OrderedListIterator iter = new OrderedListIterator(hls);
+					HLSWrapper elem = (HLSWrapper) iter.iterate();
+
+					while (elem != null)
+					{
+						Outcome result = null;
+
+						try
+						{
+							result = elem.hls().complete(getCompletionStatus());
+						}
+						catch (SystemException ex)
+						{
+							result = new OutcomeImple(new HLSException(ex),
+									getCompletionStatus());
+						}
+
+						current = HLSManager.getOutcomeManager().processOutcome(current, result);
+
+						elem = (HLSWrapper) iter.iterate();
+					}
+				}
+				catch (SystemException ex)
+				{
+					/*
+					 * Currently if an exception occurs and we get here, then we
+					 * forget all of the other outcomes and just return the
+					 * exception. Does this make sense? How will applications be
+					 * able to tell which HLSes have processed the outcome and
+					 * which have not?
+					 */
+
+					current = new OutcomeImple(new HLSException(ex),
+							Failure.instance());
+				}
+
+				if (_parent != null)
+				{
+					_parent.removeChild(this);
+					_parent = null;
+				}
+
+				_status = Completed.instance();
+
+				if (current == null)
+					current = new OutcomeImple(getCompletionStatus());
+
+				_result = current;
+
+				return _result;
+			}
+			else
+			{
+				if (_result != null)
+					return _result;
+				else
+				{
+					// we can't have terminated yet!
+
+					throw new WrongStateException(
+							wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_3")
+									+ " " + _status);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Set the termination status for the current activity, if any.
+	 * 
+	 * @param CompletionStatus
+	 *            endStatus The state in which the activity should attempt to
+	 *            terminate. This may be one of the default values provided by
+	 *            WSAS or may be extended in an implementation specific manner
+	 *            by an HLS.
+	 * 
+	 * @exception NoActivityException
+	 *                Thrown if there is no activity associated with the
+	 *                invoking thread.
+	 * @exception WrongStateException
+	 *                Thrown if the completion status is incompatible with the
+	 *                current state of the activity.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_4
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_4] - Cannot set
+	 *          completion status on activity as the status is incompatible:
+	 */
+
+	public void setCompletionStatus (CompletionStatus endStatus)
+			throws WrongStateException, SystemException
+	{
+		synchronized (this)
+		{
+			if (_status.equals(Active.instance()))
+			{
+				completionValid(endStatus);
+
+				_completionStatus = endStatus;
+			}
+			else
+				throw new WrongStateException(
+						wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_4")
+								+ " " + this + " " + _status);
+		}
+	}
+
+	/**
+	 * Get the completion status currently associated with the activity.
+	 * 
+	 * @exception NoActivityException
+	 *                Thrown if there is no activity associated with the current
+	 *                thread.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return the termination status for the current activity, if any.
+	 */
+
+	public CompletionStatus getCompletionStatus () throws SystemException
+	{
+		synchronized (this)
+		{
+			return _completionStatus;
+		}
+	}
+
+	/**
+	 * Get the timeout value currently associated with activities.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the timeout value in seconds, or 0 if no application specified
+	 *         timeout has been provided.
+	 */
+
+	public int getTimeout () throws SystemException
+	{
+		return _timeout;
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the status of the current activity. If there is no activity
+	 *         associated with the thread then NoActivity will be returned.
+	 * 
+	 * @see com.arjuna.mw.wsas.status.Status
+	 */
+
+	public com.arjuna.mw.wsas.status.Status status () throws SystemException
+	{
+		synchronized (this)
+		{
+			return _status;
+		}
+	}
+
+	/**
+	 * What is the name of the current activity? Use only for debugging
+	 * purposes!
+	 * 
+	 * @exception NoActivityException
+	 *                Thrown if there is no activity associated with the
+	 *                invoking thread.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return the name of the activity.
+	 */
+
+	public String activityName () throws NoActivityException, SystemException
+	{
+		return "ActivityImple: " + toString();
+	}
+
+	public String toString ()
+	{
+		return _activityId.stringForm();
+	}
+
+	/**
+	 * @return the unique identifier for this activity.
+	 */
+
+	public GlobalId getGlobalId ()
+	{
+		return _activityId;
+	}
+
+	/**
+	 * @return The parent of the activity, or null if it is top-level.
+	 */
+
+	public ActivityImple parent ()
+	{
+		return _parent;
+	}
+
+	/**
+	 */
+
+	public boolean equals (Object obj)
+	{
+		if (obj != null)
+		{
+			if (obj != this)
+			{
+				if (obj instanceof ActivityImple)
+				{
+					if (((ActivityImple) obj).getGlobalId().equals(getGlobalId()))
+						return true;
+				}
+				else
+					return true;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Return the activity hierarchy that this activity is within. The zeroth
+	 * element is the parent.
+	 */
+
+	public ActivityImple[] hierarchy ()
+	{
+		Stack hier = new Stack();
+		ActivityImple ptr = this;
+
+		while (ptr != null)
+		{
+			hier.push(ptr);
+
+			ptr = ptr.parent();
+		}
+
+		int hierSize = hier.size();
+		ActivityImple[] toReturn = new ActivityImple[hierSize];
+
+		for (int i = 0; i < hierSize; i++)
+			toReturn[i] = (ActivityImple) hier.pop();
+
+		return toReturn;
+	}
+
+	/**
+	 * Check whether the specified completion status is compatible with the one
+	 * currently assigned to the activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to check.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the specified status is incompatible with that
+	 *                currently possessed by this activity.
+	 * 
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_5
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_5] - Cannot
+	 *          change completion status, value is incompatible:
+	 */
+
+	public final void completionValid (CompletionStatus cs)
+			throws WrongStateException
+	{
+		if (!_completionStatus.equals(cs))
+		{
+			if (_completionStatus.equals(FailureOnly.instance()))
+				throw new WrongStateException(
+						wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_5")
+								+ " " + _completionStatus + " " + cs);
+		}
+	}
+
+	public int hashCode ()
+	{
+		return _activityId.hashCode();
+	}
+
+	/**
+	 * Add the specified activity as a child of this activity.
+	 * 
+	 * @param ActivityImple
+	 *            child The child activity.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the parent activity is not in a state that
+	 *                allows children to be added.
+	 * @exception InvalidActivityException
+	 *                Thrown if the child activity is invalid.
+	 * @exception SystemException
+	 *                Thrown if some other error occurs.
+	 * 
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_6
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_6] - Cannot
+	 *          enlist null child!
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_7
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_7] - Cannot
+	 *          enlist child activity with parent as parent's status is:
+	 */
+
+	final void addChild (ActivityImple child) throws WrongStateException,
+			InvalidActivityException, SystemException
+	{
+		if (child == null)
+			throw new InvalidActivityException(
+					wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_6"));
+
+		synchronized (this)
+		{
+			if (_status.equals(Active.instance()))
+			{
+				_children.put(child.getGlobalId(), child);
+			}
+			else
+				throw new WrongStateException(
+						wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_7")
+								+ " " + _status);
+		}
+	}
+
+	/**
+	 * Remove the specified child activity from this activity.
+	 * 
+	 * @param ActivityImple
+	 *            child The child activity to remove.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the parent activity is not in a state that
+	 *                allows children to be removed.
+	 * @exception InvalidActivityException
+	 *                Thrown if the child activity is invalid.
+	 * @exception SystemException
+	 *                Thrown if some other error occurs.
+	 * 
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_8
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_8] - Cannot
+	 *          remove null child!
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_9
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_9] - The
+	 *          following child activity is unknown to the parent:
+	 * @message com.arjuna.mwlabs.wsas.activity.ActivityImple_10
+	 *          [com.arjuna.mwlabs.wsas.activity.ActivityImple_10] - Cannot
+	 *          remove child activity from parent as parent's status is:
+	 */
+
+	final void removeChild (ActivityImple child) throws WrongStateException,
+			InvalidActivityException, SystemException
+	{
+		if (child == null)
+			throw new InvalidActivityException(
+					wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_8"));
+
+		synchronized (this)
+		{
+			if (_status.equals(Active.instance()))
+			{
+				if (_children.get(child.getGlobalId()) == null)
+					throw new InvalidActivityException(
+							wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_9")
+									+ child);
+			}
+			else
+				throw new WrongStateException(
+						wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.ActivityImple_10")
+								+ _status);
+		}
+	}
+
+	/**
+	 * @return <code>true</code> if this activity has active children, <code>
+	 * false</code>
+	 *         otherwise.
+	 */
+
+	private final boolean activeChildren ()
+	{
+		Enumeration e = _children.keys();
+
+		while (e.hasMoreElements())
+		{
+			ActivityImple child = (ActivityImple) _children.get(e.nextElement());
+
+			try
+			{
+				if ((child != null)
+						&& (child.status().equals(Active.instance())))
+				{
+					return true;
+				}
+			}
+			catch (Exception ex)
+			{
+				return true; // what else can we do?
+			}
+		}
+
+		return false;
+	}
+
+	private ActivityImple _parent;
+	private Hashtable _children;
+	private Status _status;
+	private CompletionStatus _completionStatus;
+	private GlobalIdImple _activityId;
+	private int _timeout;
+	private Outcome _result;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityReaper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityReaper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ActivityReaper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,381 @@
+/*
+ * 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: ActivityReaper.java,v 1.6 2005/05/19 12:13:18 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.status.*;
+
+import com.arjuna.mw.wsas.completionstatus.*;
+
+import com.arjuna.mw.wsas.common.Environment;
+
+import com.arjuna.ats.internal.arjuna.template.OrderedList;
+import com.arjuna.ats.internal.arjuna.template.OrderedListIterator;
+
+/**
+ * Class to record activities with non-zero timeout values, and
+ * class to implement a activity reaper thread which terminates
+ * these activities once their timeout elapses.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: ActivityReaper.java,v 1.6 2005/05/19 12:13:18 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ActivityReaper
+{
+
+    public static final String NORMAL = "NORMAL";
+    public static final String DYNAMIC = "DYNAMIC";
+
+    public final long checkingPeriod ()
+    {
+	return _checkPeriod;
+    }
+
+    /*
+     * Should be no need to protect with a mutex since only one thread
+     * is ever doing the work.
+     */
+
+    /**
+     * Only check for one at a time to prevent starvation.
+     *
+     * Timeout is given in milliseconds.
+     *
+     * @message com.arjuna.mwlabs.wsas.activity.ActivityReaper_1 [com.arjuna.mwlabs.wsas.activity.ActivityReaper_1] - ActivityReaper: could not terminate.
+     */
+    
+    public final boolean check (long timeout)
+    {
+	if (_list == null)
+	    return true;
+	
+	OrderedListIterator iter = new OrderedListIterator(_list);
+	ReaperElement e = null;
+
+	while ((e = (ReaperElement) iter.iterate()) != null)
+	{
+	    if (timeout >= e._absoluteTimeout)
+		break;
+	    else
+	    {
+		iter = null;
+		return true;
+	    }
+	}
+
+	iter = null;
+	
+	if (e != null)
+	{
+	    /*
+	     * Only force rollback if the activity is still running.
+	     */
+
+	    Status status = com.arjuna.mw.wsas.status.Unknown.instance();
+	    
+	    try
+	    {
+		status = e._activity.status();
+	    }
+	    catch (Exception ex)
+	    {
+	    }
+	    
+	    if (status instanceof Active)
+	    {
+		/*
+		 * If this is a local activity, then we can roll it
+		 * back completely. Otherwise, just mark it as rollback only.
+		 */
+
+		boolean problem = false;
+		
+		try
+		{
+		    try
+		    {
+			/*
+			 * TODO
+			 *
+			 * Everything works on thread-to-activity association
+			 * so we can't just tell an activity to end: we have
+			 * to resume it and then tell it to end. The reason
+			 * is that all HLS-es assume that the invoking thread
+			 * has the current context on it.
+			 */
+
+			//			e._activity.end(Failure.instance());
+
+			UserActivityFactory.userActivity().resume(new ActivityHierarchyImple(e._activity));
+			UserActivityFactory.userActivity().end(Failure.instance());
+			UserActivityFactory.userActivity().suspend();
+		    }
+		    catch (Exception ex)
+		    {
+			problem = true;
+		    }
+		}
+		catch (Exception ex2)
+		{
+		    problem = true;
+		}
+		
+		if (problem)
+		{
+		    boolean error = false;
+		     
+		    try
+		    {
+			e._activity.setCompletionStatus(FailureOnly.instance());
+		    }
+		    catch (Exception ex3)
+		    {
+			error = true;
+		    }
+		     
+		    if (error)
+		    {
+			wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.activity.ActivityReaper_1");
+		    }
+		}
+	    }
+	    
+	    _list.remove(e);
+	}
+	
+	System.gc();  // do some garbage collection while we're at it!
+	
+	return true;
+    }
+    
+    /**
+     * @return the number of items in the reaper's list.
+     */
+
+    public final synchronized long numberOfActivities ()
+    {
+	return ((_list == null) ? 0 : _list.size());
+    }
+    
+    /**
+     * timeout is given in seconds, but we work in milliseconds.
+     */
+ 
+    public final synchronized boolean insert (ActivityImple activity, int timeout)
+    {
+	/*
+	 * Ignore if the timeout is zero, since this means the activity
+	 * should never timeout.
+	 */
+
+	if (timeout == 0)
+	    return true;
+    
+	ActivityReaper._lifetime += timeout;
+	
+	/*
+	 * If the timeout for this activity is less than the
+	 * current timeout for the reaper thread (or one is not set for
+	 * the reaper thread) then use that timeout and interrupt the thread
+	 * to get it to recheck.
+	 */
+
+	if ((timeout < _checkPeriod) || (_checkPeriod == Long.MAX_VALUE))
+	{
+	    _checkPeriod = timeout*1000;  // convert to milliseconds!
+	    ActivityReaper._reaperThread.interrupt();
+	}
+	
+	ReaperElement e = new ReaperElement(activity, timeout);
+
+	if ((_list != null) && _list.insert(e))
+	    return true;
+	else
+	{
+	    e = null;
+	    return false;
+	}
+    }
+
+    public final synchronized boolean remove (ActivityImple act)
+    {
+	if ((_list == null) || (act == null))
+	    return false;
+    
+	ReaperElement e = null;
+	OrderedListIterator iter = new OrderedListIterator(_list);
+	boolean result = false;
+	boolean found = false;
+	
+	while (((e = (ReaperElement) iter.iterate()) != null) && !found)
+	{
+	    try
+	    {
+		found = e._activity.equals(act);
+	    }
+	    catch (Exception e2)
+	    {
+		break;
+	    }
+	}
+
+	iter = null;
+
+	if (found)
+	{
+	    result = _list.remove(e);
+
+	    e = null;
+	}
+
+	return result;
+    }
+
+    /**
+     * Currently we let the reaper thread run at same priority as other
+     * threads. Could get priority from environment.
+     */
+
+    public static synchronized ActivityReaper create (long checkPeriod)
+    {
+	if (ActivityReaper._theReaper == null)
+	{
+	    String mode = System.getProperty(Environment.REAPER_MODE);
+	    
+	    if (mode != null)
+	    {
+		if (mode.compareTo(ActivityReaper.DYNAMIC) == 0)
+		    ActivityReaper._dynamic = true;
+	    }
+	    
+	    if (!ActivityReaper._dynamic)
+	    {
+		String timeoutEnv = System.getProperty(Environment.REAPER_TIMEOUT);
+
+		if (timeoutEnv != null)
+		{
+		    Long l = null;
+		
+		    try
+		    {
+			l = new Long(timeoutEnv);
+			checkPeriod = l.longValue();
+			
+			l = null;
+		    }
+		    catch (NumberFormatException e)
+		    {
+			e.printStackTrace();
+		    }
+		}
+	    }
+	    else
+		checkPeriod = Long.MAX_VALUE;
+		
+	    ActivityReaper._theReaper = new ActivityReaper(checkPeriod);
+	    
+	    _reaperThread = new ReaperThread(ActivityReaper._theReaper);
+	    //	    _reaperThread.setPriority(Thread.MIN_PRIORITY);
+
+	    _reaperThread.setDaemon(true);
+	    
+	    _reaperThread.start();
+	}
+
+	return ActivityReaper._theReaper;
+    }
+
+    public static synchronized ActivityReaper create ()
+    {
+	return create(ActivityReaper.defaultCheckPeriod);
+    }
+    
+    public static synchronized ActivityReaper activityReaper ()
+    {
+	return activityReaper(false);
+    }
+
+    /*
+     * If parameter is true then do a create.
+     */
+
+    public static synchronized ActivityReaper activityReaper (boolean createReaper)
+    {
+	if (createReaper)
+	    return create();
+	else
+	    return _theReaper;
+    }
+    
+    /*
+     * Don't bother synchronizing as this is only an estimate anyway.
+     */
+
+    public static final long activityLifetime ()
+    {
+	return ActivityReaper._lifetime;
+    }
+
+    public static final long defaultCheckPeriod = 120000;  // in milliseconds
+
+    ActivityReaper (long checkPeriod)
+    {
+	_list = new OrderedList();
+	_checkPeriod = checkPeriod;
+
+	if (_list == null)
+	{
+	    throw new OutOfMemoryError();
+	}
+    }
+
+    static final void reset ()
+    {
+	_theReaper = null;
+    }
+    
+    private OrderedList _list;
+    private long        _checkPeriod;
+    
+    private static ActivityReaper _theReaper = null;
+    private static ReaperThread   _reaperThread = null;
+    private static boolean        _dynamic = false;
+    private static long           _lifetime = 0;
+ 
+}
+
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/CompositeOutcomeImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/CompositeOutcomeImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/CompositeOutcomeImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,129 @@
+/*
+ * 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: CompositeOutcomeImple.java,v 1.5 2005/05/19 12:13:18 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.Vector;
+
+/**
+ * The Outcome represents the final outcome of the activity. Because
+ * different HLS implementations will have different requirements
+ * on what they can or cannot return, this interface is deliberately
+ * generic.
+ *
+ * This should be a public class!
+ */
+
+public class CompositeOutcomeImple implements Outcome
+{
+
+    public CompositeOutcomeImple (CompletionStatus cs)
+    {
+	_outcomes = new Vector();
+	_status = cs;
+    }
+
+    public final void add (Outcome out)
+    {
+	_outcomes.add(out);
+    }
+
+    public final Outcome get (String type)
+    {
+	if (_outcomes != null)
+	{
+	    for (int i = 0; i < _outcomes.size(); i++)
+	    {
+		if (_outcomes.elementAt(i).getClass().getName().equals(type))
+		    return (Outcome) _outcomes.elementAt(i);
+	    }
+	}
+
+	return null;
+    }
+    
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "CompositeOutcomeImple";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return null;
+    }
+
+    public final Outcome[] outcomes () throws SystemException
+    {
+	return (Outcome[]) _outcomes.toArray();
+    }
+    
+    private Vector           _outcomes;
+    private CompletionStatus _status;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/HLSManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/HLSManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/HLSManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+/*
+ * 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: HLSManager.java,v 1.5 2005/05/19 12:13:18 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import com.arjuna.mw.wsas.activity.HLS;
+import com.arjuna.mw.wsas.activity.OutcomeManager;
+
+import com.arjuna.mwlabs.wsas.util.HLSWrapper;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidHLSException;
+
+import com.arjuna.ats.internal.arjuna.template.OrderedList;
+import com.arjuna.ats.internal.arjuna.template.OrderedListElement;
+import com.arjuna.ats.internal.arjuna.template.OrderedListIterator;
+
+/**
+ * The HLS manager is the way in which an HLS can register
+ * itself with the activity service. This allows it to be informed
+ * of the lifecycle of activities and to augment that lifecyle and
+ * associated context.
+ *
+ * An HLS can be associated with all threads (globally) or with only
+ * a specific thread (locally).
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HLSManager.java,v 1.5 2005/05/19 12:13:18 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HLSManager
+{
+
+    public static final void addHLS (HLS service) throws InvalidHLSException, SystemException
+    {
+	if (service == null)
+	    throw new InvalidHLSException();
+	else
+	    _hls.insert(new HLSWrapper(service));
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wsas.activity.HLSManager_1 [com.arjuna.mwlabs.wsas.activity.HLSManager_1] - HLS not found!
+     */
+
+    public static final void removeHLS (HLS service) throws InvalidHLSException, SystemException
+    {
+	if (service == null)
+	    throw new InvalidHLSException();
+	else
+	{
+	    synchronized (_hls)
+	    {
+		OrderedListIterator iter = new OrderedListIterator(_hls);
+		OrderedListElement elem = iter.iterate();
+		
+		while ((elem != null) && (((HLSWrapper) elem).hls() != service))
+		{
+		    elem = iter.iterate();
+		}
+		
+		if (elem == null)
+		    throw new InvalidHLSException(wsasLogger.log_mesg.getString("com.arjuna.mwlabs.wsas.activity.HLSManager_1"));
+		else
+		    _hls.remove(elem);
+	    }
+	}
+    }
+
+    public static final HLS[] allHighLevelServices () throws SystemException
+    {
+	synchronized (_hls)
+	{
+	    HLS[] toReturn = new HLS[(int) _hls.size()];
+	    OrderedListIterator iter = new OrderedListIterator(_hls);
+	    OrderedListElement elem = iter.iterate();
+	    int i = 0;
+	    
+	    while (elem != null)
+	    {
+		toReturn[i] = ((HLSWrapper) elem).hls();
+		i++;
+		elem = iter.iterate();
+	    }
+	    
+	    return toReturn;
+	}
+    }
+
+    public static final void setOutcomeManager (OutcomeManager om) throws SystemException
+    {
+	synchronized (_outcomeManager)
+	{
+	    if (om == null)
+		om = new OutcomeManagerImple();
+	    
+	    _outcomeManager = om;
+	}
+    }
+
+    public static final OutcomeManager getOutcomeManager () throws SystemException
+    {
+	synchronized (_outcomeManager)
+	{
+	    return _outcomeManager;
+	}
+    }
+
+    static final OrderedList HLServices ()
+    {
+	return _hls;
+    }
+    
+    private static OrderedList _hls = new OrderedList(false); // order decreasing as higher is first
+    private static OutcomeManager _outcomeManager = new OutcomeManagerImple();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,114 @@
+/*
+ * 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: OutcomeImple.java,v 1.2 2005/05/19 12:13:18 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.HLSException;
+
+/**
+ * The Outcome represents the final outcome of the activity. Because
+ * different HLS implementations will have different requirements
+ * on what they can or cannot return, this interface is deliberately
+ * generic.
+ */
+
+public class OutcomeImple implements Outcome
+{
+
+    public OutcomeImple (CompletionStatus s)
+    {
+	_status = s;
+	_exception = null;
+    }
+
+    public OutcomeImple (HLSException ex, CompletionStatus cs)
+    {
+	_status = cs;
+	_exception = ex;
+    }
+    
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "OutcomeImple";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    //    public org.w3c.dom.Document data () throws SystemException
+    public Object data () throws SystemException
+    {
+	return null;
+    }
+
+    public final HLSException exception ()
+    {
+	return _exception;
+    }
+
+    private CompletionStatus _status;
+    private HLSException     _exception;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/OutcomeManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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: OutcomeManagerImple.java,v 1.2 2005/05/19 12:13:18 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.OutcomeManager;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * The Outcome represents the final outcome of the activity. Because
+ * different HLS implementations will have different requirements
+ * on what they can or cannot return, this interface is deliberately
+ * generic.
+ */
+
+public class OutcomeManagerImple implements OutcomeManager
+{
+
+    /**
+     * Even if exceptions occur just remember the equivalent exception
+     * and keep telling all other HLSes that the activity is completing.
+     */
+
+    public Outcome processOutcome (Outcome current, Outcome next) throws SystemException
+    {
+	if (current == null)
+	    return next;
+	
+	if (next == null)
+	    return current;
+
+	if (current instanceof CompositeOutcomeImple)
+	{
+	    ((CompositeOutcomeImple) current).add(next);
+
+	    return current;
+	}
+	else
+	{
+	    try
+	    {
+		CompositeOutcomeImple toReturn = new CompositeOutcomeImple(UserActivityFactory.userActivity().getCompletionStatus());
+	    
+		toReturn.add(current);
+		toReturn.add(next);
+
+		return toReturn;
+	    }
+	    catch (NoActivityException ex)
+	    {
+		throw new SystemException(ex.toString());
+	    }
+	}
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperElement.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperElement.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperElement.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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: ReaperElement.java,v 1.3 2004/03/15 13:25:00 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+import com.arjuna.ats.internal.arjuna.template.OrderedListElement;
+
+public class ReaperElement implements OrderedListElement
+{
+
+    /*
+     * Currently, once created the reaper object and thread stay around
+     * forever.
+     * We could destroy both once the list of transactions is null. Depends
+     * upon the relative cost of recreating them over keeping them around.
+     */
+
+    public ReaperElement (ActivityImple act, int timeout)
+    {
+	_activity = act;
+	_timeout = timeout;
+
+	/*
+	 * Given a timeout period in seconds, calculate its absolute value
+	 * from the current time of day in milliseconds.
+	 */
+	
+	_absoluteTimeout = timeout*1000 + System.currentTimeMillis();
+    }
+
+    public final boolean equals (OrderedListElement e)
+    {
+	if (e instanceof ReaperElement)
+	    return (_absoluteTimeout == ((ReaperElement) e)._absoluteTimeout);
+	else
+	    return false;
+    }
+
+    public final boolean lessThan (OrderedListElement e)
+    {
+	if (e instanceof ReaperElement)
+	    return (_absoluteTimeout < ((ReaperElement)e)._absoluteTimeout);
+	else
+	    return false;
+    }
+
+    public final boolean greaterThan (OrderedListElement e)
+    {
+	if (e instanceof ReaperElement)
+	    return (_absoluteTimeout > ((ReaperElement)e)._absoluteTimeout);
+	else
+	    return false;
+    }
+
+    public ActivityImple _activity;
+    public long          _absoluteTimeout;
+    public int           _timeout;
+    
+}
+
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperThread.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperThread.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/activity/ReaperThread.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,130 @@
+/*
+ * 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: ReaperThread.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.activity;
+
+/**
+ * Class to record transactions with non-zero timeout values, and
+ * class to implement a transaction reaper thread which terminates
+ * these transactions once their timeout elapses.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: ReaperThread.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ReaperThread extends Thread
+{
+
+    public ReaperThread (ActivityReaper arg)
+    {
+	_reaperObject = arg;
+	_sleepPeriod = _reaperObject.checkingPeriod();
+	_shutdown = false;
+
+	this.setDaemon(true);
+    }
+    
+    public void run ()
+    {
+	for (;;)
+	{
+	    /*
+	     * Cannot assume we sleep for the entire period. We may
+	     * be interrupted. If we are, just run a check anyway and
+	     * ignore.
+	     */
+
+	    boolean done = false;
+	    
+	    while (!done)
+	    {
+		_sleepPeriod = _reaperObject.checkingPeriod();
+
+		long oldPeriod = _sleepPeriod;
+		long beforeTime = System.currentTimeMillis();
+
+		try
+		{
+		    Thread.sleep(_sleepPeriod);
+
+		    done = true;
+		}
+		catch (InterruptedException e1)
+		{
+		    /*
+		     * Has timeout been changed?
+		     */
+
+		    if (_reaperObject.checkingPeriod() != oldPeriod)
+		    {
+			done = true;
+		    }
+		    else
+		    {
+			long afterTime = System.currentTimeMillis();
+
+			if (afterTime - beforeTime < _reaperObject.checkingPeriod())
+			{
+			    done = true;
+			}
+		    }
+		}
+		catch (Exception e2)
+		{
+		    done = true;
+		}
+	    }
+
+	    if (_shutdown)
+		return;
+
+	    _reaperObject.check(System.currentTimeMillis());
+
+	    if (_reaperObject.numberOfActivities() == 0)
+	    {
+		_sleepPeriod = Long.MAX_VALUE;
+	    }
+	}
+    }
+
+    public void shutdown ()
+    {
+	_shutdown = true;
+    }
+
+    private ActivityReaper _reaperObject;
+    private long           _sleepPeriod;
+    private boolean        _shutdown;
+
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/Initialiser.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/Initialiser.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/Initialiser.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Initialiser.java,v 1.2 2005/03/10 15:37:01 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.common;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+import com.arjuna.mw.wsas.common.Environment;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Initialiser.java,v 1.2 2005/03/10 15:37:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Initialiser
+{
+
+    /**
+     * @message com.arjuna.mwlabs.wsas.common.Initialiser_1 [com.arjuna.mwlabs.wsas.common.Initialiser_1] - Activity timeout format incorrect: 
+     */
+
+    public static final synchronized void initialise ()
+    {
+	if (!_done)
+	{
+	    try
+	    {
+		String timeout = System.getProperty(Environment.ACTIVITY_TIMEOUT);
+		
+		try
+		{
+		    Integer l = new Integer(timeout);
+		    _defaultTimeout = l.intValue();
+		}
+		catch (NumberFormatException e)
+		{
+		    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.common.Initialiser_1",
+						  new Object[]{e});
+		}
+	    }
+	    catch (Exception ex)
+	    {
+	    }
+	    
+	    _done = true;
+	}
+    }
+
+    private static boolean _done = false;
+    private static int     _defaultTimeout = 0;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/arjunacore/GlobalIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/arjunacore/GlobalIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/common/arjunacore/GlobalIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: GlobalIdImple.java,v 1.3 2004/03/15 13:25:01 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.common.arjunacore;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+/**
+ * This implementation of GlobalId uses the ArjunaCore Uid class.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: GlobalIdImple.java,v 1.3 2004/03/15 13:25:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class GlobalIdImple extends Uid implements GlobalId
+{
+
+    public GlobalIdImple ()
+    {
+	super();
+
+	_value = stringForm().getBytes();
+    }
+    
+    public GlobalIdImple (String id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+    
+    private byte[] _value;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/DeploymentContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/DeploymentContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/DeploymentContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: DeploymentContextImple.java,v 1.2 2003/01/07 10:22:50 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.context;
+
+import com.arjuna.mw.wsas.context.*;
+
+import com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContextImple.java,v 1.2 2003/01/07 10:22:50 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DeploymentContextImple implements DeploymentContext
+{
+
+    public DeploymentContextImple ()
+    {
+    }
+    
+    public Context context ()
+    {
+	return new SOAPContextImple();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/corba/IIOPContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/corba/IIOPContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/corba/IIOPContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: IIOPContextImple.java,v 1.2 2003/01/07 10:22:50 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.context.corba;
+
+import com.arjuna.mw.wsas.context.corba.IIOPContext;
+
+/**
+ */
+
+public class IIOPContextImple implements IIOPContext
+{
+
+    public int size ()
+    {
+	return 0;
+    }
+   
+    public boolean valid ()
+    {
+	return false;
+    }
+    
+    public int position ()
+    {
+	return 0;
+    }
+
+    public byte[] contextAsByteArray ()
+    {
+	return null;
+    }
+
+    public String identifier ()
+    {
+	return "IIOPContextImple";
+    }
+
+    public String toString ()
+    {
+	return identifier();
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/soap/SOAPContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/soap/SOAPContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/context/soap/SOAPContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,193 @@
+/*
+ * 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: SOAPContextImple.java,v 1.8.4.1 2005/11/22 10:31:41 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.context.soap;
+
+import com.arjuna.mw.wsas.logging.wsasLogger;
+
+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 org.w3c.dom.Element;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mwlabs.wsas.util.XMLUtils;
+
+/**
+ * A default SOAPContext implementation.
+ */
+
+public class SOAPContextImple implements SOAPContext
+{
+    
+    public SOAPContextImple ()
+    {
+	this("");
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple_1 [com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple_1] - SOAPContextImple ignoring: 
+     */
+
+    public SOAPContextImple (String id)
+    {
+    	try
+    	{
+    	    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+    	    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+    	
+    	    _doc = docBuilder.newDocument();
+    	    
+    	    _context = _doc.createElement(_contextName);
+    
+    	    if (addBasicContext(_context))
+    	    {
+        		ContextManager cxman = new ContextManager();
+        		Context[] contexts = cxman.contexts();
+        
+        		org.w3c.dom.Element root = _doc.createElement(_hlsContext);
+        	
+        		if (contexts != null)
+        		{
+        		    for (int i = 0; i < contexts.length; i++)
+        		    {
+            			if (contexts[i] instanceof SOAPContext)
+            			{
+                            ((SOAPContext)contexts[i]).serialiseToElement(root) ;
+            			}
+            			else
+            			{
+            			    wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple_1",
+            							  new Object[]{contexts[i]});
+            			}
+        		    }
+        		}
+        
+        		_context.appendChild(root);
+    	    }
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+    	    
+    	    _context = null;
+    	    _doc = null;
+    	}
+    }
+    
+    public void initialiseContext(Object param)
+    {
+    }
+    
+    /**
+     * 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)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+
+    public String identifier ()
+    {
+        return "SOAPContextImple";
+    }
+
+    public String toString ()
+    {
+    	return XMLUtils.writeToString(_context);
+    }
+
+    /**
+     * @return <code>true</code> if a context was added, <code>false</code>
+     * otherwise.
+     */
+
+    private final boolean addBasicContext (org.w3c.dom.Element root)
+    {
+    	ActivityHierarchy hier = null;
+    	boolean added = false;
+    	
+    	try
+    	{
+    	    hier = UserActivityFactory.userActivity().currentActivity();
+    	}
+    	catch (SystemException ex)
+    	{
+    	    ex.printStackTrace();
+    	}
+
+    	if (hier != null)
+    	{
+    	    added = true;
+    	    
+    	    for (int i = 0; i < hier.size(); i++)
+    	    {
+        		org.w3c.dom.Element element = _doc.createElement(_contextElement);
+        		org.w3c.dom.Element timeout = _doc.createElement("timeout");
+        
+        		timeout.appendChild(_doc.createTextNode(""+hier.activity(i).getTimeout()));
+        		element.appendChild(timeout);
+        
+        		org.w3c.dom.Element type = _doc.createElement("type");
+        		type.appendChild(_doc.createTextNode(_typeName));
+        		element.appendChild(type);
+        
+        		org.w3c.dom.Element ctxId = _doc.createElement("ctxId");
+        		ctxId.appendChild(_doc.createTextNode("urn:"+hier.activity(i).toString()));
+        		element.appendChild(ctxId);
+        
+        		root.appendChild(element);
+    	    }
+    	}
+    	
+    	return added;
+    }
+    
+    private org.w3c.dom.Element  _context;
+    private org.w3c.dom.Document _doc;
+    
+    private static final String _typeName = "ArjunaTechnologies";
+    private static final String _contextName = "context";
+    private static final String _contextElement = "context-entry";
+    private static final String _hlsContext = "extended-context-entry";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/HLSWrapper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/HLSWrapper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/HLSWrapper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,125 @@
+/*
+ * 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: HLSWrapper.java,v 1.3 2004/03/15 13:25:01 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsas.util;
+
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.ats.internal.arjuna.template.OrderedListElement;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HLSWrapper.java,v 1.3 2004/03/15 13:25:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HLSWrapper implements OrderedListElement
+{
+
+    public HLSWrapper (HLS hls)
+    {
+	_theHLS = hls;
+    }
+    
+    /**
+     * Are the two entries equal?
+     */
+
+    public boolean equals (OrderedListElement e)
+    {
+	if (e instanceof HLSWrapper)
+	{
+	    try
+	    {
+		return (boolean) (((HLSWrapper) e).hls().priority() == hls().priority());
+	    }
+	    catch (SystemException ex)
+	    {
+		return false;
+	    }
+	}
+	else
+	    return false;
+    }
+
+    /**
+     * Is the current entry less than the one in the parameter?
+     */
+
+    public boolean lessThan (OrderedListElement e)
+    {
+	if (e instanceof HLSWrapper)
+	{
+	    try
+	    {
+		return (boolean) (((HLSWrapper) e).hls().priority() < hls().priority());
+	    }
+	    catch (SystemException ex)
+	    {
+		return false;
+	    }
+	}
+	else
+	    return false;
+    }	
+
+    /**
+     * Is the current entry greater than the one in the parameter?
+     */
+ 
+    public boolean greaterThan (OrderedListElement e)
+    {
+	if (e instanceof HLSWrapper)
+	{
+	    try
+	    {
+		return (boolean) (((HLSWrapper) e).hls().priority() > hls().priority());
+	    }
+	    catch (SystemException ex)
+	    {
+		return false;
+	    }
+	}
+	else
+	    return false;
+    }		
+
+    public final HLS hls ()
+    {
+	return _theHLS;
+    }
+    
+    private HLS _theHLS;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/XMLUtils.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/XMLUtils.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwlabs/wsas/util/XMLUtils.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,40 @@
+/*
+ * 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.mwlabs.wsas.util;
+
+import org.w3c.dom.Node;
+
+/**
+ * Utility class for serialising a DOM element to a string.
+ * @author kevin
+ */
+public class XMLUtils
+{
+    /**
+     * Write a DOM node to a string.
+     * @param element The DOM node.
+     * @return The string.
+     */
+    public static String writeToString(final Node node)
+    {
+        return node.toString() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Context.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Context.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Context.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,89 @@
+/*
+ * 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: Context.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Context.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Context
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+	    
+	    if ((contexts == null) || (contexts.length == 0))
+		passed = true;
+	    else
+		System.err.println("Contexts not null: "+contexts);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Hierarchy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Hierarchy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Hierarchy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Hierarchy.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Hierarchy.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Hierarchy
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+
+	    ActivityHierarchy ctx = ua.currentActivity();
+	    
+	    System.out.println("\nHierarchy: "+ctx);
+
+	    if (ctx == null)
+		passed = false;
+	    else
+	    {
+		ua.end();
+
+		System.out.println("\nCurrent: "+ua.activityName());
+	    
+		ua.end();
+
+		System.out.println("\nCurrent: "+ua.activityName());
+
+		if (ua.activityName() == null)
+		    passed = true;
+	    }
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NestedActivity.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NestedActivity.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NestedActivity.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NestedActivity.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestedActivity.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NestedActivity
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.start();
+
+	    String nested = ua.activityName();
+	    
+	    System.out.println("Started: "+nested);
+
+	    System.out.println("\nEnding: "+nested);
+	    
+	    ua.end();
+
+	    String parent = ua.activityName();
+	    
+	    System.out.println("\nCurrent: "+parent);
+	    
+	    System.out.println("\nEnding: "+parent);
+	    
+	    ua.end();
+
+	    System.out.println("\nCurrent: "+ua.activityName());
+
+	    System.out.println("\nEnded.");
+	    
+	    if (ua.activityName() == null)
+		passed = true;
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NullEnd.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NullEnd.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/NullEnd.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NullEnd.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullEnd.java,v 1.1 2002/11/25 10:51:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullEnd
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    ua.end();
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Resume.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Resume.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Resume.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,116 @@
+/*
+ * 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: Resume.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Resume.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Resume
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	    GlobalId ac1 = null;
+	    GlobalId ac2 = null;
+	    
+	    ua.start();
+	    
+	    ac1 = ua.activityId();
+	    
+	    System.out.println("Started: "+ac1);
+	    
+	    ua.start();
+	    
+	    ac2 = ua.activityId();
+
+	    System.out.println("\nStarted: "+ac2);
+	    
+	    ActivityHierarchy ctx = ua.suspend();
+	    
+	    System.out.println("\nSuspended: "+ctx);
+	    
+	    if (ua.currentActivity() == null)
+	    {
+		ua.resume(ctx);
+		
+		if (ac2.equals(ua.activityId()))
+		{
+		    ua.end();
+
+		    if (ac1.equals(ua.activityId()))
+		    {
+			ua.end();
+			
+			passed = true;
+		    }
+		    else
+			System.out.println("\nCurrent: "+ua.activityId()+" "+ac1);
+		}
+		else
+		    System.out.println("\nCurrent: "+ua.activityId()+" "+ac2);
+	    }
+	    else
+		System.out.println("\nCurrent: "+ua.currentActivity());
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StartEnd.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StartEnd.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StartEnd.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: StartEnd.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: StartEnd.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class StartEnd
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+
+	    ua.start();
+	
+	    ua.end();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StatusCheck.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StatusCheck.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/StatusCheck.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,91 @@
+/*
+ * 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: StatusCheck.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.status.NoActivity;
+import com.arjuna.mw.wsas.status.Active;
+
+import com.arjuna.mw.wsas.completionstatus.Failure;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: StatusCheck.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class StatusCheck
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    if (ua.status() == NoActivity.instance())
+	    {
+		ua.start();
+		
+		if (ua.status() == Active.instance())
+		{
+		    Outcome res = ua.end();
+
+		    if (res.completedStatus().equals(Failure.instance()))
+			passed = true;
+		    else
+			System.out.println("End status: "+res.completedStatus());
+		}
+		else
+		    System.out.println("Start status: "+ua.status());
+	    }
+	    else
+		System.out.println("Create status: "+ua.status());
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Suspend.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Suspend.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Suspend.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,86 @@
+/*
+ * 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: Suspend.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Suspend.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Suspend
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ActivityHierarchy ctx = ua.suspend();
+	    
+	    System.out.println("\nSuspended: "+ctx);
+	    
+	    if (ua.currentActivity() == null)
+		passed = true;
+	    else
+		System.out.println("\nCurrent: "+ua.currentActivity());
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Timeout.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Timeout.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/basic/Timeout.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+/*
+ * 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: Timeout.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.basic;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.status.*;
+
+import com.arjuna.mw.wsas.completionstatus.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Timeout.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Timeout
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	
+	    ua.setTimeout(1);
+
+	    ua.start();
+	    
+	    Thread.currentThread().sleep(2000);
+
+	    if (ua.status() instanceof Completed)
+	    {
+		if (ua.getCompletionStatus() instanceof Failure)
+		    passed = true;
+		else
+		    System.out.println("Activity completed with: "+ua.getCompletionStatus());
+	    }
+	    else
+		System.out.println("Activity status: "+ua.status());
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,170 @@
+/*
+ * 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: DemoHLS.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.common;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoHLS.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoHLS implements HLS
+{
+
+    /**
+     * An activity has begun and is active on the current thread.
+     */
+
+    public void begun () throws SystemException
+    {
+	try
+	{
+	    GlobalId activityId = UserActivityFactory.userActivity().activityId();
+
+	    System.out.println("DemoHLS.begun "+activityId);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	try
+	{
+	    System.out.println("DemoHLS.complete ( "+cs+" ) "+UserActivityFactory.userActivity().activityId());
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+
+	return null;
+    }	
+
+    /**
+     * The activity has been suspended. How does the HLS know which activity
+     * has been suspended? It must remember what its notion of current is.
+     */
+
+    public void suspended () throws SystemException
+    {
+	System.out.println("DemoHLS.suspended");
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resumed () throws SystemException
+    {
+	System.out.println("DemoHLS.resumed");
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+	try
+	{
+	    System.out.println("DemoHLS.completed "+UserActivityFactory.userActivity().activityName());
+	}
+	catch (NoActivityException ex)
+	{
+	    ex.printStackTrace();
+	}
+    }		
+
+    /**
+     * The HLS name.
+     */
+
+    public String identity () throws SystemException
+    {
+	return "DemoHLS";
+    }
+
+    /**
+     * The activity service maintains a priority ordered list of HLS
+     * implementations. If an HLS wishes to be ordered based on priority
+     * then it can return a non-negative value: the higher the value,
+     * the higher the priority and hence the earlier in the list of HLSes
+     * it will appear (and be used in).
+     *
+     * @return a positive value for the priority for this HLS, or zero/negative
+     * if the order is not important.
+     */
+
+    public int priority () throws SystemException
+    {
+	return 0;
+    }
+
+    /**
+     * Return the context augmentation for this HLS, if any on the current
+     * activity.
+     *
+     * @return a context object or null if no augmentation is necessary.
+     */
+
+    public Context context () throws SystemException
+    {
+	return new DemoSOAPContextImple(identity());
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoSOAPContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoSOAPContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/DemoSOAPContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: DemoSOAPContextImple.java,v 1.5.4.1 2005/11/22 10:31:42 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wsas.common;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mwlabs.wsas.util.XMLUtils;
+
+/**
+ */
+
+public class DemoSOAPContextImple implements SOAPContext
+{
+
+    public DemoSOAPContextImple (String id)
+    {
+    	try
+    	{
+    	    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+    	    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+    	
+    	    org.w3c.dom.Document doc = docBuilder.newDocument();
+    
+    	    _context = doc.createElement(id);
+    
+    	    _context.appendChild(doc.createTextNode("urn:mycomputer.org:"+id+":foo:bar"));
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+    	    
+    	    _context = null;
+    	}
+    }
+
+    public void initialiseContext (Object param)
+    {
+    }
+    
+    /**
+     * 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)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+    
+    public String identifier ()
+    {
+	return "DemoSOAPContextImple";
+    }
+
+    public String toString ()
+    {
+        return XMLUtils.writeToString(_context) ;
+    }
+    
+    private org.w3c.dom.Element _context;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/FailureHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/FailureHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/common/FailureHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,212 @@
+/*
+ * 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: FailureHLS.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.common;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: FailureHLS.java,v 1.2 2005/05/19 12:13:19 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class FailureHLS implements HLS
+{
+
+    public static final int BEGUN_FAIL = 0;
+    public static final int COMPLETE_FAIL = 1;
+    public static final int SUSPENDED_FAIL = 2;
+    public static final int RESUMED_FAIL = 3;
+    public static final int COMPLETED_FAIL = 4;
+    public static final int CONTEXT_FAIL = 5;
+    public static final int NO_FAIL = 10;
+    
+    public FailureHLS ()
+    {
+	this(FailureHLS.NO_FAIL);
+    }
+
+    public FailureHLS (int failPoint)
+    {
+	_failPoint = failPoint;
+    }
+    
+    /**
+     * An activity has begun and is active on the current thread.
+     */
+
+    public void begun () throws SystemException
+    {
+	if (_failPoint == FailureHLS.BEGUN_FAIL)
+	    throw new SystemException();
+	
+	try
+	{
+	    GlobalId activityId = UserActivityFactory.userActivity().activityId();
+
+	    System.out.println("FailureHLS.begun "+activityId);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	if (_failPoint == FailureHLS.COMPLETE_FAIL)
+	    throw new SystemException();
+
+	try
+	{
+	    System.out.println("FailureHLS.complete ( "+cs+" ) "+UserActivityFactory.userActivity().activityId());
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+
+	return null;
+    }	
+
+    /**
+     * The activity has been suspended. How does the HLS know which activity
+     * has been suspended? It must remember what its notion of current is.
+     */
+
+    public void suspended () throws SystemException
+    {
+	if (_failPoint == FailureHLS.SUSPENDED_FAIL)
+	    throw new SystemException();
+
+	System.out.println("FailureHLS.suspended");
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resumed () throws SystemException
+    {
+	if (_failPoint == FailureHLS.RESUMED_FAIL)
+	    throw new SystemException();
+
+	System.out.println("FailureHLS.resumed");
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+	if (_failPoint == FailureHLS.COMPLETED_FAIL)
+	    throw new SystemException();
+
+	try
+	{
+	    System.out.println("FailureHLS.completed "+UserActivityFactory.userActivity().activityName());
+	}
+	catch (NoActivityException ex)
+	{
+	    ex.printStackTrace();
+	}
+    }		
+
+    /**
+     * The HLS name.
+     */
+
+    public String identity () throws SystemException
+    {
+	return "FailureHLS";
+    }
+
+    /**
+     * The activity service maintains a priority ordered list of HLS
+     * implementations. If an HLS wishes to be ordered based on priority
+     * then it can return a non-negative value: the higher the value,
+     * the higher the priority and hence the earlier in the list of HLSes
+     * it will appear (and be used in).
+     *
+     * @return a positive value for the priority for this HLS, or zero/negative
+     * if the order is not important.
+     */
+
+    public int priority () throws SystemException
+    {
+	return 0;
+    }
+
+    /**
+     * Return the context augmentation for this HLS, if any on the current
+     * activity.
+     *
+     * @param ActivityHierarchy current The handle on the current activity
+     * hierarchy. The HLS may use this when determining what information to
+     * place in its context data.
+     *
+     * @return a context object or null if no augmentation is necessary.
+     */
+
+    public Context context () throws SystemException
+    {
+	if (_failPoint == FailureHLS.CONTEXT_FAIL)
+	    throw new SystemException();
+
+	return new DemoSOAPContextImple(identity());
+    }
+
+    private int _failPoint;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context1.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context1.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context1.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,130 @@
+/*
+ * 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: Context1.java,v 1.2.24.1 2005/11/22 10:31:41 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wsas.hls;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mwlabs.wsas.util.XMLUtils;
+import com.arjuna.mwtests.wsas.common.DemoHLS;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Context1.java,v 1.2.24.1 2005/11/22 10:31:41 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Context1
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	    ActivityManagerFactory.activityManager().addHLS(new DemoHLS());
+	    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+	    org.w3c.dom.Document factory = docBuilder.newDocument();
+	    org.w3c.dom.Element root = factory.createElement("Context1-test");
+	    
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+        ((SOAPContext)theContext).serialiseToElement(root);
+	    
+	    org.w3c.dom.Document doc = docBuilder.newDocument();
+	    doc.appendChild(root);
+	    
+	    System.out.println(XMLUtils.writeToString(doc));
+
+	    ua.end();
+
+	    System.out.println("\nFinished child activity.\n");
+
+	    theContext = manager.context();
+
+	    root = factory.createElement("Context1-test");
+
+        ((SOAPContext)theContext).serialiseToElement(root);
+	    
+	    doc = docBuilder.newDocument();
+	    doc.appendChild(root);
+
+	    System.out.println(XMLUtils.writeToString(doc));
+
+	    ua.end();
+
+	    System.out.println("\nFinished parent activity.\n");
+
+	    theContext = manager.context();
+
+	    root = factory.createElement("Context1-test");
+
+        ((SOAPContext)theContext).serialiseToElement(root);
+	    
+	    doc = docBuilder.newDocument();
+	    doc.appendChild(root);
+
+	    System.out.println(XMLUtils.writeToString(doc));
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context2.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context2.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Context2.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,134 @@
+/*
+ * 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: Context2.java,v 1.3.24.1 2005/11/22 10:31:41 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wsas.hls;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mwlabs.wsas.util.XMLUtils;
+import com.arjuna.mwtests.wsas.common.DemoHLS;
+import com.arjuna.mwtests.wsas.common.FailureHLS;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Context2.java,v 1.3.24.1 2005/11/22 10:31:41 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Context2
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+
+	    ActivityManagerFactory.activityManager().addHLS(new DemoHLS());
+	    ActivityManagerFactory.activityManager().addHLS(new FailureHLS());
+
+	    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+	    org.w3c.dom.Document factory = docBuilder.newDocument();
+	    org.w3c.dom.Element root = factory.createElement("Context2-test");
+	    
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+        ((SOAPContext)theContext).serialiseToElement(root);
+	    
+	    org.w3c.dom.Document doc = docBuilder.newDocument();
+	    doc.appendChild(root);
+
+	    System.out.println(XMLUtils.writeToString(doc));
+	    
+	    ua.end();
+
+	    System.out.println("\nFinished child activity.\n");
+
+	    theContext = manager.context();
+
+	    root = factory.createElement("Context2-test");
+
+        ((SOAPContext)theContext).serialiseToElement(root);
+	    
+	    doc = docBuilder.newDocument();
+	    doc.appendChild(root);
+	    
+	    System.out.println(XMLUtils.writeToString(doc));
+
+	    ua.end();
+
+	    System.out.println("\nFinished parent activity.\n");
+
+	    theContext = manager.context();
+
+	    root = factory.createElement("Context2-test");
+
+        ((SOAPContext)theContext).serialiseToElement(root);
+	    
+	    doc = docBuilder.newDocument();
+	    doc.appendChild(root);
+	    
+	    System.out.println(XMLUtils.writeToString(doc));
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Service.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Service.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/classes/com/arjuna/mwtests/wsas/hls/Service.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+/*
+ * 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: Service.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wsas.hls;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+import com.arjuna.mw.wsas.ActivityManager;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mwtests.wsas.common.DemoHLS;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Service.java,v 1.1 2002/11/25 10:51:47 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Service
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserActivity ua = UserActivityFactory.userActivity();
+	    ActivityManagerFactory.activityManager().addHLS(new DemoHLS());
+	    
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+
+	    ua.end();
+	    
+	    ua.end();
+	    
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/config/wsas.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/config/wsas.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/config/wsas.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,27 @@
+<!--
+  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.
+-->
+<wsas-config>
+	<properties>
+		<property name="com.arjuna.mw.wsas.deploymentContext"
+		value="null"/>
+		<property name="com.arjuna.mw.wsas.instance.foo" value="null"/>
+	</properties>
+</wsas-config>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/WSAS.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/WSAS.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/WSAS.xsd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xsd:element name="hls_specific_data" type="xsd:anyType"/>
+	<xsd:element name="activity_specific_data" type="xsd:anyType"/>
+	<xsd:element name="timeout" type="xsd:integer"/>
+	<xsd:element name="type" type="xsd:anyURI"/>
+	<xsd:element name="ctxId" type="xsd:anyURI"/>
+	<xsd:element name="activity-context-element">
+		<xsd:annotation>
+			<xsd:documentation>Comment describing your root element</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="ctxId"/>
+				<xsd:element ref="type" minOccurs="0"/>
+				<xsd:element ref="timeout" minOccurs="0"/>
+				<xsd:element ref="activity_specific_data" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="hls-context-element">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="type"/>
+				<xsd:element ref="hls_specific_data" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="activity_context">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="activity-context-element" maxOccurs="2"/>
+				<xsd:element ref="hls-context-element" minOccurs="0" maxOccurs="2"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+</xsd:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/example.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/example.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSAS/xml/example.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,34 @@
+<!--
+  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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<!--Sample XML file generated by XML Spy v4.0 U (http://www.xmlspy.com)-->
+<activity_context xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\mlittle\Desktop\WSAS.xsd">
+	<activity-context-element>
+		<ctxId>http://www.xmlspy.com</ctxId>
+		<type>http://www.xmlspy.com</type>
+		<timeout>0</timeout>
+		<activity_specific_data>String</activity_specific_data>
+	</activity-context-element>
+	<hls-context-element>
+		<type>http://www.xmlspy.com</type>
+		<hls_specific_data>String</hls_specific_data>
+	</hls-context-element>
+</activity_context>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/README
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/README	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/README	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,24 @@
+#
+# 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.
+#
+The  WSCF  layers on  the  activity  service  (WSAS) by  providing  an
+appropriate HLS.  Currently this  layering is not transparent in terms
+of  types  and exceptions  used  from the  WSAS.  We  could hide  this
+completely.

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,211 @@
+<!--
+  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.
+-->
+<project name="WSCF" default="com.arjuna.mw.wscf.war" basedir=".">
+	<!-- Set module name -->
+	<property name="com.arjuna.mwlabs.ts.modulename" value="wscf"/>
+
+	<!-- Set default properties filename -->
+	<property name="com.arjuna.mw.wscf.properties" value="wscf.properties"/>
+
+	<!-- Load Build Properties File -->
+	<property file="${com.arjuna.mw.wscf.properties}"/>
+
+	<!-- Set internal property defaults -->
+	<!-- Path names -->
+	<property name="com.arjuna.mwlabs.wscf.src" value="classes"/>
+	<property name="com.arjuna.mwlabs.wscf.dest.root" value="build"/>
+	<property name="com.arjuna.mwlabs.wscf.dest" value="build/classes"/>
+	<property name="com.arjuna.mwlabs.wscf.jar.dest" value="build/lib"/>
+	<property name="com.arjuna.mwlabs.wscf.war.dest" value="build/webapps"/>
+	<property name="com.arjuna.mwlabs.wscf.htdocs.dest" value="build/htdocs"/>
+
+    <property name="com.arjuna.buildsystem.dir" location="../../antbuildsystem"/>
+    <property name="com.arjuna.jta.install" location="../../install"/>
+
+    <property name="com.arjuna.buildsystem.lib" location="${com.arjuna.buildsystem.dir}/build/lib"/>
+    <property name="com.arjuna.jta.install.lib" location="${com.arjuna.jta.install}/lib"/>
+    <property name="com.arjuna.jta.install.ext" location="${com.arjuna.jta.install.lib}/ext"/>
+    <property name="com.arjuna.xts.ext" location="../ext"/>
+
+    <property name="com.arjuna.buildsystem.lib.jars" value="buildsystem.jar"/>
+
+    <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="wsas.libs" value="wsas.jar"/>
+    <property name="wsc.libs" value="ws-c.jar"/>
+
+    <property name="com.arjuna.mwlabs.wscf.resourcebundle"
+	      value="wscf_msg_en_US.properties"/>
+
+	<!--Set external directories -->
+
+	<property name="com.arjuna.mwlabs.wsas.jar.dest" value="../WSAS/build/lib"/>
+	<property name="com.arjuna.mwlabs.wsc.jar.dest" value="../WS-C/build/dev/lib"/>
+
+    <!-- Define classpath builder task -->
+    <path id="com.arjuna.buildsystem.classpath">
+        <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
+    </path>
+    <property name="com.arjuna.buildsystem.classpath" refid="com.arjuna.buildsystem.classpath"/>
+	<taskdef name="classpath-builder" classname="com.hp.mw.buildsystem.ant.ClasspathBuilder" classpathref="com.arjuna.buildsystem.classpath"/>
+	<!-- class path behaviour -->
+	<property name="build.sysclasspath" value="last"/>
+	<property name="com.arjuna.mwlabs.classpathbuilderfilename" location="buildsystem.classpath"/>
+
+	<path id="com.arjuna.mwlabs.wscf.lib.classpath">
+        <fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
+        <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars} ${jta.ext.compile.jars}"/>
+        <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}"/>
+    </path>
+
+	<!-- Initialisation -->
+	<target name="com.arjuna.mwlabs.wscf.init">
+		<!-- Define default build properties -->
+		<tstamp>
+			<format property="com.arjuna.mw.wscf.date" pattern="yyyy/mm/dd hh:mm aa"/>
+		</tstamp>
+		<!-- Make the destination directory -->
+		<mkdir dir="${com.arjuna.mwlabs.wscf.dest}"/>
+		<mkdir dir="${com.arjuna.mwlabs.wscf.war.dest}"/>
+	</target>
+
+	<!-- Compilation targets -->
+	<target name="com.arjuna.mw.wscf.compile"
+	depends="com.arjuna.mwlabs.wscf.compile,
+		com.arjuna.mw.wscf.htdocs, com.arjuna.mwlabs.wscf.generateresourcebundle"/>
+
+	<target name="com.arjuna.mwlabs.wscf.compile" depends="com.arjuna.mwlabs.wscf.init">
+		<echo message="Compiling module"/>
+		<javac srcdir="${com.arjuna.mwlabs.wscf.src}"
+                       destdir="${com.arjuna.mwlabs.wscf.dest}"
+                       debug="yes">
+			<classpath>
+				<path refid="com.arjuna.mwlabs.wscf.lib.classpath"/>
+			</classpath>
+		</javac>
+	</target>
+
+	<!-- htdocs paths -->
+	<path id="com.arjuna.mw.wscf.htdocs.path">
+		<pathelement path="classes"/>
+	</path>
+
+	<!-- Build htdocs for just mw, or mw and mwlabs -->
+	<property name="com.arjuna.mwlabs.wscf.htdocs.list"
+	value="com.arjuna.mw.*"/>
+
+	<target name="com.arjuna.mw.wscf.war" depends="com.arjuna.mw.wscf.jar">
+	  <war warfile="${com.arjuna.mwlabs.wscf.war.dest}/${com.arjuna.mwlabs.ts.modulename}.war" webxml="xml/wscf_web-app.xml">
+        <manifest>
+            <attribute name="Class-Path" value="${com.arjuna.mwlabs.ts.modulename}.jar"/>
+        </manifest>
+      </war>
+	</target>
+
+	<!-- Jar targets -->
+	<target name="com.arjuna.mw.wscf.jar" depends="com.arjuna.mw.wscf.compile">
+		<echo message="Building jar file"/>
+		<mkdir dir="${com.arjuna.mwlabs.wscf.jar.dest}"/>
+
+		<copy file="xml/ArjunaCoreHLS.xml"
+		tofile="${com.arjuna.mwlabs.wscf.dest}/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ArjunaCoreHLS.xml"/>
+		<copy file="xml/JTAHLS.xml"
+		tofile="${com.arjuna.mwlabs.wscf.dest}/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/JTAHLS.xml"/>
+		<copy file="xml/TwoPhaseHLSImple.xml"
+		tofile="${com.arjuna.mwlabs.wscf.dest}/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/TwoPhaseHLSImple.xml"/>
+		<copy file="xml/SagasHLSImple.xml"
+		tofile="${com.arjuna.mwlabs.wscf.dest}/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/SagasHLSImple.xml"/>
+		<copy file="xml/JTAHLSImple.xml"
+		tofile="${com.arjuna.mwlabs.wscf.dest}/com/arjuna/mwlabs/wscf/model/jta/arjunajta/JTAHLSImple.xml"/>
+
+		<jar jarfile="${com.arjuna.mwlabs.wscf.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar"
+            basedir="${com.arjuna.mwlabs.wscf.dest}">
+            <manifest>
+                <attribute name="Class-Path" value="${wsas.libs} ${wsc.libs} ${jta.lib.jars} ${jta.ext.jars} config.jar"/>
+            </manifest>
+        </jar>
+	</target>
+
+	<target name="com.arjuna.mw.wscf.htdocs"
+				depends="com.arjuna.mwlabs.wscf.init">
+		<echo message="Building htdocs "/>
+		<mkdir dir="${com.arjuna.mwlabs.wscf.htdocs.dest}"/>
+		<path id="com.arjuna.mwlabs.wscf.htdocs.path">
+			<path refid="com.arjuna.mw.wscf.htdocs.path"/>
+		</path>
+
+		<javadoc
+			sourcepathref="com.arjuna.mwlabs.wscf.htdocs.path"
+			destdir="${com.arjuna.mwlabs.wscf.htdocs.dest}"
+			packagenames="${com.arjuna.mwlabs.wscf.htdocs.list}"
+	        >
+			<classpath>
+				<path refid="com.arjuna.mwlabs.wscf.lib.classpath"/>
+				<path path="${com.arjuna.mwlabs.wscf.src}"/>
+			</classpath>
+		</javadoc>
+	</target>
+
+        <target name="com.arjuna.mwlabs.wscf.generateresourcebundle">
+
+            <echo message="Generating WSCF Bundle"/>
+
+            <classpath-builder filename="${com.arjuna.mwlabs.classpathbuilderfilename}" inproperty="build.classpath"/>
+
+            <javadoc    sourcepath="${com.arjuna.mwlabs.wscf.src}"
+                        packagenames="com.arjuna.*"
+                        failonerror="yes"
+                        private="yes"
+                        defaultexcludes="yes"
+                        classpath="${build.classpath}">
+
+                 <doclet name="com.hp.mw.buildsystem.doclet.resbundledoclet.ResourceBundleDoclet">
+                    <path>
+                        <pathelement path="${com.arjuna.buildsystem.classpath}"/>
+                    </path>
+                    <param name="-basedir" value="${basedir}/${com.arjuna.mwlabs.wscf.dest}"/>
+                    <param name="-resourcebundle" value="${com.arjuna.mwlabs.wscf.resourcebundle}"/>
+                 </doclet>
+            </javadoc>
+
+        </target>
+
+	<!-- Clean targets -->
+	<target name="com.arjuna.mw.wscf.clean">
+		<echo message="Cleaning module"/>
+		<delete dir="${com.arjuna.mwlabs.wscf.dest}"/>
+		<delete dir="${com.arjuna.mwlabs.wscf.dest.root}"/>
+		<delete dir="${com.arjuna.mwlabs.wscf.htdocs.dest}"/>
+		<delete file="${com.arjuna.mwlabs.wscf.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar"/>
+		<delete file="${com.arjuna.mwlabs.wscf.info.dest}"/>
+	</target>
+
+	<!-- Short target names -->
+	<target name="compile" depends="com.arjuna.mw.wscf.compile"/>
+	<target name="jar" depends="com.arjuna.mw.wscf.jar"/>
+	<target name="war" depends="com.arjuna.mw.wscf.war"/>
+	<target name="clean" depends="com.arjuna.mw.wscf.clean"/>
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/Context.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/Context.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/Context.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+/*
+ * 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: Context.java,v 1.1.24.1 2005/11/22 10:34:14 kconner Exp $
+ */
+
+package com.arjuna.mw.wsc.context;
+
+import com.arjuna.webservices.wscoor.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 Context
+{
+
+    public CoordinationContextType getCoordinationContext ();
+    
+    public void setCoordinationContext (CoordinationContextType cc);
+
+    public boolean equals (Object obj);
+    
+}

Added: 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	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.mw.wsc.deploy;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.mw.wsas.utils.Configuration;
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mwlabs.wsc.ContextFactoryMapperImple;
+import com.arjuna.wsc.ContextFactoryMapper;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Initialise WSCF.
+ * @author kevin
+ */
+public class WSCFInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     * 
+     * @message com.arjuna.mw.wsc.deploy.WSCFI_1 [com.arjuna.mw.wsc.deploy.WSCFI_1] - WSCF Initialisation: init failed: 
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSCF) {
+           public void run() {
+               try
+               {
+                   Configuration.initialise("/wscf.xml");
+            
+                   final ContextFactoryMapper wscfImpl = ContextFactoryMapper.getFactory() ;
+
+                   wscfImpl.setSubordinateContextFactoryMapper(new ContextFactoryMapperImple());
+               }
+               catch (Exception exception)
+               {
+                   wscfLogger.arjLoggerI18N.error("com.arjuna.mw.wsc.deploy.WSCFI_1", exception);
+               }
+               catch (Error error)
+               {
+                   wscfLogger.arjLoggerI18N.error("com.arjuna.mw.wsc.deploy.WSCFI_1", error);
+               }
+           }
+        };
+        // this is the last WST callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WSCF);
+
+    }
+
+    /**
+     * 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/WSCF/classes/com/arjuna/mw/wscf/UserCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,137 @@
+/*
+ * 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: UserCoordinator.java,v 1.2 2005/05/19 12:13:20 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.UserActivity;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * The user portion of the coordinator API. An implementation of this interface
+ * presents each thread with the capability to create and manage coordinators.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinator.java,v 1.2 2005/05/19 12:13:20 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface UserCoordinator extends UserActivity
+{
+
+    /**
+     * Coordinate the participants using the current completion status
+     * associated with the activity. This does not necessarily complete the
+     * coordination domain, i.e., it may be possible to call this method
+     * multiple times within the lifetime of a single activity.
+     * 
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be coordinated, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public Outcome coordinate () throws WrongStateException, ProtocolViolationException, NoActivityException, SystemException;
+
+
+    /**
+     * Coordinate the participants using the completion status provided.
+     * This does not necessarily complete the coordination domain, i.e., it
+     * may be possible to call this method multiple times within the lifetime
+     * of a single activity.
+     * 
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be coordinated, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @param cs The CompletionStatus to use.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, NoActivityException, SystemException;
+
+    /**
+     * Each participant can supply qualifiers to the coordinator at the time
+     * it enrols. These qualifiers may be used within the coordination protocol
+     * and hence need to be made available to users.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return Qualifier[] qualifiers The qualifiers for all of the enlisted
+     * participants, or null if there are none.
+     */
+
+    public Qualifier[] qualifiers () throws NoActivityException, SystemException;
+
+    /**
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the unique coordinator id for the current coordinator. This
+     * may or may not be the same as the activity id.
+     */
+
+    public CoordinatorId identifier () throws NoActivityException, SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinatorFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinatorFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/UserCoordinatorFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,171 @@
+/*
+ * 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: UserCoordinatorFactory.java,v 1.12 2005/05/19 12:13:20 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mwlabs.wscf.UserCoordinatorImple;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.HashMap;
+
+import java.io.FileNotFoundException;
+
+/**
+ * The factory which returns the UserCoordinator implementation to use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinatorFactory.java,v 1.12 2005/05/19 12:13:20 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UserCoordinatorFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the UserCoordinator implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.UCF_1 [com.arjuna.mw.wscf.UCF_1] - Failed to create {0} doc!
+     */
+
+    public static UserCoordinator userCoordinator () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS.class.getName());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.UCF_1",
+					      new Object[]{com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS.class.getName()});
+	    }
+	    else
+		return userCoordinator(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the UserCoordinator implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static UserCoordinator userCoordinator (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		UserCoordinatorImple coord = (UserCoordinatorImple) _implementations.get(protocolType);
+	
+		if (coord == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+		
+		    coord = new UserCoordinatorImple(implementation);
+
+		    _implementations.put(protocolType, coord);
+		}
+
+		return coord;
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+
+    static
+    {
+	try
+	{
+	    com.arjuna.mw.wsas.utils.Configuration.initialise("/wscf.xml");
+	}
+	catch (FileNotFoundException ex)
+	{
+	}
+	catch (Exception ex)
+	{
+	    throw new ExceptionInInitializerError(ex.toString());
+	}
+    }
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/api/UserCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/api/UserCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/api/UserCoordinatorService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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: UserCoordinatorService.java,v 1.2 2005/05/19 12:13:20 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.api;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * This interface defines the operations that implementations of coordination
+ * protocols must provide. The basic interface does not imply any specific
+ * coordination protocol.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinatorService.java,v 1.2 2005/05/19 12:13:20 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface UserCoordinatorService
+{
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current coordinator. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException;
+
+    /**
+     * If the application requires and if the coordination protocol supports
+     * it, then this method can be used to execute a coordination protocol on
+     * the currently enlisted participants at any time prior to the termination
+     * of the coordination scope.
+     *
+     * @param cs The completion status to use when determining
+     * how to execute the protocol.
+     *
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * the does not allow coordination to occur.
+     * @exception ProtocolViolationException Thrown if the protocol is violated
+     * in some manner during execution.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return The result of executing the protocol, or null.
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, NoCoordinatorException, SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the complete list of qualifiers that have been registered with
+     * the current coordinator.
+     */
+
+    public Qualifier[] qualifiers () throws NoCoordinatorException, SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identity of the current coordinator.
+     */
+
+    public CoordinatorId identifier () throws NoCoordinatorException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorId.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorId.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorId.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinatorId.java,v 1.2 2003/01/07 10:33:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.common;
+
+/**
+ * Implementations of this interface provide globally unique identifications
+ * for coordinators. The may use the activity id but need not do so.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorId.java,v 1.2 2003/01/07 10:33:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface CoordinatorId
+{
+
+    /**
+     * Two instances are identical if their targets are the same.
+     */
+
+    public boolean equals (Object obj);
+    
+    /**
+     * @return the byte stream representing this instance.
+     */
+
+    public byte[] value ();
+    
+    /**
+     * @return <code>true</code> if this instance is valid, <code>false</code>
+     * otherwise.
+     */
+
+    public boolean valid ();
+
+    /**
+     * @return string form.
+     */
+
+    public String toString ();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorXSD.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorXSD.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/CoordinatorXSD.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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: CoordinatorXSD.java,v 1.2 2002/12/20 14:29:03 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.common;
+
+/**
+ * The coordination protocol schema is used to allow a coordination
+ * implementation to uniquely and unambiguously specify the type of
+ * protocol that is provided. Obviously one coordinator implementation may
+ * support multiple protocols.
+ *
+ * When a coordination implementation is registered with the WSCF the
+ * respective XML protocol definition is also provided. Likewise, when a
+ * user/application requests to use a specific coordination protocol it must
+ * provide the XML protocol definition. This class represents the element names
+ * that are used to parse the XML.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorXSD.java,v 1.2 2002/12/20 14:29:03 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorXSD
+{
+
+    public static final String coordinatorType = "coordinator-type";
+    public static final String coordinatorName = "coordinator-name";  // optional
+    public static final String notification = "notification";
+    public static final String notificationAttributeName = "name";
+    public static final String response = "response";
+    public static final String responseElementName = "name";
+    public static final String genericCoordinator = "generic";
+    
+}

Added: 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	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Environment.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Environment.java,v 1.6 2004/03/15 13:25:01 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.common;
+
+/**
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Environment.java,v 1.6 2004/03/15 13:25:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Environment
+{
+
+    public static final String PROTOCOL_IMPLEMENTATION = "com.arjuna.mw.wscf.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/common/Qualifier.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Qualifier.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Qualifier.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+/*
+ * 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: Qualifier.java,v 1.1 2002/11/25 10:56:31 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.common;
+
+/**
+ * A qualifier for the core coordination engine to use. Qualifiers
+ * can be used to augment the protocol. For example, when enlisting a
+ * participant with a transaction, it is possible to specify a caveat on
+ * the enroll via a suitable qualifier, such that the coordinator knows
+ * (in this example) that the participant will cancel if it does not hear
+ * from the coordinator within 24 hours.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Qualifier.java,v 1.1 2002/11/25 10:56:31 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Qualifier
+{
+    /**
+     * @return the unique name for this qualifier.
+     */
+
+    public String qualifierName ();
+
+    /**
+     * @return the context of this qualifier.
+     */
+
+    public String content ();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/BegunFailedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/BegunFailedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/BegunFailedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: BegunFailedException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordination protocol failed to start.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BegunFailedException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BegunFailedException extends SystemException
+{
+
+    public BegunFailedException ()
+    {
+	super();
+    }
+
+    public BegunFailedException (String s)
+    {
+	super(s);
+    }
+
+    public BegunFailedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/DuplicateParticipantException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/DuplicateParticipantException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/DuplicateParticipantException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: DuplicateParticipantException.java,v 1.1 2002/12/19 10:44:02 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * There was an attempt to register the same participant with the coordinator.
+ * Some coordination protocols may allow this, whilst others will not.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DuplicateParticipantException.java,v 1.1 2002/12/19 10:44:02 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DuplicateParticipantException extends WSASException
+{
+
+    public DuplicateParticipantException ()
+    {
+	super();
+    }
+
+    public DuplicateParticipantException (String s)
+    {
+	super(s);
+    }
+
+    public DuplicateParticipantException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/InvalidParticipantException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/InvalidParticipantException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/InvalidParticipantException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: InvalidParticipantException.java,v 1.1 2002/12/19 10:44:02 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * The specified participant is invalid in the context used.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidParticipantException.java,v 1.1 2002/12/19 10:44:02 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidParticipantException extends WSASException
+{
+
+    public InvalidParticipantException ()
+    {
+	super();
+    }
+
+    public InvalidParticipantException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidParticipantException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/NoCoordinatorException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/NoCoordinatorException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/NoCoordinatorException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: NoCoordinatorException.java,v 1.1 2002/12/17 11:36:38 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NoCoordinatorException.java,v 1.1 2002/12/17 11:36:38 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NoCoordinatorException extends SystemException
+{
+
+    public NoCoordinatorException ()
+    {
+	super();
+    }
+
+    public NoCoordinatorException (String s)
+    {
+	super(s);
+    }
+
+    public NoCoordinatorException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolAlreadyRegisteredException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolAlreadyRegisteredException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolAlreadyRegisteredException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: ProtocolAlreadyRegisteredException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * An attempt has been made to register the same coordination protocol
+ * with the protocol factory.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolAlreadyRegisteredException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolAlreadyRegisteredException extends WSASException
+{
+
+    public ProtocolAlreadyRegisteredException ()
+    {
+	super();
+    }
+
+    public ProtocolAlreadyRegisteredException (String s)
+    {
+	super(s);
+    }
+
+    public ProtocolAlreadyRegisteredException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolNotRegisteredException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolNotRegisteredException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/ProtocolNotRegisteredException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: ProtocolNotRegisteredException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * An attempt was made to act on a protocol that the protocol factory had
+ * no knowledge of.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolNotRegisteredException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolNotRegisteredException extends WSASException
+{
+
+    public ProtocolNotRegisteredException ()
+    {
+	super();
+    }
+
+    public ProtocolNotRegisteredException (String s)
+    {
+	super(s);
+    }
+
+    public ProtocolNotRegisteredException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnexpectedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnexpectedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnexpectedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: UnexpectedException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * A general error has occurred.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnexpectedException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnexpectedException extends SystemException
+{
+
+    public UnexpectedException ()
+    {
+	super();
+    }
+
+    public UnexpectedException (String s)
+    {
+	super(s);
+    }
+
+    public UnexpectedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnknownProtocolImplementationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnknownProtocolImplementationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnknownProtocolImplementationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: UnknownProtocolImplementationException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * An attempt was made to operate on a protocol implementation that the
+ * factory did not know about.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnknownProtocolImplementationException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnknownProtocolImplementationException extends WSASException
+{
+
+    public UnknownProtocolImplementationException ()
+    {
+	super();
+    }
+
+    public UnknownProtocolImplementationException (String s)
+    {
+	super(s);
+    }
+
+    public UnknownProtocolImplementationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnsupportedQualifierException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnsupportedQualifierException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/exceptions/UnsupportedQualifierException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: UnsupportedQualifierException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Exception reported if a given qualifier is not supported. This includes
+ * those cases where the <i>format</i> of a qualifier is not in canonical form.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnsupportedQualifierException.java,v 1.1 2002/11/25 10:56:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnsupportedQualifierException extends WSASException
+{
+
+    public UnsupportedQualifierException ()
+    {
+        super();
+    }
+
+    public UnsupportedQualifierException (String msg)
+    {
+        super(msg);
+    }
+
+    public UnsupportedQualifierException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2005,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: wscfLogger.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.logging;
+
+import com.arjuna.common.util.logging.*;
+
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+
+import java.util.*;
+
+public class wscfLogger
+{
+
+    public static LogNoi18n      arjLogger;
+    public static Logi18n        arjLoggerI18N;
+    public static ResourceBundle log_mesg;
+
+    private static String language;
+    private static String country;
+    private static Locale currentLocale;
+    private static String dirLocale;
+
+    static
+    {
+    /** Ensure the properties are loaded before initialising the logger **/
+    arjPropertyManager.getPropertyManager();
+        
+	arjLogger = LogFactory.getLogNoi18n("com.arjuna.mw.wscf.logging.wscfLogger");
+
+	language = commonPropertyManager.propertyManager.getProperty("language","en");
+	country  = commonPropertyManager.propertyManager.getProperty("country","US");
+
+	currentLocale = new Locale(language,country);
+	log_mesg = ResourceBundle.getBundle("wscf_msg",currentLocale);
+	
+	arjLoggerI18N = LogFactory.getLogi18n("com.arjuna.mw.wscf.logging.wscfLoggerI18N",
+					     "wscf_msg_"+language+"_"+country);
+	
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,130 @@
+/*
+ * 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: CoordinatorManager.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * The CoordinatorManager is the way in which services can enlist
+ * participants with the current coordinator.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManager.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface CoordinatorManager
+{
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread. If the coordinator supports a priority ordering
+     * of participants, then that ordering can also be specified. Any
+     * qualifiers that are to be associated with the participant are also
+     * provided
+     *
+     * @param act The participant.
+     * @param priority The priority to associate with the participant in
+     * the coordinator's list.
+     * @param quals Any qualifiers to be associated with the
+     * participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addParticipant (Participant act, int priority, Qualifier[] quals) throws NoActivityException, WrongStateException, DuplicateParticipantException, InvalidParticipantException, SystemException;
+
+    /**
+     * Remove the specified participant from the coordinator associated with
+     * the current thread.
+     *
+     * @param act The participant to remove.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void removeParticipant (Participant act) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Some coordination protocol messages may have asynchronous responses
+     * or it may be possible for participants to autonomously generate
+     * responses to messages that have not yet been producted by the
+     * coordinator. As such, this method allows a response from a participant
+     * to be passed to the coordinator. In order to ensure that the protocol
+     * remains valid, it is necessary for the participant to specify what
+     * message produced the response: if the response was autonomously
+     * generated by the participant on the assumption it would receive this
+     * message from the coordinator and the coordinator subsequently decides
+     * not to produce such a message, then the action taken by the participant
+     * is invalid and hence so is the response.
+     *
+     * @param id the unique participant identification.
+     * @param notification the message the participant got/assumed
+     * when producing the response.
+     * @param response the actual response.
+     * @param quals any qualifiers associated with the response.
+     *
+     * @exception InvalidParticipantException Thrown if the coordinator has no
+     * knowledge of the participant.
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * that does not allow it to accept responses at all or this specific
+     * type of response.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/CoordinatorManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinatorManagerFactory.java,v 1.6 2005/03/10 15:37:03 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mwlabs.wscf.model.as.CoordinatorManagerImple;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.Hashtable;
+
+/**
+ * The factory to return the specific CoordinatorManager implementation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManagerFactory.java,v 1.6 2005/03/10 15:37:03 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorManagerFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.as.CMF_1 [com.arjuna.mw.wscf.model.as.CMF_1] - Failed to create 
+     */
+
+    public static CoordinatorManager coordinatorManager () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS.class.getName());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.as.CMF_1",
+					      new Object[]{com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS.class.getName()});
+	    }
+	    else
+		return coordinatorManager(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static CoordinatorManager coordinatorManager (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		CoordinatorManagerImple coord = (CoordinatorManagerImple) _implementations.get(protocolType);
+	
+		if (coord == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+		
+		    coord = new CoordinatorManagerImple(implementation);
+
+		    _implementations.put(protocolType, coord);
+		}
+	    
+		return coord;
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static Hashtable       _implementations = new Hashtable();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Coordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Coordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Coordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+/*
+ * 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: Coordinator.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.exceptions.InvalidParticipantException;
+import com.arjuna.mw.wscf.exceptions.DuplicateParticipantException;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+/**
+ * The generic coordinator interface. All coordinator implementations
+ * must at least conform to this interface.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Coordinator.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Coordinator
+{
+
+    /**
+     * Coordinate the participants using the completion status provided.
+     * 
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be coordinated, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @param cs The CompletionStatus to use.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, SystemException;
+
+    /**
+     * Register the specified participant with the coordinator.
+     *
+     * @param act The participant to enroll with the coordinator.
+     * @param priority If the coordinator allows prioritisation of
+     * participants, this priority is used to ensure participant invocations
+     * occur in a specific order.
+     * @param quals Any qualifiers associated with the participant
+     * for this registration.
+     *
+     * @exception WrongStateException Thrown if the coordinator is not in
+     * a state that allows participants to be registered.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been registered with this coordinator.
+     * @exception InvalidParticipantException Thrown if the partcipant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addParticipant (Participant act, int priority, Qualifier[] quals) throws WrongStateException, DuplicateParticipantException, InvalidParticipantException, SystemException;
+
+    /**
+     * Unregister the specified participant from the coordinator.
+     *
+     * @param act The participant to remove.
+     *
+     * @exception InvalidParticipantException Thrown if the partcipant is not known
+     * of by the coordinator.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void removeParticipant (Participant act) throws InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Some coordination protocol will allow participants to make autonomous
+     * decisions based upon their current state and assumptions about which
+     * notifications a coordinator may send them.
+     *
+     * @param id The unique participant name.
+     * @param notification The notification that the participant has
+     * based the response on. For example, the response is related to a
+     * "prepare" notification.
+     * @param response The response to the assumed notification.
+     * @param quals Any qualifiers associated with the response.
+     *
+     * @exception WrongStateException Thrown if the coordinator is not in
+     * a state that is compatible with the received response.
+     * @exception InvalidParticipantException Thrown if the participant is not known
+     * to the coordinator.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+    
+    public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals) throws InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The parent coordinator for this coordinator, if any.
+     */
+
+    public Coordinator getParentCoordinator () throws SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The qualifiers associated with all registered participants.
+     */
+
+    public Qualifier[] qualifiers () throws SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/CoordinatorManagerService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/CoordinatorManagerService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/CoordinatorManagerService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinatorManagerService.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * This interface defines the operations that implementations of coordination
+ * protocols must provide. The basic interface does not imply any specific
+ * coordination protocol.
+ *
+ * Because this is a High Level Service, implementations are also required
+ * to support the methods defined in the basic HLS interface.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManagerService.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface CoordinatorManagerService
+{
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread. If the coordinator supports a priority ordering
+     * of participants, then that ordering can also be specified. Any
+     * qualifiers that are to be associated with the participant are also
+     * provided.
+     *
+     * @param act The participant.
+     * @param priority The priority to associate with the participant in
+     * the coordinator's list.
+     * @param quals Any qualifiers to be associated with the
+     * participant.
+     *
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addParticipant (Participant act, int priority, Qualifier[] quals) throws WrongStateException, DuplicateParticipantException, NoCoordinatorException, InvalidParticipantException, SystemException;
+
+    /**
+     * Remove the specified participant from the coordinator's list.
+     * This operation may not be supported by all coordination protocols.
+     *
+     * @exception InvalidParticipantException Thrown if the participant is not known
+     * of by the coordinator.
+     * @exception WrongStateException Thrown if the state of the coordinator
+     * does not allow the participant to be removed (e.g., in a two-phase
+     * protocol the coordinator is committing.)
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void removeParticipant (Participant act) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException;
+
+    /**
+     * Some coordination protocol messages may have asynchronous responses
+     * or it may be possible for participants to autonomously generate
+     * responses to messages that have not yet been producted by the
+     * coordinator. As such, this method allows a response from a participant
+     * to be passed to the coordinator. In order to ensure that the protocol
+     * remains valid, it is necessary for the participant to specify what
+     * message produced the response: if the response was autonomously
+     * generated by the participant on the assumption it would receive this
+     * message from the coordinator and the coordinator subsequently decides
+     * not to produce such a message, then the action taken by the participant
+     * is invalid and hence so is the response.
+     *
+     * @param id the unique participant identification.
+     * @param notification the message the participant got/assumed
+     * when producing the response.
+     * @param response the actual response.
+     * @param quals any qualifiers associated with the response.
+     *
+     * @exception InvalidParticipantException Thrown if the coordinator has no
+     * knowledge of the participant.
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * that does not allow it to accept responses at all or this specific
+     * type of response.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Message.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Message.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Message.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,83 @@
+/*
+ * 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: Message.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * Whenever a coordinator must contact a participant, it sends a protocol
+ * specific notification message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Message.java,v 1.2 2005/05/19 12:13:21 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Message
+{
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identification of this notification. The participant
+     * may use this as the only information necessary to process the request
+     * from the coordinator.
+     */
+
+    public String messageName () throws SystemException;
+
+    /**
+     * Many notifications may be processed simply on the name of the message.
+     * In those situations where this is not the case, additional protocol
+     * specific data may be send and obtained via this method.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The coordination specific data, or null if there is none.
+     */
+
+    public Object coordinationSpecificData () throws SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return Any qualifiers associated with the notification, or null.
+     * For example, "only vote to commit if you can remain in this state for
+     * 24 hours".
+     */
+
+    public Qualifier[] qualifiers () throws SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Participant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Participant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/Participant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Participant.java,v 1.4 2005/05/19 12:13:21 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.arjuna.state.InputObjectState;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+/**
+ * The Participant represents the participant interface. Because WSCF is a generic
+ * coordination framework, the basic participant is obviously generic.
+ * Specific participants bound to specific coordination types can be wrapped
+ * by this interface, thus hiding it from users.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Participant.java,v 1.4 2005/05/19 12:13:21 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Participant
+{
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the unique identity for this participant.
+     */
+
+    public String identity () throws SystemException;
+
+
+    /**
+     * Process the message from the coordinator and return a response, which
+     * may be null - validity is down to the specific coordinator.
+     *
+     * @param notification The message to be processed.
+     *
+     * @exception WrongStateException Thrown if the participant is not in a
+     * state which is valid given the input message.
+     * @exception ProtocolViolationException Thrown if the participant has
+     * violated the coordination protocol.
+     * @exception SystemException Thrown if any other error occurs.
+     * 
+     * @return the Outcome message representing the result of dealing with
+     * the notification. Null may be a valid response.
+     */
+
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException;
+
+    /*
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    /**
+     * Pack the state of the participant into the object buffer.
+     *
+     * @return <code>true</code> if successful, <code>false</code> otherwise.
+     */
+
+    public boolean packState (OutputObjectState os);
+
+    /**
+     * Unpack the state of the participant from the object buffer.
+     *
+     * @return <code>true</code> if successful, <code>false</code> otherwise.
+     */
+
+    public boolean unpackState (InputObjectState os);
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/common/Priorities.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/common/Priorities.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/common/Priorities.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Priorities.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.common;
+
+/**
+ * The typical two-phase coordination protocols have one or two types
+ * of participant:
+ *
+ * (i) the normal participant that takes part in the prepare/commit/rollback.
+ * (ii) the pre-two-phase participants (typically known as Synchronizations).
+ *
+ * Since WSCF allows participants to be prioritised within a coordinator's
+ * registered lists or participants, we can use this information to specify
+ * whether a participant is a "normal" participant or a Synchronization.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Priorities.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ * @since WSCF 1.0.
+ */
+
+public class Priorities
+{
+  
+    /**
+     * The participant is a Synchronization.
+     */
+
+    public static final int SYNCHRONIZATION = 0;
+
+    /**
+     * The participant takes part in the two-phase completion protocol only.
+     */
+
+    public static final int PARTICIPANT = 1;
+
+    /**
+     * @return the string version of the specified priority.
+     */
+
+    public static String stringForm (int res)
+    {
+	switch (res)
+	{
+	case SYNCHRONIZATION:
+	    return "Priorities.SYNCHRONIZATION";
+	case PARTICIPANT:
+	    return "Priorities.PARTICIPANT";
+	default:
+	    return "Unknown - "+res;
+	}
+    }
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/AfterCompletion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/AfterCompletion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/AfterCompletion.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,112 @@
+/*
+ * 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: AfterCompletion.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * A Synchronization participant is informed that the coordinator it is
+ * registered with has completed the two-phase protocol and in what state
+ * it finished, i.e., confirmed or cancelled. Any failures by the participant
+ * at this stage have no affect on the coordinator.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: AfterCompletion.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ * @since WSCF 1.0
+ */
+
+public class AfterCompletion implements Message
+{
+
+    public AfterCompletion (CoordinatorId tid, CompletionStatus cs)
+    {
+	_tid = tid;
+	_cs = cs;
+    }
+    
+    public AfterCompletion (CoordinatorId tid, CompletionStatus cs, Qualifier[] quals)
+    {
+	_tid = tid;
+	_cs = cs;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof AfterCompletion)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.AfterCompletion";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public CompletionStatus status () throws SystemException
+    {
+	return _cs;
+    }
+    
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId    _tid;
+    private CompletionStatus _cs;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/BeforeCompletion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/BeforeCompletion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/BeforeCompletion.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BeforeCompletion.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * A Synchronization participant is informed that the coordinator it is
+ * registered with is about to complete the two-phase protocol and in what
+ * state it finishing, i.e., confirmed or cancelled. The failure of the
+ * participant at this stage will cause the coordinator to cancel if it is
+ * not already doing so.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BeforeCompletion.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+public class BeforeCompletion implements Message
+{
+
+    public BeforeCompletion (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public BeforeCompletion (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof BeforeCompletion)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.BeforeCompletion";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/ForgetHeuristic.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/ForgetHeuristic.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/ForgetHeuristic.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ForgetHeuristic.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The participant made a post-prepare choice that was contrary to that which
+ * the coordinator told it to do. Hence it may have caused a non-atomic
+ * (heuristic) outcome. If this happens, the participant *must* remember the
+ * decision it took (persistently) until the coordinator tells it that it is
+ * safe to forget.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ForgetHeuristic.java,v 1.1 2003/01/07 10:33:41 nmcl Exp $
+ */
+
+public class ForgetHeuristic implements Message
+{
+
+    public ForgetHeuristic (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public ForgetHeuristic (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof ForgetHeuristic)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.ForgetHeuristic";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NestedCancel.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordinator is nested and is cancelling. Any error at this point will
+ * cause a heuristic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestedCancel.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class NestedCancel implements Message
+{
+
+    public NestedCancel (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public NestedCancel (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof NestedCancel)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.NestedCancel";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NestedConfirm.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordinator is nested and is confirming. Any error at this point will
+ * cause a heuristic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestedConfirm.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class NestedConfirm implements Message
+{
+
+    public NestedConfirm (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public NestedConfirm (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof NestedConfirm)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.NestedConfirm";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedOnePhaseCommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedOnePhaseCommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedOnePhaseCommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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: NestedOnePhaseCommit.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * If only a single participant is registered with a two-phase coordinator
+ * then it is possible for the coordinator to optimise the commit stage and
+ * not have to execute two phases: the outcome of the coordination is
+ * ultimately in the hands of the participant and not the coordinator. So,
+ * the coordinator can send the participant a message telling it to commit
+ * without having gone through a previous prepare stage.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestedOnePhaseCommit.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class NestedOnePhaseCommit implements Message
+{
+
+    public NestedOnePhaseCommit (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public NestedOnePhaseCommit (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof NestedOnePhaseCommit)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.NestedOnePhaseCommit";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedPrepare.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedPrepare.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/NestedPrepare.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NestedPrepare.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordinator is nested and is preparing. The participant can respond
+ * with a Vote message indicating whether or not it is willing to prepare.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestedPrepare.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class NestedPrepare implements Message
+{
+
+    public NestedPrepare (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public NestedPrepare (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof NestedPrepare)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.NestedPrepare";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TopLevelCancel.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordinator is top-level and is cancelling. Any error at this point will
+ * cause a heuristic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevelCancel.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class TopLevelCancel implements Message
+{
+
+    public TopLevelCancel (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public TopLevelCancel (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof TopLevelCancel)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.TopLevelCancel";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TopLevelConfirm.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordinator is top-level and is confirming. Any error at this point will
+ * cause a heuristic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevelConfirm.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class TopLevelConfirm implements Message
+{
+
+    public TopLevelConfirm (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public TopLevelConfirm (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof TopLevelConfirm)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.TopLevelConfirm";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelOnePhaseCommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelOnePhaseCommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelOnePhaseCommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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: TopLevelOnePhaseCommit.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * If only a single participant is registered with a two-phase coordinator
+ * then it is possible for the coordinator to optimise the commit stage and
+ * not have to execute two phases: the outcome of the coordination is
+ * ultimately in the hands of the participant and not the coordinator. So,
+ * the coordinator can send the participant a message telling it to commit
+ * without having gone through a previous prepare stage.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevelOnePhaseCommit.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class TopLevelOnePhaseCommit implements Message
+{
+
+    public TopLevelOnePhaseCommit (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public TopLevelOnePhaseCommit (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof TopLevelOnePhaseCommit)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.TopLevelOnePhaseCommit";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelPrepare.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelPrepare.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/messages/TopLevelPrepare.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TopLevelPrepare.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The coordinator is top-level and is preparing. The participant can respond
+ * with a Vote message indicating whether or not it is willing to prepare.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevelPrepare.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public class TopLevelPrepare implements Message
+{
+
+    public TopLevelPrepare (CoordinatorId tid)
+    {
+	_tid = tid;
+    }
+    
+    public TopLevelPrepare (CoordinatorId tid, Qualifier[] quals)
+    {
+	_tid = tid;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof TopLevelPrepare)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.messages.TopLevelPrepare";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/Vote.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/Vote.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/Vote.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,43 @@
+/*
+ * 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: Vote.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Vote.java,v 1.1 2003/01/07 10:33:42 nmcl Exp $
+ */
+
+public interface Vote extends Outcome
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: VoteCancel.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Failure;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.Arrays;
+
+/**
+ * The inferior votes that is has cancelled. The coordinator service
+ * may inform the inferior of the final decision (hopefully to cancel
+ * as well), but it need not.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteCancel.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class VoteCancel implements Vote
+{
+
+    public VoteCancel ()
+    {
+	_quals = null;
+    }
+    
+    public VoteCancel (Qualifier[] quals)
+    {
+	_quals = quals;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteCancel)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.outcomes.VoteCancel";
+    }
+
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return Failure.instance();
+    }
+    
+    public String name () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object data () throws SystemException
+    {
+	return Arrays.asList(_quals);
+    }
+    
+    private Qualifier[] _quals;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,101 @@
+/*
+ * 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: VoteConfirm.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.Arrays;
+
+/**
+ * The inferior votes that is can confirm. The coordinator service
+ * should ultimately inform the participant of the final outcome.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteConfirm.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class VoteConfirm implements Vote
+{
+
+    public VoteConfirm ()
+    {
+	_quals = null;
+    }
+    
+    public VoteConfirm (Qualifier[] quals)
+    {
+	_quals = quals;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteConfirm)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.outcomes.VoteConfirm";
+    }
+
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return Success.instance();
+    }
+    
+    public String name () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object data () throws SystemException
+    {
+	return Arrays.asList(_quals);
+    }
+
+    private Qualifier[] _quals;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteReadOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteReadOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/twophase/outcomes/VoteReadOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,105 @@
+/*
+ * 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: VoteReadOnly.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.Arrays;
+
+/**
+ * The inferior votes that it has done no work that requires to be involved
+ * any further in the two-phase protocol. For example, it has not updated
+ * any data. This can then be used by the coordinator to optimise the
+ * subsequent phase of the protocol (if any).
+ *
+ * WARNING: this should be used with care.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteReadOnly.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class VoteReadOnly implements Vote
+{
+
+    public VoteReadOnly ()
+    {
+	_quals = null;
+    }
+    
+    public VoteReadOnly (Qualifier[] quals)
+    {
+	_quals = quals;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteReadOnly)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.outcomes.VoteReadOnly";
+    }
+
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return Success.instance();
+    }
+    
+    public String name () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object data () throws SystemException
+    {
+	return Arrays.asList(_quals);
+    }
+
+    private Qualifier[] _quals;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XACommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XACommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XACommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,110 @@
+/*
+ * 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: XACommit.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.CoordinatorIdImple;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The coordinator is committing. Any error at this point will
+ * cause a heuristic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XACommit.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+public class XACommit implements Message
+{
+
+    public XACommit (Xid tid, boolean onePhase)
+    {
+	this(tid, onePhase, null);
+    }
+    
+    public XACommit (Xid tid, boolean onePhase, Qualifier[] quals)
+    {
+	_tid = new CoordinatorIdImple(tid);
+	_onePhase = onePhase;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XACommit)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.messages.XACommit";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    public boolean onePhaseCommit () throws SystemException
+    {
+	return _onePhase;
+    }
+    
+    private CoordinatorId _tid;
+    private boolean       _onePhase;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAEnd.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAEnd.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAEnd.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,110 @@
+/*
+ * 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: XAEnd.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.CoordinatorIdImple;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The relationship between the coordinator and the participant is ending.
+ * This may be temporary or permanent.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAEnd.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+public class XAEnd implements Message
+{
+
+    public XAEnd (Xid tid, int flags)
+    {
+	this(tid, flags, null);
+    }
+    
+    public XAEnd (Xid tid, int flags, Qualifier[] quals)
+    {
+	_tid = new CoordinatorIdImple(tid);
+	_flags = flags;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XAEnd)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.messages.XAEnd";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    public int flags () throws SystemException
+    {
+	return _flags;
+    }
+    
+    private CoordinatorId _tid;
+    private int           _flags;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAForget.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAForget.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAForget.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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: XAForget.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.CoordinatorIdImple;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The participant caused a heuristic and as a result has had to maintain
+ * information about it until now. This message from the coordinator
+ * informs the participant that it can forget about the heuristic.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAForget.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+public class XAForget implements Message
+{
+
+    public XAForget (Xid tid)
+    {
+	this(tid, null);
+    }
+    
+    public XAForget (Xid tid, Qualifier[] quals)
+    {
+	_tid = new CoordinatorIdImple(tid);
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XAForget)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.messages.XAForget";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAPrepare.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAPrepare.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAPrepare.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: XAPrepare.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.CoordinatorIdImple;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The coordinator is preparing to commit.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAPrepare.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+public class XAPrepare implements Message
+{
+
+    public XAPrepare (Xid tid)
+    {
+	this(tid, null);
+    }
+    
+    public XAPrepare (Xid tid, Qualifier[] quals)
+    {
+	_tid = new CoordinatorIdImple(tid);
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XAPrepare)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.XAPrepare";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARecover.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARecover.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARecover.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,98 @@
+/*
+ * 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: XARecover.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The transaction is recovering and a list of in doubt resources is
+ * being requested.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XARecover.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class XARecover implements Message
+{
+
+    public XARecover (int flag)
+    {
+	this(flag, null);
+    }
+    
+    public XARecover (int flag, Qualifier[] quals)
+    {
+	_flag = flag;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XARecover)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.messages.XARecover";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return new Integer(_flag);
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    private int _flag;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARollback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARollback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XARollback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: XARollback.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.CoordinatorIdImple;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The coordinator is rolling back.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XARollback.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+public class XARollback implements Message
+{
+
+    public XARollback (Xid tid)
+    {
+	this(tid, null);
+    }
+    
+    public XARollback (Xid tid, Qualifier[] quals)
+    {
+	_tid = new CoordinatorIdImple(tid);
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XARollback)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.messages.XARollback";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+    
+    private CoordinatorId _tid;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAStart.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAStart.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/messages/XAStart.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,109 @@
+/*
+ * 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: XAStart.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.messages;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.CoordinatorIdImple;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The resource is being (re-) associated with the transaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAStart.java,v 1.1 2003/01/07 10:33:43 nmcl Exp $
+ */
+
+public class XAStart implements Message
+{
+
+    public XAStart (Xid tid, int flags)
+    {
+	this(tid, flags, null);
+    }
+    
+    public XAStart (Xid tid, int flags, Qualifier[] quals)
+    {
+	_tid = new CoordinatorIdImple(tid);
+	_flags = flags;
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof XAStart)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.xa.messages.XAStart";
+    }
+
+    public String messageName () throws SystemException
+    {
+	return toString();
+    }
+
+    public Object coordinationSpecificData () throws SystemException
+    {
+	return _tid;
+    }
+
+    public Qualifier[] qualifiers () throws SystemException
+    {
+	return null;
+    }
+
+    public int flags () throws SystemException
+    {
+	return _flags;
+    }
+    
+    private CoordinatorId _tid;
+    private int           _flags;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAOutcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAOutcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAOutcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,136 @@
+/*
+ * 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: XAOutcome.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Failure;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import javax.transaction.xa.XAException;
+
+/**
+ * The XAOutcome represents the final outcome of the coordination
+ * event. The CompletionStatus and the actual two-phase status value are
+ * returned.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAOutcome.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class XAOutcome implements Outcome
+{
+
+    public XAOutcome ()
+    {
+	this(Success.instance(), null);
+    }
+    
+    public XAOutcome (XAException ex)
+    {
+	this(Failure.instance(), ex);
+    }
+
+    public XAOutcome (CompletionStatus s)
+    {
+	this(s, null);
+    }
+
+    public XAOutcome (CompletionStatus s, XAException ex)
+    {
+	_status = s;
+	_exp = ex;
+    }
+
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "org.w3c.wscf.xa.outcomes.XAOutcome";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return _exp;
+    }
+
+    public String toString ()
+    {
+	try
+	{
+	    return name()+":"+_exp;
+	}
+	catch (SystemException ex)
+	{
+	    return null;
+	}
+    }
+    
+    private CompletionStatus _status;
+    private XAException      _exp;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAPrepareOutcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAPrepareOutcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XAPrepareOutcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,132 @@
+/*
+ * 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: XAPrepareOutcome.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The XAPrepareOutcome represents the final outcome of the coordination
+ * event. The CompletionStatus and the actual two-phase status value are
+ * returned.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAPrepareOutcome.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class XAPrepareOutcome implements Outcome
+{
+    
+    public XAPrepareOutcome (int vote)
+    {
+	this(Success.instance(), vote);
+    }
+
+    public XAPrepareOutcome (CompletionStatus s, int vote)
+    {
+	_status = s;
+	_vote = vote;
+    }
+
+    /**
+     * @return the two-phase status result.
+     */
+
+    public final int vote ()
+    {
+	return _vote;
+    }
+    
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "org.w3c.wscf.xa.outcomes.XAPrepareOutcome";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return null;
+    }
+
+    public String toString ()
+    {
+	try
+	{
+	    return name()+":"+_vote;
+	}
+	catch (SystemException ex)
+	{
+	    return null;
+	}
+    }
+    
+    private CompletionStatus _status;
+    private int              _vote;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XARecoverOutcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XARecoverOutcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/outcomes/XARecoverOutcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,130 @@
+/*
+ * 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: XARecoverOutcome.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * The XAPrepareOutcome represents the final outcome of the coordination
+ * event. The CompletionStatus and the actual two-phase status value are
+ * returned.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XARecoverOutcome.java,v 1.2 2005/05/19 12:13:22 nmcl Exp $
+ */
+
+public class XARecoverOutcome implements Outcome
+{
+    
+    public XARecoverOutcome (Xid[] xids)
+    {
+	this(Success.instance(), xids);
+    }
+
+    public XARecoverOutcome (CompletionStatus s, Xid[] xids)
+    {
+	_status = s;
+	_xids = xids;
+    }
+
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "org.w3c.wscf.xa.outcomes.XARecoverOutcome";
+    }
+
+    public final Xid[] xids ()
+    {
+	return _xids;
+    }
+    
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return null;
+    }
+
+    public String toString ()
+    {
+	try
+	{
+	    return name();
+	}
+	catch (SystemException ex)
+	{
+	    return null;
+	}
+    }
+    
+    private CompletionStatus _status;
+    private Xid[]            _xids;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/status/XAStatus.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/status/XAStatus.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/as/coordinator/xa/status/XAStatus.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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: XAStatus.java,v 1.2 2005/05/19 12:13:23 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.as.coordinator.xa.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The status of the coordination is such that it will eventually cancel.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: XAStatus.java,v 1.2 2005/05/19 12:13:23 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class XAStatus implements Status
+{
+
+    public XAStatus (int status)
+    {
+	_status = status;
+    }
+    
+    public static XAStatus instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "com.arjuna.mw.wscf.model.as.coordinator.xa.status.XAStatus";
+    }
+
+    public int getStatus ()
+    {
+	return _status;
+    }
+    
+    private XAStatus ()
+    {
+    }
+
+    private int _status;
+    
+    private static final XAStatus _instance = new XAStatus();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/CoordinatorManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/CoordinatorManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/CoordinatorManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,163 @@
+/*
+ * 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: CoordinatorManagerFactory.java,v 1.4 2005/05/19 12:13:23 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.sagas.hls.SagasHLS;
+import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import java.util.HashMap;
+
+import com.arjuna.mwlabs.wscf.model.sagas.arjunacore.SagasHLSImple;
+
+/**
+ * The factory to return the specific CoordinatorManager implementation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManagerFactory.java,v 1.4 2005/05/19 12:13:23 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorManagerFactory
+{
+
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.sagas.CMF_1 [com.arjuna.mw.wscf.model.sagas.CMF_1] - Failed to create 
+     */
+
+    public static CoordinatorManager coordinatorManager () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(SagasHLSImple.className());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.sagas.CMF_1",
+					      new Object[]{SagasHLSImple.className()});	
+    }
+	    else
+		return coordinatorManager(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static CoordinatorManager coordinatorManager (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		SagasHLS coordHLS = (SagasHLS) _implementations.get(protocolType);
+	
+		if (coordHLS == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+
+		    if (implementation instanceof String)
+		    {
+			Class c = Class.forName((String) implementation);
+
+			coordHLS = (SagasHLS) c.newInstance();
+		    }
+		    else
+			coordHLS = (SagasHLS) implementation;
+
+		    _implementations.put(protocolType, coordHLS);
+		}
+	    
+		return coordHLS.coordinatorManager();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/UserCoordinatorFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/UserCoordinatorFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/UserCoordinatorFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,162 @@
+/*
+ * 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: UserCoordinatorFactory.java,v 1.4 2005/05/19 12:13:23 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.sagas.hls.SagasHLS;
+import com.arjuna.mw.wscf.model.sagas.api.UserCoordinator;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import java.util.HashMap;
+
+import com.arjuna.mwlabs.wscf.model.sagas.arjunacore.SagasHLSImple;
+
+/**
+ * The factory which returns the UserCoordinator implementation to use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinatorFactory.java,v 1.4 2005/05/19 12:13:23 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UserCoordinatorFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.sagas.UCF_1 [com.arjuna.mw.wscf.model.sagas.UCF_1] - Failed to create 
+     */
+
+    public static UserCoordinator userCoordinator () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(SagasHLSImple.className());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.sagas.UCF_1",
+					      new Object[]{SagasHLSImple.className()});
+	    }
+	    else
+		return userCoordinator(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static UserCoordinator userCoordinator (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		SagasHLS coordHLS = (SagasHLS) _implementations.get(protocolType);
+	
+		if (coordHLS == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+		
+		    if (implementation instanceof String)
+		    {
+			Class c = Class.forName((String) implementation);
+
+			coordHLS = (SagasHLS) c.newInstance();
+		    }
+		    else
+			coordHLS = (SagasHLS) implementation;
+
+		    _implementations.put(protocolType, coordHLS);
+		}
+	    
+		return coordHLS.userCoordinator();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/CoordinatorManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/CoordinatorManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/CoordinatorManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,121 @@
+/*
+ * 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: CoordinatorManager.java,v 1.4 2005/05/19 12:13:24 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.api;
+
+import com.arjuna.mw.wscf.model.sagas.participants.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * The CoordinatorManager is the way in which services can enlist
+ * participants with the current coordinator.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManager.java,v 1.4 2005/05/19 12:13:24 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface CoordinatorManager extends UserCoordinator
+{
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread.
+     *
+     * @param act The participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlistParticipant (Participant act) throws NoActivityException, WrongStateException, DuplicateParticipantException, InvalidParticipantException, SystemException;
+
+    /**
+     * Remove the specified participant from the coordinator associated with
+     * the current thread.
+     *
+     * @param participantId The participant to remove.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void delistParticipant (String participantId) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * The participant has completed its work and it ready to compensate
+     * if necessary.
+     *
+     * @param participantId The participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void participantCompleted (String participantId) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * A participant has faulted during normal execution or compensation.
+     * The saga will attempt to undo. The WS-T specification is a little
+     * vague here - we assume the entire transaction has to undo.
+     *
+     * @param participantId The participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void participantFaulted (String participantId) throws NoActivityException, InvalidParticipantException, SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/UserCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/UserCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/api/UserCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,250 @@
+/*
+ * 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: UserCoordinator.java,v 1.3 2005/05/19 12:13:24 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.api;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wscf.model.sagas.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+
+/**
+ * The user portion of the coordinator API. An implementation of this interface
+ * presents each thread with the capability to create and manage coordinators.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinator.java,v 1.3 2005/05/19 12:13:24 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface UserCoordinator
+{
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. An implementation specific
+     * timeout will be associated with the activity (which may be no
+     * timeout).
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin () throws WrongStateException, SystemException;
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. If the activity is still
+     * active when the specified timeout elapses, it will be terminated.
+     *
+     * @param timeout The timeout associated with the activity (in
+     * seconds). If the activity has not been terminated by the time this
+     * period elapses, then it will automatically be terminated.
+     * @exception WrongStateException Thrown if the currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted as a child.
+     * @exception InvalidTimeoutException Thrown if the specified timeout is
+     * invalid within the current working environment.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin (int timeout) throws WrongStateException, InvalidTimeoutException, SystemException;
+
+    /**
+     * Confirm the current activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed in the status requested.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void close () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, CoordinatorCancelledException, NoPermissionException, SystemException;
+
+    /**
+     * Cancel the activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public void cancel () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, CoordinatorConfirmedException, NoPermissionException, SystemException;
+
+    /**
+     * Complete the activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public void complete () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, NoPermissionException, SystemException;
+
+    /**
+     * Set the termination status for the current activity to cancel only.
+     *
+     * @exception WrongStateException Thrown if the completion status is
+     * incompatible with the current state of the activity.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setCancelOnly () throws NoCoordinatorException, WrongStateException, SystemException;
+
+    /**
+     * Get the timeout value currently associated with activities.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException;
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current activity. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException;
+    
+    /**
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the unique coordinator id for the current coordinator. This
+     * may or may not be the same as the activity id.
+     */
+
+    public CoordinatorId identifier () throws NoActivityException, SystemException;
+
+    /**
+     * Suspend the current activity from this thread and return the token
+     * representing the context, if any, or null otherwise. Once called, the
+     * thread will have no activities associated with it.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the token representing the current context, if any, or null
+     * otherwise.
+     */
+
+    public ActivityHierarchy suspend () throws SystemException;
+
+    /**
+     * Given a token representing a context, associate it with the current
+     * thread of control. This will implicitly disassociate the thread from any
+     * activities that it may already be associated with. If the parameter is
+     * null then the thread is associated with no activity.
+     *
+     * @param tx The activity to associate with this thread. This
+     * may be null in which case the current thread becomes associated with
+     * no activity.
+     *
+     * @exception InvalidActivityException Thrown if the activity handle
+     * is invalid in this context.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (ActivityHierarchy tx) throws InvalidActivityException, SystemException;
+
+    /**
+     * @return the token representing the current activity context hierarchy,
+     * or null if there is none associated with the invoking thread.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     */
+
+    public ActivityHierarchy currentActivity () throws SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/CoordinationResult.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/CoordinationResult.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/CoordinationResult.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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: CoordinationResult.java,v 1.2 2004/03/15 13:25:03 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.common;
+
+/**
+ * The final coordination result.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinationResult.java,v 1.2 2004/03/15 13:25:03 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinationResult
+{
+
+    public static final int CONFIRMED = 0;
+    public static final int CANCELLED = 1;
+    public static final int COMPENSATED = 2;
+    
+    /**
+     * @return a human-readable version of the outcome.
+     */
+
+    public static String stringForm (int res)
+    {
+	switch (res)
+	{
+	case CANCELLED:
+	    return "CoordinationResult.CANCELLED";
+	case CONFIRMED:
+	    return "CoordinationResult.CONFIRMED";
+	case COMPENSATED:
+	    return "CoordinationResult.COMPENSATED";
+	default:
+	    return "Unknown - "+res;
+	}
+    }
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/TwoPhaseResult.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/TwoPhaseResult.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/common/TwoPhaseResult.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TwoPhaseResult.java,v 1.2 2004/03/15 13:25:03 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.common;
+
+/**
+ * The outcomes which can be generated when a two-phase coordinator
+ * attempts to prepare/commit/rollback.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseResult.java,v 1.2 2004/03/15 13:25:03 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TwoPhaseResult
+{
+
+    public static final int PREPARE_OK = 0;
+    public static final int PREPARE_NOTOK = 1;
+    public static final int PREPARE_READONLY = 2;
+    public static final int HEURISTIC_CANCEL = 3;
+    public static final int HEURISTIC_CONFIRM = 4;
+    public static final int HEURISTIC_MIXED = 5;
+    public static final int HEURISTIC_HAZARD = 6;
+    public static final int FINISH_OK = 7;
+    public static final int FINISH_ERROR = 8;
+    public static final int NOT_PREPARED = 9;
+    public static final int CANCELLED = 10;
+    public static final int CONFIRMED = 11;
+    
+    /**
+     * @return a human-readable version of the outcome.
+     */
+
+    public static String stringForm (int res)
+    {
+	switch (res)
+	{
+	case PREPARE_OK:
+	    return "TwoPhaseResult.PREPARE_OK";
+	case PREPARE_NOTOK:
+	    return "TwoPhaseResult.PREPARE_NOTOK";
+	case PREPARE_READONLY:
+	    return "TwoPhaseResult.PREPARE_READONLY";
+	case HEURISTIC_CANCEL:
+	    return "TwoPhaseResult.HEURISTIC_CANCEL";
+	case HEURISTIC_CONFIRM:
+	    return "TwoPhaseResult.HEURISTIC_CONFIRM";
+	case HEURISTIC_MIXED:
+	    return "TwoPhaseResult.HEURISTIC_MIXED";
+	case HEURISTIC_HAZARD:
+	    return "TwoPhaseResult.HEURISTIC_HAZARD";
+	case FINISH_OK:
+	    return "TwoPhaseResult.FINISH_OK";
+	case FINISH_ERROR:
+	    return "TwoPhaseResult.FINISH_ERROR";
+	case NOT_PREPARED:
+	    return "TwoPhaseResult.NOT_PREPARED";
+	case CANCELLED:
+	    return "TwoPhaseResult.CANCELLED";
+	case CONFIRMED:
+	    return "TwoPhaseResult.CONFIRMED";
+	default:
+	    return "Unknown - "+res;
+	}
+    }
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CompensateFailedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CompensateFailedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CompensateFailedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CompensateFailedException.java,v 1.1 2004/04/21 15:57:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CompensateFailedException.java,v 1.1 2004/04/21 15:57:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CompensateFailedException extends SystemException
+{
+
+    public CompensateFailedException ()
+    {
+	super();
+    }
+
+    public CompensateFailedException (String s)
+    {
+	super(s);
+    }
+
+    public CompensateFailedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorCancelledException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorCancelledException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorCancelledException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: CoordinatorCancelledException.java,v 1.2 2004/03/15 13:25:04 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorCancelledException.java,v 1.2 2004/03/15 13:25:04 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorCancelledException extends SystemException
+{
+
+    public CoordinatorCancelledException ()
+    {
+	super();
+    }
+
+    public CoordinatorCancelledException (String s)
+    {
+	super(s);
+    }
+
+    public CoordinatorCancelledException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorConfirmedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorConfirmedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/exceptions/CoordinatorConfirmedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: CoordinatorConfirmedException.java,v 1.2 2004/03/15 13:25:04 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorConfirmedException.java,v 1.2 2004/03/15 13:25:04 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorConfirmedException extends SystemException
+{
+
+    public CoordinatorConfirmedException ()
+    {
+	super();
+    }
+
+    public CoordinatorConfirmedException (String s)
+    {
+	super(s);
+    }
+
+    public CoordinatorConfirmedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/hls/SagasHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/hls/SagasHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/hls/SagasHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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: SagasHLS.java,v 1.2 2004/03/15 13:25:04 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.hls;
+
+import com.arjuna.mw.wsas.activity.HLS;
+import com.arjuna.mw.wscf.model.sagas.api.*;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SagasHLS.java,v 1.2 2004/03/15 13:25:04 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface SagasHLS extends HLS
+{
+    
+    public UserCoordinatorService coordinatorService ();
+    
+    public UserCoordinator userCoordinator ();
+    
+    public CoordinatorManager coordinatorManager ();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/outcomes/CoordinationOutcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/outcomes/CoordinationOutcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/outcomes/CoordinationOutcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinationOutcome.java,v 1.3 2005/05/19 12:13:24 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.outcomes;
+
+import com.arjuna.mw.wscf.model.sagas.common.TwoPhaseResult;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The CoordinationOutcome represents the final outcome of the coordination
+ * event. The CompletionStatus and the actual two-phase status value are
+ * returned.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinationOutcome.java,v 1.3 2005/05/19 12:13:24 nmcl Exp $
+ */
+
+public class CoordinationOutcome implements Outcome
+{
+    
+    public CoordinationOutcome (int sagas)
+    {
+	this(Success.instance(), sagas);
+    }
+
+    public CoordinationOutcome (CompletionStatus s, int sagas)
+    {
+	_status = s;
+	_sagasOutcome = sagas;
+    }
+
+    /**
+     * @return the two-phase status result.
+     * @see com.arjuna.mw.wscf.model.sagas.common.TwoPhaseResult
+     */
+
+    public final int result ()
+    {
+	return _sagasOutcome;
+    }
+    
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "org.w3c.wscf.sagas.outcomes.CoordinationOutcome";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return null;
+    }
+
+    public String toString ()
+    {
+	return "com.arjuna.mw.wscf.sagas.outcomes.CoordinationOutcome: "+TwoPhaseResult.stringForm(_sagasOutcome);
+    }
+    
+    private CompletionStatus _status;
+    private int              _sagasOutcome;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/Participant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/Participant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/Participant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,106 @@
+/*
+ * 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: Participant.java,v 1.4 2005/05/19 12:13:24 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.participants;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.mw.wscf.model.sagas.exceptions.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+/**
+ * This is the interface that all two-phase aware participants must define.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Participant.java,v 1.4 2005/05/19 12:13:24 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Participant
+{
+
+    /**
+     * Confirm the participant at top-level.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot confirm.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void close () throws InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Cancel the participant at top-level.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void cancel () throws InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Compensate the participant.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void compensate () throws CompensateFailedException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Inform the participant that is can forget the heuristic result.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid.
+     * @exception WrongStateException Thrown if the participant is in an invalid state.
+     * @exception SystemException Thrown in the event of a general fault.
+     */
+
+    public void forget () throws InvalidParticipantException, WrongStateException, SystemException;
+
+    public String id () throws SystemException;
+    
+    public boolean save_state (OutputObjectState os);
+    public boolean restore_state (InputObjectState os);
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/ParticipantWithComplete.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/ParticipantWithComplete.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/participants/ParticipantWithComplete.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ParticipantWithComplete.java,v 1.3 2005/05/19 12:13:24 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.participants;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+/**
+ * This is the interface that all two-phase aware participants must define.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantWithComplete.java,v 1.3 2005/05/19 12:13:24 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface ParticipantWithComplete extends Participant
+{
+
+    /**
+     * Complete the participant.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void complete () throws InvalidParticipantException, WrongStateException, SystemException;
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/CancelOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/CancelOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/CancelOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CancelOnly.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The status of the coordination is such that it will eventually cancel.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: CancelOnly.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CancelOnly implements Status
+{
+
+    public static CancelOnly instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.CancelOnly";
+    }
+
+    private CancelOnly ()
+    {
+    }
+
+    private static final CancelOnly _instance = new CancelOnly();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelled.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelled.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelled.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Cancelled.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator has cancelled and completed the protocol.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Cancelled.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Cancelled implements Status
+{
+
+    public static Cancelled instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.Cancelled";
+    }
+
+    private Cancelled ()
+    {
+    }
+
+    private static final Cancelled _instance = new Cancelled();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelling.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelling.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Cancelling.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Cancelling.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator is in the process of cancelling.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Cancelling.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Cancelling implements Status
+{
+
+    public static Cancelling instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.Cancelling";
+    }
+
+    private Cancelling ()
+    {
+    }
+
+    private static final Cancelling _instance = new Cancelling();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closed.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closed.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closed.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Closed.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator has confirmed and completed the protocol.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Closed.java,v 1.2 2004/03/15 13:25:05 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Closed implements Status
+{
+
+    public static Closed instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.Closed";
+    }
+
+    private Closed ()
+    {
+    }
+
+    private static final Closed _instance = new Closed();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closing.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closing.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Closing.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: Closing.java,v 1.2 2004/03/15 13:25:06 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator is in the process of confirming the participants. This
+ * does not necessarily mean that the final outcome will be for the
+ * coordination protocol to have confirmed.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Closing.java,v 1.2 2004/03/15 13:25:06 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Closing implements Status
+{
+
+    public static Closing instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.Closing";
+    }
+
+    private Closing ()
+    {
+    }
+
+    private static final Closing _instance = new Closing();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensated.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensated.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensated.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Compensated.java,v 1.2 2004/03/15 13:25:06 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator has prepared.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Compensated.java,v 1.2 2004/03/15 13:25:06 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Compensated implements Status
+{
+
+    public static Compensated instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.Compensated";
+    }
+
+    private Compensated ()
+    {
+    }
+
+    private static final Compensated _instance = new Compensated();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensating.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensating.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/sagas/status/Compensating.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Compensating.java,v 1.2 2004/03/15 13:25:06 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.sagas.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator is preparing.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Compensating.java,v 1.2 2004/03/15 13:25:06 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Compensating implements Status
+{
+
+    public static Compensating instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.sagas.status.Compensating";
+    }
+
+    private Compensating ()
+    {
+    }
+
+    private static final Compensating _instance = new Compensating();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/CoordinatorManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/CoordinatorManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/CoordinatorManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,162 @@
+/*
+ * 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: CoordinatorManagerFactory.java,v 1.8 2005/05/19 12:13:25 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.twophase.hls.TwoPhaseHLS;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import java.util.HashMap;
+
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.TwoPhaseHLSImple;
+
+/**
+ * The factory to return the specific CoordinatorManager implementation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManagerFactory.java,v 1.8 2005/05/19 12:13:25 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorManagerFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.twophase.CMF_1 [com.arjuna.mw.wscf.model.twophase.CMF_1] - Failed to create 
+     */
+
+    public static CoordinatorManager coordinatorManager () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(TwoPhaseHLSImple.className());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.twophase.CMF_1",
+					      new Object[]{TwoPhaseHLSImple.className()});
+	    }
+	    else
+		return coordinatorManager(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static CoordinatorManager coordinatorManager (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		TwoPhaseHLS coordHLS = (TwoPhaseHLS) _implementations.get(protocolType);
+	
+		if (coordHLS == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+
+		    if (implementation instanceof String)
+		    {
+			Class c = Class.forName((String) implementation);
+
+			coordHLS = (TwoPhaseHLS) c.newInstance();
+		    }
+		    else
+			coordHLS = (TwoPhaseHLS) implementation;
+
+		    _implementations.put(protocolType, coordHLS);
+		}
+	    
+		return coordHLS.coordinatorManager();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/UserCoordinatorFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/UserCoordinatorFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/UserCoordinatorFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,162 @@
+/*
+ * 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: UserCoordinatorFactory.java,v 1.6 2005/05/19 12:13:25 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.twophase.hls.TwoPhaseHLS;
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import java.util.HashMap;
+
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.TwoPhaseHLSImple;
+
+/**
+ * The factory which returns the UserCoordinator implementation to use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinatorFactory.java,v 1.6 2005/05/19 12:13:25 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UserCoordinatorFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.twophase.UCF_1 [com.arjuna.mw.wscf.model.twophase.UCF_1] - Failed to create 
+     */
+
+    public static UserCoordinator userCoordinator () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(TwoPhaseHLSImple.className());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.twophase.UCF_1",
+					      new Object[]{TwoPhaseHLSImple.className()});
+	    }
+	    else
+		return userCoordinator(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static UserCoordinator userCoordinator (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		TwoPhaseHLS coordHLS = (TwoPhaseHLS) _implementations.get(protocolType);
+	
+		if (coordHLS == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+		
+		    if (implementation instanceof String)
+		    {
+			Class c = Class.forName((String) implementation);
+
+			coordHLS = (TwoPhaseHLS) c.newInstance();
+		    }
+		    else
+			coordHLS = (TwoPhaseHLS) implementation;
+
+		    _implementations.put(protocolType, coordHLS);
+		}
+	    
+		return coordHLS.userCoordinator();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/CoordinatorManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/CoordinatorManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/CoordinatorManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,164 @@
+/*
+ * 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: CoordinatorManager.java,v 1.3 2005/05/19 12:13:25 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.api;
+
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * The CoordinatorManager is the way in which services can enlist
+ * participants with the current coordinator.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManager.java,v 1.3 2005/05/19 12:13:25 nmcl Exp $
+ * @since 1.0.
+ */
+
+/*
+ * TODO
+ * 
+ * Currently there is no way for users to get direct access to the
+ * current coordinator instance (c.f. getting the Transaction from the JTA
+ * equivalent interfaces). Do we need to add this? If so, then we should add
+ * an interface for the coordinator implementations to implement, so that
+ * implementation specific details don't creep into the API.
+ */
+
+public interface CoordinatorManager extends UserCoordinator
+{
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread.
+     *
+     * @param act The participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlistParticipant (Participant act) throws NoActivityException, WrongStateException, DuplicateParticipantException, InvalidParticipantException, SystemException;
+
+    /**
+     * Remove the specified participant from the coordinator associated with
+     * the current thread.
+     *
+     * @param act The participant to remove.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void delistParticipant (Participant act) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Enrol the specified synchronization with the coordinator associated with
+     * the current thread.
+     *
+     * @param act The synchronization to add.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateSynchronizationException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidSynchronizationException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlistSynchronization (Synchronization act) throws NoActivityException, WrongStateException, DuplicateSynchronizationException, InvalidSynchronizationException, SystemException;
+
+    /**
+     * Remove the specified synchronization from the coordinator associated
+     * with the current thread.
+     *
+     * @param act The synchronization to remove.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidSynchronizationException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void delistSynchronization (Synchronization act) throws NoActivityException, InvalidSynchronizationException, WrongStateException, SystemException;
+
+    /**
+     * The participant has rolled back. Mark the transaction as rolled back.
+     *
+     * @param participantId The participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void participantRolledback (String participantId) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * A participant is readonly. Remove it from the list.
+     *
+     * @param participantId The participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void participantReadOnly (String participantId) throws NoActivityException, InvalidParticipantException, SystemException;
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/UserCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/UserCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/api/UserCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,231 @@
+/*
+ * 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: UserCoordinator.java,v 1.2 2005/05/19 12:13:25 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.api;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+
+/**
+ * The user portion of the coordinator API. An implementation of this interface
+ * presents each thread with the capability to create and manage coordinators.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinator.java,v 1.2 2005/05/19 12:13:25 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface UserCoordinator
+{
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. An implementation specific
+     * timeout will be associated with the activity (which may be no
+     * timeout).
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin () throws WrongStateException, SystemException;
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. If the activity is still
+     * active when the specified timeout elapses, it will be terminated.
+     *
+     * @param timeout The timeout associated with the activity (in
+     * seconds). If the activity has not been terminated by the time this
+     * period elapses, then it will automatically be terminated.
+     * @exception WrongStateException Thrown if the currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted as a child.
+     * @exception InvalidTimeoutException Thrown if the specified timeout is
+     * invalid within the current working environment.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin (int timeout) throws WrongStateException, InvalidTimeoutException, SystemException;
+
+    /**
+     * Confirm the current activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed in the status requested.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void confirm () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, CoordinatorCancelledException, HeuristicMixedException, HeuristicHazardException, NoPermissionException, SystemException;
+
+    /**
+     * Cancel the activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is
+     * invalid in the execution environment.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @see com.arjuna.mw.wsas.activity.Outcome
+     */
+
+    public void cancel () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, CoordinatorConfirmedException, HeuristicMixedException, HeuristicHazardException, NoPermissionException, SystemException;
+
+    /**
+     * Set the termination status for the current activity to cancel only.
+     *
+     * @exception WrongStateException Thrown if the completion status is
+     * incompatible with the current state of the activity.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setCancelOnly () throws NoCoordinatorException, WrongStateException, SystemException;
+
+    /**
+     * Get the timeout value currently associated with activities.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException;
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current activity. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException;
+    
+    /**
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the unique coordinator id for the current coordinator. This
+     * may or may not be the same as the activity id.
+     */
+
+    public CoordinatorId identifier () throws NoActivityException, SystemException;
+
+    /**
+     * Suspend the current activity from this thread and return the token
+     * representing the context, if any, or null otherwise. Once called, the
+     * thread will have no activities associated with it.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the token representing the current context, if any, or null
+     * otherwise.
+     */
+
+    public ActivityHierarchy suspend () throws SystemException;
+
+    /**
+     * Given a token representing a context, associate it with the current
+     * thread of control. This will implicitly disassociate the thread from any
+     * activities that it may already be associated with. If the parameter is
+     * null then the thread is associated with no activity.
+     *
+     * @param tx The activity to associate with this thread. This
+     * may be null in which case the current thread becomes associated with
+     * no activity.
+     *
+     * @exception InvalidActivityException Thrown if the activity handle
+     * is invalid in this context.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (ActivityHierarchy tx) throws InvalidActivityException, SystemException;
+
+    /**
+     * @return the token representing the current activity context hierarchy,
+     * or null if there is none associated with the invoking thread.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     */
+
+    public ActivityHierarchy currentActivity () throws SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/CoordinationResult.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/CoordinationResult.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/CoordinationResult.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: CoordinationResult.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.common;
+
+/**
+ * The final coordination result.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinationResult.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinationResult
+{
+
+    public static final int CONFIRMED = 0;
+    public static final int CANCELLED = 1;
+    
+    /**
+     * @return a human-readable version of the outcome.
+     */
+
+    public static String stringForm (int res)
+    {
+	switch (res)
+	{
+	case CANCELLED:
+	    return "CoordinationResult.CANCELLED";
+	case CONFIRMED:
+	    return "CoordinationResult.CONFIRMED";
+	default:
+	    return "Unknown - "+res;
+	}
+    }
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/TwoPhaseResult.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/TwoPhaseResult.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/common/TwoPhaseResult.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TwoPhaseResult.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.common;
+
+/**
+ * The outcomes which can be generated when a two-phase coordinator
+ * attempts to prepare/commit/rollback.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseResult.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TwoPhaseResult
+{
+
+    public static final int PREPARE_OK = 0;
+    public static final int PREPARE_NOTOK = 1;
+    public static final int PREPARE_READONLY = 2;
+    public static final int HEURISTIC_CANCEL = 3;
+    public static final int HEURISTIC_CONFIRM = 4;
+    public static final int HEURISTIC_MIXED = 5;
+    public static final int HEURISTIC_HAZARD = 6;
+    public static final int FINISH_OK = 7;
+    public static final int FINISH_ERROR = 8;
+    public static final int NOT_PREPARED = 9;
+    public static final int CANCELLED = 10;
+    public static final int CONFIRMED = 11;
+    
+    /**
+     * @return a human-readable version of the outcome.
+     */
+
+    public static String stringForm (int res)
+    {
+	switch (res)
+	{
+	case PREPARE_OK:
+	    return "TwoPhaseResult.PREPARE_OK";
+	case PREPARE_NOTOK:
+	    return "TwoPhaseResult.PREPARE_NOTOK";
+	case PREPARE_READONLY:
+	    return "TwoPhaseResult.PREPARE_READONLY";
+	case HEURISTIC_CANCEL:
+	    return "TwoPhaseResult.HEURISTIC_CANCEL";
+	case HEURISTIC_CONFIRM:
+	    return "TwoPhaseResult.HEURISTIC_CONFIRM";
+	case HEURISTIC_MIXED:
+	    return "TwoPhaseResult.HEURISTIC_MIXED";
+	case HEURISTIC_HAZARD:
+	    return "TwoPhaseResult.HEURISTIC_HAZARD";
+	case FINISH_OK:
+	    return "TwoPhaseResult.FINISH_OK";
+	case FINISH_ERROR:
+	    return "TwoPhaseResult.FINISH_ERROR";
+	case NOT_PREPARED:
+	    return "TwoPhaseResult.NOT_PREPARED";
+	case CANCELLED:
+	    return "TwoPhaseResult.CANCELLED";
+	case CONFIRMED:
+	    return "TwoPhaseResult.CONFIRMED";
+	default:
+	    return "Unknown - "+res;
+	}
+    }
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorCancelledException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorCancelledException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorCancelledException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: CoordinatorCancelledException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorCancelledException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorCancelledException extends SystemException
+{
+
+    public CoordinatorCancelledException ()
+    {
+	super();
+    }
+
+    public CoordinatorCancelledException (String s)
+    {
+	super(s);
+    }
+
+    public CoordinatorCancelledException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorConfirmedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorConfirmedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/CoordinatorConfirmedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: CoordinatorConfirmedException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorConfirmedException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorConfirmedException extends SystemException
+{
+
+    public CoordinatorConfirmedException ()
+    {
+	super();
+    }
+
+    public CoordinatorConfirmedException (String s)
+    {
+	super(s);
+    }
+
+    public CoordinatorConfirmedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/DuplicateSynchronizationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/DuplicateSynchronizationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/DuplicateSynchronizationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: DuplicateSynchronizationException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DuplicateSynchronizationException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DuplicateSynchronizationException extends SystemException
+{
+
+    public DuplicateSynchronizationException ()
+    {
+	super();
+    }
+
+    public DuplicateSynchronizationException (String s)
+    {
+	super(s);
+    }
+
+    public DuplicateSynchronizationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicCancelException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicCancelException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicCancelException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicCancelException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicCancelException.java,v 1.1 2003/01/07 10:33:44 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicCancelException extends SystemException
+{
+
+    public HeuristicCancelException ()
+    {
+	super();
+    }
+
+    public HeuristicCancelException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicCancelException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicConfirmException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicConfirmException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicConfirmException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicConfirmException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicConfirmException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicConfirmException extends SystemException
+{
+
+    public HeuristicConfirmException ()
+    {
+	super();
+    }
+
+    public HeuristicConfirmException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicConfirmException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicHazardException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicHazardException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicHazardException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicHazardException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicHazardException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicHazardException extends SystemException
+{
+
+    public HeuristicHazardException ()
+    {
+	super();
+    }
+
+    public HeuristicHazardException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicHazardException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicMixedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicMixedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/HeuristicMixedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicMixedException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicMixedException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicMixedException extends SystemException
+{
+
+    public HeuristicMixedException ()
+    {
+	super();
+    }
+
+    public HeuristicMixedException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicMixedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/InvalidSynchronizationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/InvalidSynchronizationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/InvalidSynchronizationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: InvalidSynchronizationException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidSynchronizationException.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidSynchronizationException extends SystemException
+{
+
+    public InvalidSynchronizationException ()
+    {
+	super();
+    }
+
+    public InvalidSynchronizationException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidSynchronizationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantCancelledException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantCancelledException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantCancelledException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: ParticipantCancelledException.java,v 1.1 2005/06/09 09:41:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantCancelledException.java,v 1.1 2005/06/09 09:41:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ParticipantCancelledException extends SystemException
+{
+
+    public ParticipantCancelledException ()
+    {
+	super();
+    }
+
+    public ParticipantCancelledException (String s)
+    {
+	super(s);
+    }
+
+    public ParticipantCancelledException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantConfirmedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantConfirmedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/exceptions/ParticipantConfirmedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: ParticipantConfirmedException.java,v 1.1 2005/06/09 09:41:43 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * There is no coordinator associated with the target.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantConfirmedException.java,v 1.1 2005/06/09 09:41:43 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ParticipantConfirmedException extends SystemException
+{
+
+    public ParticipantConfirmedException ()
+    {
+	super();
+    }
+
+    public ParticipantConfirmedException (String s)
+    {
+	super(s);
+    }
+
+    public ParticipantConfirmedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/hls/TwoPhaseHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/hls/TwoPhaseHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/hls/TwoPhaseHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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: TwoPhaseHLS.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.hls;
+
+import com.arjuna.mw.wsas.activity.HLS;
+import com.arjuna.mw.wscf.model.twophase.api.*;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseHLS.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface TwoPhaseHLS extends HLS
+{
+    
+    public UserCoordinatorService coordinatorService ();
+    
+    public UserCoordinator userCoordinator ();
+    
+    public CoordinatorManager coordinatorManager ();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/outcomes/CoordinationOutcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/outcomes/CoordinationOutcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/outcomes/CoordinationOutcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinationOutcome.java,v 1.4 2005/05/19 12:13:25 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.outcomes;
+
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The CoordinationOutcome represents the final outcome of the coordination
+ * event. The CompletionStatus and the actual two-phase status value are
+ * returned.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinationOutcome.java,v 1.4 2005/05/19 12:13:25 nmcl Exp $
+ */
+
+public class CoordinationOutcome implements Outcome
+{
+    
+    public CoordinationOutcome (int twophase)
+    {
+	this(Success.instance(), twophase);
+    }
+
+    public CoordinationOutcome (CompletionStatus s, int twophase)
+    {
+	_status = s;
+	_twophaseOutcome = twophase;
+    }
+
+    /**
+     * @return the two-phase status result.
+     * @see com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult
+     */
+
+    public final int result ()
+    {
+	return _twophaseOutcome;
+    }
+    
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "org.w3c.wscf.twophase.outcomes.CoordinationOutcome";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return null;
+    }
+
+    public String toString ()
+    {
+	return "com.arjuna.mw.wscf.twophase.outcomes.CoordinationOutcome: "+TwoPhaseResult.stringForm(_twophaseOutcome);
+    }
+    
+    private CompletionStatus _status;
+    private int              _twophaseOutcome;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Participant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Participant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Participant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,159 @@
+/*
+ * 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: Participant.java,v 1.3 2005/05/19 12:13:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.participants;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.mw.wscf.model.twophase.vote.Vote;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+/**
+ * This is the interface that all two-phase aware participants must define.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Participant.java,v 1.3 2005/05/19 12:13:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+// TODO the nested transaction methods
+
+public interface Participant
+{
+
+    /**
+     * Prepare the participant for top-level.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot prepare.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing prepare
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the vote.
+     */
+    
+    public Vote prepare () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, SystemException;
+
+    /**
+     * Confirm the participant at top-level.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot confirm.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing confirm
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception HeuristicRollbackException Thrown if the participant rolls
+     * back rather than commits.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void confirm () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCancelException, SystemException;
+
+    /**
+     * Cancel the participant at top-level.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing cancel
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception HeuristicCommitException Thrown if the participant commits
+     * rather than rolls back.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void cancel () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicConfirmException, SystemException;
+
+    /**
+     * Confirm the participant in a single phase.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing cancel
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception HeuristicRollbackException Thrown if the participant rolls
+     * back rather than commit.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void confirmOnePhase () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCancelException, SystemException;
+
+    /**
+     * Inform the participant that is can forget the heuristic result.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid.
+     * @exception WrongStateException Thrown if the participant is in an invalid state.
+     * @exception SystemException Thrown in the event of a general fault.
+     */
+
+    public void forget () throws InvalidParticipantException, WrongStateException, SystemException;
+
+    public String id () throws SystemException;
+    
+    // recovery information
+    
+    public boolean save_state (OutputObjectState os);
+    public boolean restore_state (InputObjectState os);
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Synchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Synchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/participants/Synchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Synchronization.java,v 1.2 2005/05/19 12:13:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.participants;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * This is the interface that all synchronization participants must define.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Synchronization.java,v 1.2 2005/05/19 12:13:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Synchronization
+{
+
+    /**
+     * The transaction that the instance is enrolled with is about to
+     * commit.
+     * 
+     * @exception SystemException Thrown if any error occurs. This will cause
+     * the transaction to roll back.
+     */
+
+    public void beforeCompletion () throws SystemException;
+
+    /**
+     * The transaction that the instance is enrolled with has completed and
+     * the state in which is completed is passed as a parameter.
+     *
+     * @param status The state in which the transaction completed.
+     *
+     * @exception SystemException Thrown if any error occurs. This has no
+     * affect on the outcome of the transaction.
+     */
+
+    public void afterCompletion (int status) throws SystemException;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/CancelOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/CancelOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/CancelOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CancelOnly.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The status of the coordination is such that it will eventually cancel.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: CancelOnly.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CancelOnly implements Status
+{
+
+    public static CancelOnly instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.CancelOnly";
+    }
+
+    private CancelOnly ()
+    {
+    }
+
+    private static final CancelOnly _instance = new CancelOnly();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelled.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelled.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelled.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Cancelled.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator has cancelled and completed the protocol.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Cancelled.java,v 1.1 2003/01/07 10:33:45 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Cancelled implements Status
+{
+
+    public static Cancelled instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.Cancelled";
+    }
+
+    private Cancelled ()
+    {
+    }
+
+    private static final Cancelled _instance = new Cancelled();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelling.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelling.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Cancelling.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Cancelling.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator is in the process of cancelling.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Cancelling.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Cancelling implements Status
+{
+
+    public static Cancelling instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.Cancelling";
+    }
+
+    private Cancelling ()
+    {
+    }
+
+    private static final Cancelling _instance = new Cancelling();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirmed.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirmed.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirmed.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Confirmed.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator has confirmed and completed the protocol.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Confirmed.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Confirmed implements Status
+{
+
+    public static Confirmed instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.Confirmed";
+    }
+
+    private Confirmed ()
+    {
+    }
+
+    private static final Confirmed _instance = new Confirmed();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirming.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirming.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Confirming.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: Confirming.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator is in the process of confirming the participants. This
+ * does not necessarily mean that the final outcome will be for the
+ * coordination protocol to have confirmed.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Confirming.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Confirming implements Status
+{
+
+    public static Confirming instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.Confirming";
+    }
+
+    private Confirming ()
+    {
+    }
+
+    private static final Confirming _instance = new Confirming();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicCancel.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * All of the coordiantor's participants cancelled when they were asked to
+ * confirm.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: HeuristicCancel.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicCancel implements Status
+{
+
+    public static HeuristicCancel instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.HeuristicCancel";
+    }
+
+    private HeuristicCancel ()
+    {
+    }
+
+    private static final HeuristicCancel _instance = new HeuristicCancel();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicConfirm.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * All of the coordinator's participants confirmed when they were asked to
+ * cancel.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: HeuristicConfirm.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicConfirm implements Status
+{
+
+    public static HeuristicConfirm instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.HeuristicConfirm";
+    }
+
+    private HeuristicConfirm ()
+    {
+    }
+
+    private static final HeuristicConfirm _instance = new HeuristicConfirm();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicHazard.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicHazard.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicHazard.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: HeuristicHazard.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * Some of the coordinator's participants cancelled, some confirmed and the
+ * status of others is indeterminate.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: HeuristicHazard.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicHazard implements Status
+{
+
+    public static HeuristicHazard instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.HeuristicHazard";
+    }
+
+    private HeuristicHazard ()
+    {
+    }
+
+    private static final HeuristicHazard _instance = new HeuristicHazard();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicMixed.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicMixed.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/HeuristicMixed.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: HeuristicMixed.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * Some of the coordinator's participants cancelled and some confirmed.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: HeuristicMixed.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicMixed implements Status
+{
+
+    public static HeuristicMixed instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.HeuristicMixed";
+    }
+
+    private HeuristicMixed ()
+    {
+    }
+
+    private static final HeuristicMixed _instance = new HeuristicMixed();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Prepared.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Prepared.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Prepared.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Prepared.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator has prepared.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Prepared.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Prepared implements Status
+{
+
+    public static Prepared instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.Prepared";
+    }
+
+    private Prepared ()
+    {
+    }
+
+    private static final Prepared _instance = new Prepared();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Preparing.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Preparing.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/status/Preparing.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Preparing.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The coordinator is preparing.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Preparing.java,v 1.1 2003/01/07 10:33:46 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Preparing implements Status
+{
+
+    public static Preparing instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.status.Preparing";
+    }
+
+    private Preparing ()
+    {
+    }
+
+    private static final Preparing _instance = new Preparing();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/Vote.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/Vote.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/Vote.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Vote.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.vote;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Vote.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+public interface Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: VoteCancel.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.vote;
+
+/**
+ * The inferior votes that is has cancelled. The coordinator service
+ * may inform the inferior of the final decision (hopefully to cancel
+ * as well), but it need not.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteCancel.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+public class VoteCancel implements Vote
+{
+
+    public VoteCancel ()
+    {
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteCancel)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.vote.VoteCancel";
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: VoteConfirm.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.vote;
+
+/**
+ * The inferior votes that is can confirm. The coordinator service
+ * should ultimately inform the participant of the final outcome.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteConfirm.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+public class VoteConfirm implements Vote
+{
+
+    public VoteConfirm ()
+    {
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteConfirm)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.vote.VoteConfirm";
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteReadOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteReadOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/twophase/vote/VoteReadOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: VoteReadOnly.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.twophase.vote;
+
+/**
+ * The inferior votes that it has done no work that requires to be involved
+ * any further in the two-phase protocol. For example, it has not updated
+ * any data. This can then be used by the coordinator to optimise the
+ * subsequent phase of the protocol (if any).
+ *
+ * WARNING: this should be used with care.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteReadOnly.java,v 1.1 2003/01/07 10:33:47 nmcl Exp $
+ */
+
+public class VoteReadOnly implements Vote
+{
+
+    public VoteReadOnly ()
+    {
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteReadOnly)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "org.w3c.wscf.twophase.vote.VoteReadOnly";
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/TransactionManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/TransactionManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/TransactionManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+/*
+ * 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: TransactionManagerFactory.java,v 1.6 2005/05/19 12:13:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.xa;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.xa.hls.JTAHLS;
+
+import com.arjuna.mw.wscf.common.*;
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mwlabs.wscf.model.jta.arjunajta.JTAHLSImple;
+
+import com.arjuna.mwlabs.wscf.utils.*;
+
+import javax.transaction.SystemException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import java.util.HashMap;
+
+public class TransactionManagerFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.xa.TMF_1 [com.arjuna.mw.wscf.model.xa.TMF_1] - Failed to create 
+     */
+
+    public static javax.transaction.TransactionManager transactionManager () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(JTAHLSImple.className());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.xa.TMF_1",
+					      new Object[]{JTAHLSImple.className()});
+	    }
+	    else
+		return transactionManager(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static javax.transaction.TransactionManager transactionManager (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		JTAHLS coordHLS = (JTAHLS) _implementations.get(protocolType);
+	
+		if (coordHLS == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+		
+		    if (implementation instanceof String)
+		    {
+			Class c = Class.forName((String) implementation);
+
+			coordHLS = (JTAHLS) c.newInstance();
+		    }
+		    else
+			coordHLS = (JTAHLS) implementation;
+
+		    _implementations.put(protocolType, coordHLS);
+		}
+	    
+		return coordHLS.transactionManager();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/UserTransactionFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/UserTransactionFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/UserTransactionFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+/*
+ * 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,
+ *
+ * Hewlett-Packard Arjuna Labs,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UserTransactionFactory.java,v 1.6 2005/05/19 12:13:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.xa;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.xa.hls.JTAHLS;
+
+import com.arjuna.mw.wscf.common.*;
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mwlabs.wscf.model.jta.arjunajta.JTAHLSImple;
+
+import com.arjuna.mwlabs.wscf.utils.*;
+
+import javax.transaction.SystemException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import java.util.HashMap;
+
+public class UserTransactionFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wscf.model.xa.UTF_1 [com.arjuna.mw.wscf.model.xa.UTF_1] - Failed to create 
+     */
+
+    public static javax.transaction.UserTransaction userTransaction () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(JTAHLSImple.className());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mw.wscf.model.xa.UTF_1",
+					      new Object[]{JTAHLSImple.className()});
+	    }
+	    else
+		return userTransaction(doc);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the CoordinatorManager implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static javax.transaction.UserTransaction userTransaction (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, CoordinatorXSD.coordinatorType);
+		String protocolType = child.getNodeValue();
+		JTAHLS coordHLS = (JTAHLS) _implementations.get(protocolType);
+	
+		if (coordHLS == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+		
+		    if (implementation instanceof String)
+		    {
+			Class c = Class.forName((String) implementation);
+
+			coordHLS = (JTAHLS) c.newInstance();
+		    }
+		    else
+			coordHLS = (JTAHLS) implementation;
+
+		    _implementations.put(protocolType, coordHLS);
+		}
+	    
+		return coordHLS.userTransaction();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/hls/JTAHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/hls/JTAHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/hls/JTAHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: JTAHLS.java,v 1.2 2005/05/19 12:13:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.xa.hls;
+
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: JTAHLS.java,v 1.2 2005/05/19 12:13:27 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface JTAHLS extends HLS
+{
+    
+    public UserCoordinatorService coordinatorService ();
+    
+    public javax.transaction.UserTransaction userTransaction ();
+    
+    public javax.transaction.TransactionManager transactionManager ();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/outcomes/XAOutcome.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/outcomes/XAOutcome.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/outcomes/XAOutcome.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,136 @@
+/*
+ * 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: XAOutcome.java,v 1.2 2005/05/19 12:13:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.xa.outcomes;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Failure;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import javax.transaction.xa.XAException;
+
+/**
+ * The XAOutcome represents the final outcome of the coordination
+ * event. The CompletionStatus and the actual two-phase status value are
+ * returned.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAOutcome.java,v 1.2 2005/05/19 12:13:27 nmcl Exp $
+ */
+
+public class XAOutcome implements Outcome
+{
+
+    public XAOutcome ()
+    {
+	this(Success.instance(), null);
+    }
+    
+    public XAOutcome (XAException ex)
+    {
+	this(Failure.instance(), ex);
+    }
+
+    public XAOutcome (CompletionStatus s)
+    {
+	this(s, null);
+    }
+
+    public XAOutcome (CompletionStatus s, XAException ex)
+    {
+	_status = s;
+	_exp = ex;
+    }
+
+    /**
+     * Give a name for this outcome.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     * @return some implementation specific name for the Outcome. Typically
+     * this will be the only thing necessary to determine the transaction's
+     * outcome, e.g., "RolledBack".
+     */
+
+    public String name () throws SystemException
+    {
+	return "org.w3c.wscf.xa.outcomes.XAOutcome";
+    }
+
+    /**
+     * The state in which the activity completed.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return the final completion status of the transaction. Any additional
+     * information (e.g., exception types) may be provided by the data method.
+     */
+ 
+    public CompletionStatus completedStatus () throws SystemException
+    {
+	return _status;
+    }
+ 
+    /**
+     * Outcome specific information that can be used to determine finer
+     * level details about the outcome instance.
+     *
+     * @exception SystemException Thrown if an error occurs.
+     *
+     * @return completion specific data for this activity. Examples include
+     * the type of failure exception that was thrown by the implementation
+     * (e.g., HeuristicMixed).
+     */
+
+    public Object data () throws SystemException
+    {
+	return _exp;
+    }
+
+    public String toString ()
+    {
+	try
+	{
+	    return name()+":"+_exp;
+	}
+	catch (SystemException ex)
+	{
+	    return null;
+	}
+    }
+    
+    private CompletionStatus _status;
+    private XAException      _exp;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/status/XAStatus.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/status/XAStatus.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/model/xa/status/XAStatus.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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: XAStatus.java,v 1.2 2005/05/19 12:13:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.model.xa.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The status of the coordination is such that it will eventually cancel.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: XAStatus.java,v 1.2 2005/05/19 12:13:27 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class XAStatus implements Status
+{
+
+    public XAStatus (int status)
+    {
+	_status = status;
+    }
+    
+    public static XAStatus instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "com.arjuna.mw.wscf.model.xa.status.XAStatus";
+    }
+
+    public int getStatus ()
+    {
+	return _status;
+    }
+    
+    private XAStatus ()
+    {
+    }
+
+    private int _status;
+    
+    private static final XAStatus _instance = new XAStatus();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,456 @@
+/*
+ * 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.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.common.Environment;
+
+import com.arjuna.mwlabs.wscf.protocols.Initializer;
+
+import com.arjuna.mw.wscf.utils.CoordinationXML;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mwlabs.wscf.protocols.ProtocolEntry;
+
+import java.util.HashMap;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolAlreadyRegisteredException;
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+import com.arjuna.mw.wscf.exceptions.UnknownProtocolImplementationException;
+
+import java.lang.ExceptionInInitializerError;
+
+import java.util.Vector;
+import java.util.Properties;
+import java.util.Enumeration;
+
+/**
+ * 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 ProtocolManager
+{
+
+	/**
+	 * 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 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 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 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.ProtocolManager_1
+	 *          [com.arjuna.mw.wscf.protocols.ProtocolManager_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.ProtocolManager_1")
+						+ protocolDef.protocolType());
+	}
+
+	/**
+	 * Remove the specified protocol definition from the factory.
+	 * 
+	 * @param     protocol The XML definition of the coordination protocol.
+	 * 
+	 * @exception ProtocolNotRegisteredException
+	 *                Thrown if the protocol to be removed has not been
+	 *                registered.
+	 * @exception InvalidParamaterException
+	 *                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 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 ProtocolManager ()
+	{
+		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.ProtocolManager_2
+	 *          [com.arjuna.mw.wscf.protocols.ProtocolManager_2] - Failed to
+	 *          find document:
+	 */
+
+	private synchronized final void initialise ()
+	{
+		if (_initialised)
+			return;
+		else
+			_initialised = true;
+
+		// TODO sort out configuration!
+
+		try
+		{
+			Initializer init = new Initializer(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.PROTOCOL_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.ProtocolManager_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;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistry.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistry.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistry.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * 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 ProtocolRegistry
+{
+
+    public static ProtocolManager sharedManager ()
+    {
+	return _shared;
+    }
+    
+    public static ProtocolManager createManager ()
+    {
+	return new ProtocolManager();
+    }
+
+    private static ProtocolManager _shared = new ProtocolManager();
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/status/Coordinating.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/status/Coordinating.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/status/Coordinating.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Coordinating.java,v 1.1 2002/11/25 10:56:35 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The Coordinator is coordinating.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Coordinating.java,v 1.1 2002/11/25 10:56:35 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Coordinating implements Status
+{
+
+    public static Coordinating instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.Coordinating";
+    }
+
+    private Coordinating ()
+    {
+    }
+
+    private static final Coordinating _instance = new Coordinating();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/CoordinationXML.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/CoordinationXML.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/CoordinationXML.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,121 @@
+/*
+ * 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: CoordinationXML.java,v 1.6 2005/05/19 12:13:28 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.utils;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+/**
+ * This class is used to parse the coordination protocol XML definition
+ * and return specific information contained within.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinationXML.java,v 1.6 2005/05/19 12:13:28 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinationXML
+{
+
+    public CoordinationXML (org.w3c.dom.Document protocol)
+    {
+	_protocol = protocol;
+	_rootElement = _protocol.getDocumentElement();
+
+	org.w3c.dom.Text name = DomUtil.getTextNode(_rootElement, CoordinatorXSD.coordinatorType);
+
+	if (name != null)
+	    _protocolType = name.getNodeValue();
+	else
+	    _protocolType = null;
+
+	/*
+	 * Optional part of schema.
+	 */
+
+	name = DomUtil.getTextNode(_rootElement, CoordinatorXSD.coordinatorName);
+	
+	if (name != null)
+	    _protocolName = name.getNodeValue();
+	else
+	    _protocolName = null;
+    }
+
+    /**
+     * @return the type of the protocol.
+     */
+
+    public final String protocolType ()
+    {
+	return _protocolType;
+    }
+
+    /**
+     * @return the name of the protocol, or null if it was not defined in the
+     * protocol definition.
+     */
+
+    public final String protocolName ()
+    {
+	return _protocolName;
+    }
+
+    public boolean equals (Object obj)
+    {
+	if (obj instanceof CoordinationXML)
+	{
+	    CoordinationXML p = (CoordinationXML) obj;
+	    
+	    if (_protocolType != null)
+	    {
+		if (p.protocolType() != null)
+		{
+		    if (_protocolType.equals(p.protocolType()))
+		    {
+			if (_protocolName != null)
+			{
+			    if (p.protocolName() != null)
+				return _protocolName.equals(p.protocolName());
+			}
+		    }
+		}
+	    }
+	}
+	
+	return false;
+    }
+    
+    private org.w3c.dom.Document _protocol;
+    private org.w3c.dom.Element  _rootElement;
+    private String               _protocolType;
+    private String               _protocolName;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/DomUtil.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/DomUtil.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/utils/DomUtil.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,120 @@
+/*
+ * 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: DomUtil.java,v 1.3 2005/05/19 12:13:28 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.utils;
+
+import javax.xml.parsers.*;
+
+// TODO put back
+
+//import org.apache.xml.serialize.DOMWriterImpl;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DomUtil.java,v 1.3 2005/05/19 12:13:28 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DomUtil
+{
+
+    public static final org.w3c.dom.Text getTextNode (org.w3c.dom.Node element, String name)
+    {
+	org.w3c.dom.Node child = getNode(element, name);
+	
+	if (child != null)
+	    return (org.w3c.dom.Text) child.getFirstChild();
+	else
+	    return null;
+    }
+
+    public static final org.w3c.dom.Node getNode (org.w3c.dom.Node element, String name)
+    {
+	org.w3c.dom.Node child = null;
+	
+	if (element != null)
+	{
+	    org.w3c.dom.NodeList children = element.getChildNodes();
+	    
+	    for (int i = 0; i < children.getLength(); i++)
+	    {
+		org.w3c.dom.Node item = children.item(i);
+		
+		if (item.getNodeName().equals(name))
+		{
+		    child = item;
+
+		    break;
+		}
+		else
+		{
+		    if (item.hasChildNodes())
+		    {
+			child = getNode(item, name);
+			
+			if (child != null)
+			    break;
+		    }
+		}
+	    }
+	}
+	
+	return child;
+    }
+
+    public static final String nodeAsString (org.w3c.dom.Node node)
+    {
+	// TODO put back
+
+	//	DOMWriterImpl domWriter = new DOMWriterImpl();
+
+	//	return domWriter.writeToString(node);
+
+	return node.toString();
+    }
+
+    public static final DocumentBuilder getDocumentBuilder ()
+    {
+	try
+	{
+	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	    
+	    return factory.newDocumentBuilder();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	return null;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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 javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+import com.arjuna.mw.wscf.protocols.ProtocolManager;
+import com.arjuna.mw.wscf.protocols.ProtocolRegistry;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.ContextFactoryMapper;
+
+/**
+ * @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 ContextFactoryMapperImple extends ContextFactoryMapper
+{
+
+	public ContextFactoryMapperImple()
+	{
+		_protocols = ProtocolRegistry.createManager();
+	}
+
+	public void addContextFactory (String coordinationTypeURI, ContextFactory contextFactory)
+	{
+		try
+		{
+			_protocols.addProtocol(convert(coordinationTypeURI), contextFactory);
+
+			contextFactory.install(coordinationTypeURI);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+	}
+
+	public void removeContextFactory (String coordinationTypeURI)
+	{
+		try
+		{
+			ContextFactory contextFactory = (ContextFactory) _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 ContextFactory 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);
+
+				ContextFactory factory = (ContextFactory) c.newInstance();
+
+				_protocols.replaceProtocol(doc, factory);
+
+				return factory;
+			}
+			else
+			{
+				return (ContextFactory) type;
+			}
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+
+		return null;
+	}
+
+	public void setSubordinateContextFactoryMapper (ContextFactoryMapper subordinateContextFactoryMapper)
+	{
+	}
+
+	public ContextFactoryMapper getSubordinateContextFactoryMapper ()
+	{
+		return null;
+	}
+
+	public void setDefaultContextFactory (ContextFactory defaultContextFactory)
+	{
+	}
+
+	public ContextFactory 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 "comarjunamwlabswsccontextfactorymapper";
+	}
+
+	private ProtocolManager _protocols;
+
+	private static final String _wscRootElement = "WS-C";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/common/Schema.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/common/Schema.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/common/Schema.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: Schema.java,v 1.5 2004/12/29 16:23:21 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.common;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Schema.java,v 1.5 2004/12/29 16:23:21 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Schema
+{
+
+    public static final String REGISTRATION_SERVICE = "wscoor:RegistrationService";
+    public static final String ADDRESS = "wsu:Address";
+    public static final String IDENTIFIER = "wsu:Identifier";
+    public static final String EXPIRES = "wsu:Expires";
+    public static final String COORDINATION_TYPE = "wscoor:CoordinationType";
+    public static final String COORDINATION_CONTEXT = "wscoor:CoordinationContext";
+    
+    public static final String WSCOOR_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/10/wscoor";
+    public static final String WSU_NAMESPACE = "http://schemas.xmlsoap.org/ws/2002/07/utility";
+    public static final String ARJUNA_NAMESPACE = "http://arjuna.com/schemas/wsc/2003/01/extension";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/ContextFactoryImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/ContextFactoryImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/ContextFactoryImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,204 @@
+/*
+ * 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.12.4.1 2005/11/22 10:34:10 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta;
+
+import javax.transaction.TransactionManager;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.model.xa.TransactionManagerFactory;
+import com.arjuna.mwlabs.wsc.model.jta.context.JTAContextImple;
+import com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+
+public class ContextFactoryImple implements ContextFactory
+{
+    public ContextFactoryImple ()
+    {
+    	try
+    	{
+    	    _coordManager = TransactionManagerFactory.transactionManager();
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+    	}
+    	_theRegistrar = new RegistrarImple();
+    }
+
+    /**
+     * 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 InvalidCreateParametersException if a parameter passed is invalid
+     *         this activity identifier
+     *
+     * @message com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_1 [com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_1] - Invalid type URI: < {0} , {1} >
+     * @message com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_11 [com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_11] - Invalid type URI:
+     */
+
+    public CoordinationContextType create(final String coordinationTypeURI, final Long expires, final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException
+    {
+    	if (coordinationTypeURI.equals(_coordinationTypeURI))
+    	{
+    	    // TODO remove the suspend
+    
+    	    try
+    	    {
+        		_coordManager.suspend();
+        	    
+        		_coordManager.begin();
+        
+        		/*
+        		DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+        		com.arjuna.mw.wsas.context.Context theContext = manager.context();
+        		*/
+        
+                final JTAContextImple jtaContext = JTAContextImple.getContext() ;
+                final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+                
+                final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+                coordinationContext.setCoordinationType(new URI(coordinationTypeURI)) ;
+                coordinationContext.setIdentifier(new AttributedURIType(jtaContext.getTransactionIdentifier())) ;
+                final int transactionExpires = jtaContext.getTransactionExpires() ;
+                if (transactionExpires > 0)
+                {
+                    coordinationContext.setExpires(new AttributedUnsignedIntType(transactionExpires)) ;
+                }
+                final EndpointReferenceType registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+                InstanceIdentifier.setEndpointInstanceIdentifier(registrationCoordinator, jtaContext.getTransactionIdentifier()) ;
+                coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+        		/*
+        		 * Now add the registrar for this specific coordinator to
+        		 * the mapper.
+        		 */
+        
+        		_coordManager.getTransaction().registerSynchronization(new CleanupSynchronization(_coordManager.getTransaction().toString(), _theRegistrar));
+        
+        		_theRegistrar.associate() ;
+        
+        		return coordinationContext ;
+    	    }
+    	    catch (javax.transaction.RollbackException ex)
+    	    {
+        		// TODO handle properly
+        
+        		ex.printStackTrace();
+    	    }
+    	    catch (javax.transaction.SystemException ex)
+    	    {
+        		// TODO handle properly
+        
+        		ex.printStackTrace();
+    	    }
+    	    catch (javax.transaction.NotSupportedException ex)
+    	    {
+        		// TODO handle properly
+        
+        		ex.printStackTrace();
+    	    }
+    	    catch (Exception ex)
+    	    {
+    		// TODO handle properly
+    
+    		ex.printStackTrace();
+    	    }		
+    	}
+    	else
+    	{
+    	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_1",
+    					  new Object[]{_coordinationTypeURI, coordinationTypeURI});
+    
+    	    throw new InvalidCreateParametersException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_11")+" < "+_coordinationTypeURI+", "+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)
+    {
+    }
+
+    public final RegistrarImple registrar ()
+    {
+        return _theRegistrar;
+    }
+    
+    private TransactionManager _coordManager;
+    private RegistrarImple     _theRegistrar;
+
+    public static final String _coordinationTypeURI = "urn:arjuna:jta";
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/RegistrarImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/RegistrarImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/RegistrarImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,225 @@
+/*
+ * 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: RegistrarImple.java,v 1.7.4.1 2005/11/22 10:34:10 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta;
+
+import java.util.HashMap;
+
+import javax.transaction.RollbackException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.model.xa.TransactionManagerFactory;
+import com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant;
+import com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.Registrar;
+import com.arjuna.wsc.RegistrarMapper;
+
+public class RegistrarImple implements Registrar
+{
+
+    public RegistrarImple ()
+    {
+    	try
+    	{
+    	    _coordManager = TransactionManagerFactory.transactionManager();
+            
+            final RegistrarMapper mapper = RegistrarMapper.getFactory() ;
+
+            mapper.addRegistrar(_2PCProtocolId, this);
+            mapper.addRegistrar(_synchProtocolId, this);
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+    	}
+        _coordinatorAddress = new EndpointReferenceType(new AttributedURIType(System.getProperty(JTA_DEPLOYMENT_URL)));
+    }
+
+    /**
+     * 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)
+    {
+    }
+
+    // TODO need to be able to specify the specific transaction
+
+    /**
+     * Registers the interest of participant in a particular protocol.
+     *
+     * @param participantProtocolServiceAddress the address of the participant protocol service
+     * @param protocolIdentifier the protocol identifier
+     *
+     * @return the PortReference of the coordinator protocol service
+     *
+     * @throws AlreadyRegisteredException if the participant is already registered for this coordination protocol under
+     *         this activity identifier
+     * @throws InvalidProtocolException if the coordination protocol is not supported
+     * @throws InvalidStateException if the state of the coordinator no longer allows registration for this
+     *         coordination protocol
+     * @throws NoActivityException if the activity does not exist
+     *
+     * @message com.arjuna.mwlabs.wsc.model.jta.RegistrarImple_1 [com.arjuna.mwlabs.wsc.model.jta.RegistrarImple_1] - Invalid type URI: < {0} , {1} >
+     */
+
+    public EndpointReferenceType register (EndpointReferenceType participantProtocolService, String protocolIdentifier, InstanceIdentifier instanceIdentifier) throws AlreadyRegisteredException, InvalidProtocolException, InvalidStateException, NoActivityException
+    {
+        if (instanceIdentifier == null)
+            throw new NoActivityException();
+        
+    	Transaction transaction = (Transaction) _hierarchies.get(instanceIdentifier.getInstanceIdentifier());
+	
+    	if (transaction == null)
+    	    throw new NoActivityException();
+	
+    	if (protocolIdentifier.equals(_2PCProtocolId))
+    	{
+    	    // enlist participant that wraps the requester URI.
+    
+    	    try
+    	    {
+    	        _coordManager.resume(transaction);
+    	    }
+    	    catch (javax.transaction.InvalidTransactionException ex)
+    	    {
+    	        throw new NoActivityException();
+    	    }
+    	    catch (javax.transaction.SystemException ex)
+    	    {
+    	        throw new InvalidProtocolException();
+    	    }
+    
+    	    try
+    	    {
+        		// TODO check for AlreadyRegisteredException
+        
+        		_coordManager.getTransaction().enlistResource(new JTAParticipant(participantProtocolService));
+        		
+        		_coordManager.suspend();
+        		
+                return _coordinatorAddress ;
+    	    }
+    	    catch (RollbackException ex)
+    	    {
+         		throw new InvalidStateException();
+    	    }
+    	    catch (IllegalStateException ex)
+    	    {
+        		throw new InvalidStateException();
+    	    }
+    	    catch (javax.transaction.SystemException ex)
+    	    {
+        		throw new InvalidStateException();
+    	    }
+    	}
+    	else
+    	{
+    	    if (protocolIdentifier.equals(_synchProtocolId))
+    	    {
+        		try
+        		{
+        		    _coordManager.getTransaction().registerSynchronization(new JTASynchronization(participantProtocolService));
+        
+        		    _coordManager.suspend();
+        
+                    return _coordinatorAddress ;
+        		}
+        		catch (Exception ex)
+        		{
+        		    throw new InvalidStateException();
+        		}
+    	    }
+    	    else
+    	    {
+        		wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsc.model.jta.RegistrarImple_1",
+        					      new Object[]{_coordinationTypeURI, 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 serviceAddress the address of the service
+     * @param protocolIdentifier the protocol identifier
+     */
+
+    public void uninstall (String protocolIdentifier)
+    {
+    }
+
+    public final void associate () throws Exception
+    {
+	String txIdentifier = _coordManager.getTransaction().toString();
+	Transaction tx = _coordManager.suspend();
+
+	_hierarchies.put(txIdentifier, tx);
+    }
+
+    public final void disassociate (String txIdentifier) throws Exception
+    {
+	_hierarchies.remove(txIdentifier);
+    }
+
+    public final EndpointReferenceType address ()
+    {
+    return _coordinatorAddress;
+    }
+
+    private TransactionManager    _coordManager;
+    private HashMap               _hierarchies = new HashMap();
+    private EndpointReferenceType _coordinatorAddress;
+
+    public static final String JTA_DEPLOYMENT_URL = "com.arjuna.mwlabs.wsc.model.jta.deploymentURL";
+    
+    public static final String _coordinationTypeURI = "urn:arjuna:jta";
+    public static final String _2PCProtocolId = "urn:arjuna:jta#2pc";
+    public static final String _synchProtocolId = "urn:arjuna:jta#synch";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/DeploymentContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/DeploymentContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/DeploymentContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: DeploymentContextImple.java,v 1.1.24.1 2005/11/22 10:34:08 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta.context;
+
+import com.arjuna.mw.wsas.context.*;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContextImple.java,v 1.1.24.1 2005/11/22 10:34:08 kconner Exp $
+ * @since 1.0.
+ */
+
+public class DeploymentContextImple implements DeploymentContext
+{
+
+    public DeploymentContextImple ()
+    {
+    }
+    
+    public Context context ()
+    {
+        return JTAContextImple.getContext() ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/JTAContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/JTAContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/context/JTAContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,225 @@
+/*
+ * 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: JTAContextImple.java,v 1.10.4.1 2005/11/22 10:34:08 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta.context;
+
+import com.arjuna.mw.wsas.*;
+import com.arjuna.mw.wsas.activity.*;
+
+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.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple;
+
+import javax.transaction.*;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * 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: JTAContextImple.java,v 1.10.4.1 2005/11/22 10:34:08 kconner Exp $
+ */
+
+public class JTAContextImple implements SOAPContext
+{
+
+    public JTAContextImple ()
+    {
+        _context = null;
+    }
+    
+    public JTAContextImple (Transaction 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
+    	{
+    	    final Transaction currentCoordinator = (Transaction) param;
+            ActivityHierarchy hier = null;
+            
+            try
+            {
+                hier = UserActivityFactory.userActivity().currentActivity();
+            }
+            catch (SystemException ex)
+            {
+                ex.printStackTrace();
+            }
+
+            if ((currentCoordinator != null) && (hier != null))
+            {
+                _identifierValue = ((TransactionImple) currentCoordinator).get_uid().stringForm() ;
+                _expiresValue = hier.activity(hier.size()-1).getTimeout() ;
+            }
+        }
+        catch (final ClassCastException cce)
+        {
+            throw new java.lang.IllegalArgumentException();
+        }
+    }
+    
+    private synchronized Element context()
+    {
+        if (_context == null)
+        {
+    	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+    	    DocumentBuilder builder = null;
+    	
+    	    try
+    	    {
+    	        builder = factory.newDocumentBuilder();
+    	    }
+    	    catch (Exception ex)
+    	    {
+    	        ex.printStackTrace();
+    	    }
+    
+    	    org.w3c.dom.Document doc = builder.newDocument();
+        
+    	    _context = doc.createElement(_contextName);
+        
+            _context.setAttribute("xmlns:wsu", _wsuNamespace);
+            _context.setAttribute("xmlns:wscoor", _wscoorNamespace);
+            _context.setAttribute("xmlns:arjuna", _arjunaNamespace);
+    
+    	    if (_identifierValue != null)
+    	    {
+        		org.w3c.dom.Element identifier = doc.createElement(_identifier);
+        		identifier.appendChild(doc.createTextNode(_identifierValue));
+        		
+        		_context.appendChild(identifier);
+        	    
+        		org.w3c.dom.Element expires = doc.createElement(_expires);
+        		expires.appendChild(doc.createTextNode(Integer.toString(_expiresValue)));
+        
+        		_context.appendChild(expires);
+        
+        		org.w3c.dom.Element coordinationType = doc.createElement("wscoor:CoordinationType");
+        		coordinationType.appendChild(doc.createTextNode(_coordinationTypeURI));
+        	    
+        		_context.appendChild(coordinationType);
+    	    }
+        }
+        return _context ;
+    }
+    
+    public String getTransactionIdentifier()
+    {
+        return _identifierValue ;
+    }
+    
+    public int getTransactionExpires()
+    {
+        return _expiresValue ;
+    }
+    
+    public String identifier ()
+    {
+        return JTAContextImple.class.getName();
+    }
+
+    public String toString ()
+    {
+        return DomUtil.nodeAsString(context());
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wsc.model.jta.context.JTAContextImple_1 [com.arjuna.mwlabs.wsc.model.jta.context.JTAContextImple_1] - ignoring context: 
+     */
+    public static JTAContextImple getContext()
+    {
+        ContextManager cxman = new ContextManager();
+        Context[] contexts = cxman.contexts();
+    
+        for (int i = 0; i < contexts.length; i++)
+        {
+            if (contexts[i].identifier().equals(com.arjuna.mwlabs.wsc.model.jta.context.JTAContextImple.class.getName()))
+            {
+                if (contexts[i] instanceof JTAContextImple)
+                {
+                    return (JTAContextImple)contexts[i] ;
+                }
+                else
+                {
+                    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsc.model.jta.context.SOAPContextImple_1",
+                                  new Object[]{contexts[i]});
+                }
+                break;
+            }
+        }
+        return null ;
+    }
+
+    private org.w3c.dom.Element _context;
+    private String _identifierValue ;
+    private int _expiresValue ;
+
+    private static final String _wscoorNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wscoor";
+    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 = "wscoor:CoordinationContext";
+    private static final String _identifier = "wsu:Identifier";
+    private static final String _expires = "wsu:Expires";
+    private static final String _coordinationType = "CoordinationType";
+
+    public static final String _coordinationTypeURI = "urn:arjuna:jta";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/CleanupSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/CleanupSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/CleanupSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,84 @@
+/*
+ * 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.4 2005/05/19 12:13:30 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta.participants;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mwlabs.wsc.model.jta.RegistrarImple;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CleanupSynchronization.java,v 1.4 2005/05/19 12:13:30 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CleanupSynchronization implements javax.transaction.Synchronization
+{
+
+    public CleanupSynchronization (String cleanupId, RegistrarImple theRegistrar)
+    {
+	_cleanupId = cleanupId;
+	_theRegistrar = theRegistrar;
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization_1 [com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization_1] - CleanupSynchronization.beforeCompletion
+     */
+
+    public void beforeCompletion ()
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization_1");
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization_2 [com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization_2] - CleanupSynchronization.afterCompletion ( {0} )
+     */
+
+    public void afterCompletion (int status)
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.CleanupSynchronization_2",
+				      new Object[]{new String(""+status)});
+
+	try
+	{
+	    _theRegistrar.disassociate(_cleanupId);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+    private String         _cleanupId;
+    private RegistrarImple _theRegistrar;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTAParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTAParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTAParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,126 @@
+/*
+ * 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: JTAParticipant.java,v 1.3.4.1 2005/11/22 10:34:13 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta.participants;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+import javax.transaction.xa.*;
+
+/**
+ * @message com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1 [com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1] - {0} {1}
+ * @message com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_2 [com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_2] - {0}
+ * @message com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_3 [com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_3] - {0} {1} {2}
+ */
+
+public class JTAParticipant implements XAResource
+{
+    
+    public JTAParticipant (final EndpointReferenceType address)
+    {
+	_address = address;
+    }
+    
+    public void commit (Xid xid, boolean onePhase) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1",
+				      new Object[]{"JTAParticipant.commit", xid});
+    }
+
+    public void end (Xid xid, int flags) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_3",
+				      new Object[]{"JTAParticipant.end", xid, new String(""+flags)});
+    }
+
+    public void forget (Xid xid) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1",
+				      new Object[]{"JTAParticipant.forget", xid});
+    }
+    
+    public int getTransactionTimeout () throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_2",
+				      new Object[]{"JTAParticipant.getTransactionTimeout"});
+
+	return 0;
+    }
+    
+    public int prepare (Xid xid) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1",
+				      new Object[]{"JTAParticipant.prepare", xid});
+
+	return XAResource.XA_OK;
+    }
+
+    public Xid[] recover (int flag) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1",
+				      new Object[]{"JTAParticipant.recover", new String(""+flag)});
+
+	return null;
+    }
+
+    public void rollback (Xid xid) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1",
+				      new Object[]{"JTAParticipant.rollback", xid});
+    }
+
+    public boolean setTransactionTimeout (int seconds) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_2",
+				      new Object[]{"JTAParticipant.setTransactionTimeout", new String(""+seconds)});
+
+	return true;
+    }
+
+    public void start (Xid xid, int flags) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_3",
+				      new Object[]{"JTAParticipant.start", xid, new String(""+flags)});
+    }
+
+    public boolean isSameRM (XAResource xares) throws XAException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTAParticipant_1",
+				      new Object[]{"JTAParticipant.isSameRM", xares});
+       
+	return (xares == this);
+    }
+
+    private EndpointReferenceType _address;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTASynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTASynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/jta/participants/JTASynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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: JTASynchronization.java,v 1.4.4.1 2005/11/22 10:34:13 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.jta.participants;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * @message com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization_1 [com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization_1] - {0}
+ * @message com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization_2 [com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization_2] - {0} : {1}
+ */
+
+public class JTASynchronization implements javax.transaction.Synchronization
+{
+
+    public JTASynchronization (EndpointReferenceType address)
+    {
+	_address = address;
+    }
+    
+    public void beforeCompletion ()
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization_1",
+				      new Object[]{"beforeCompletion"});
+    }
+
+    public void afterCompletion (int status)
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.jta.participants.JTASynchronization_2",
+				      new Object[]{"afterCompletion", new String(""+status)});
+    }
+
+    private EndpointReferenceType _address;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/ContextFactoryImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/ContextFactoryImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/ContextFactoryImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: ContextFactoryImple.java,v 1.13.4.1 2005/11/22 10:34:16 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+import com.arjuna.mwlabs.wsc.model.twophase.context.ArjunaContextImple;
+import com.arjuna.mwlabs.wsc.model.twophase.participants.CleanupSynchronization;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+
+public class ContextFactoryImple implements ContextFactory
+{
+
+	public ContextFactoryImple ()
+	{
+		try
+		{
+			_coordManager = CoordinatorManagerFactory.coordinatorManager();
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+
+		_theRegistrar = new RegistrarImple();
+	}
+
+	/**
+	 * 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 InvalidCreateParametersException
+	 *             if a parameter passed is invalid this activity identifier
+	 * 
+	 * @message com.arjuna.mwlabs.wsc.model.twophase.ContextFactoryImple_1
+	 *          [com.arjuna.mwlabs.wsc.model.twophase.ContextFactoryImple_1] -
+	 *          Invalid type URI: < {0} , {1} >
+	 * @message com.arjuna.mwlabs.wsc.model.twophase.ContextFactoryImple_11
+	 *          [com.arjuna.mwlabs.wsc.model.jta.ContextFactoryImple_11] -
+	 *          Invalid type URI:
+	 */
+
+	public CoordinationContextType create (final String coordinationTypeURI,
+            final Long expires, final CoordinationContextType currentContext)
+			throws InvalidCreateParametersException
+	{
+		if (coordinationTypeURI.equals(_coordinationTypeURI))
+		{
+			// TODO remove the suspend
+
+			try
+			{
+				_coordManager.suspend();
+
+				_coordManager.begin();
+
+				/*
+				 * DeploymentContext manager =
+				 * DeploymentContextFactory.deploymentContext();
+				 * com.arjuna.mw.wsas.context.Context theContext =
+				 * manager.context();
+				 */
+
+                final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+                
+                final ArjunaContextImple arjunaContext = ArjunaContextImple.getContext() ;
+                final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+                coordinationContext.setCoordinationType(new URI(coordinationTypeURI)) ;
+                coordinationContext.setIdentifier(new AttributedURIType(arjunaContext.getTransactionIdentifier(0))) ;
+                final int transactionExpires = arjunaContext.getTransactionExpires(0) ;
+                if (transactionExpires > 0)
+                {
+                    coordinationContext.setExpires(new AttributedUnsignedIntType(transactionExpires)) ;
+                }
+                final EndpointReferenceType registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+                InstanceIdentifier.setEndpointInstanceIdentifier(registrationCoordinator, arjunaContext.getTransactionIdentifier(0)) ;
+                coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+				/*
+				 * Now add the registrar for this specific coordinator to the
+				 * mapper.
+				 */
+
+				_coordManager.enlistSynchronization(new CleanupSynchronization(
+						_coordManager.identifier().toString(), _theRegistrar));
+
+				_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
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsc.model.twophase.ContextFactoryImple_1", new Object[]
+			{ _coordinationTypeURI, coordinationTypeURI });
+
+			throw new InvalidCreateParametersException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wsc.model.twophase.ContextFactoryImple_11")
+							+ " < "
+							+ _coordinationTypeURI
+							+ ", "
+							+ 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 serviceAddress
+	 *            the address of the service
+	 * @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 RegistrarImple registrar ()
+	{
+		return _theRegistrar;
+	}
+
+	private CoordinatorManager _coordManager;
+	private RegistrarImple _theRegistrar;
+
+	public static final String _coordinationTypeURI = "urn:arjuna:tx-two-phase-commit";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/RegistrarImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/RegistrarImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/RegistrarImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,234 @@
+/*
+ * 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: RegistrarImple.java,v 1.10.4.1 2005/11/22 10:34:16 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.wsc.Registrar;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.RegistrarMapper;
+
+import com.arjuna.mwlabs.wsc.model.twophase.participants.*;
+
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import java.util.HashMap;
+
+public class RegistrarImple implements Registrar
+{
+
+	public RegistrarImple ()
+	{
+		try
+		{
+			_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+			final RegistrarMapper mapper = RegistrarMapper.getFactory() ;
+
+			mapper.addRegistrar(_2PCProtocolId, this);
+			mapper.addRegistrar(_synchProtocolId, this);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+
+		_coordinatorAddress = new EndpointReferenceType(new AttributedURIType(
+				System.getProperty(TWO_PHASE_DEPLOYMENT_URL)));
+	}
+
+	/**
+	 * 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 serviceAddress
+	 *            the address of the service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void install (String protocolIdentifier)
+	{
+	}
+
+	/**
+	 * Registers the interest of participant in a particular protocol.
+	 * 
+	 * @param participantProtocolServiceAddress
+	 *            the address of the participant protocol service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 * 
+	 * @return the PortReference of the coordinator protocol service
+	 * 
+	 * @throws AlreadyRegisteredException
+	 *             if the participant is already registered for this
+	 *             coordination protocol under this activity identifier
+	 * @throws InvalidProtocolException
+	 *             if the coordination protocol is not supported
+	 * @throws InvalidStateException
+	 *             if the state of the coordinator no longer allows registration
+	 *             for this coordination protocol
+	 * @throws NoActivityException
+	 *             if the activity does not exist
+	 * 
+	 * @message com.arjuna.mwlabs.wsc.model.twophase.RegistrarImple_1
+	 *          [com.arjuna.mwlabs.wsc.model.twophase.RegistrarImple_1] -
+	 *          Invalid type URI: < {0} , {1} >
+	 */
+
+	public EndpointReferenceType register (EndpointReferenceType participantProtocolService, String protocolIdentifier, InstanceIdentifier instanceIdentifier)
+			throws AlreadyRegisteredException, InvalidProtocolException,
+			InvalidStateException, NoActivityException
+	{
+        if (instanceIdentifier == null)
+            throw new NoActivityException();
+        
+		ActivityHierarchy hier = (ActivityHierarchy) _hierarchies.get(instanceIdentifier);
+
+		if (hier == null)
+			throw new NoActivityException();
+
+		if (protocolIdentifier.equals(_2PCProtocolId))
+		{
+			// enlist participant that wraps the requester URI.
+
+			try
+			{
+				_coordManager.resume(hier);
+			}
+			catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+			{
+				throw new NoActivityException();
+			}
+			catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+			{
+				throw new InvalidProtocolException();
+			}
+
+			try
+			{
+				// TODO check for AlreadyRegisteredException
+
+				final String participantId = new Uid().stringForm();
+				_coordManager.enlistParticipant(new TwoPhaseParticipant(
+						participantProtocolService, participantId));
+
+				_coordManager.suspend();
+
+				return _coordinatorAddress;
+			}
+			catch (Exception ex)
+			{
+				throw new InvalidStateException();
+			}
+		}
+		else
+		{
+			if (protocolIdentifier.equals(_synchProtocolId))
+			{
+				try
+				{
+					_coordManager.enlistSynchronization(new TwoPhaseSynchronization(
+							participantProtocolService));
+
+					_coordManager.suspend();
+
+					return _coordinatorAddress;
+				}
+				catch (Exception ex)
+				{
+					throw new InvalidStateException();
+				}
+			}
+			else
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsc.model.twophase.RegistrarImple_1", new Object[]
+				{ _coordinationTypeURI, 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 serviceAddress
+	 *            the address of the service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void uninstall (String protocolIdentifier)
+	{
+	}
+
+	public final void associate () throws Exception
+	{
+		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 CoordinatorManager _coordManager;
+	private HashMap _hierarchies = new HashMap();
+    private EndpointReferenceType _coordinatorAddress;
+
+	public static final String TWO_PHASE_DEPLOYMENT_URL = "com.arjuna.mwlabs.wsc.model.twophase.deploymentURL";
+	public static final String _coordinationTypeURI = "urn:arjuna:tx-two-phase-commit";
+	public static final String _2PCProtocolId = "urn:arjuna:tx-two-phase-commit#2pc";
+	public static final String _synchProtocolId = "urn:arjuna:tx-two-phase-commit#synch";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/ArjunaContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/ArjunaContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/ArjunaContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,275 @@
+/*
+ * 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: ArjunaContextImple.java,v 1.10.4.1 2005/11/22 10:34:12 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase.context;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator;
+
+import com.arjuna.ats.arjuna.coordinator.ActionHierarchy;
+
+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.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * 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.10.4.1 2005/11/22 10:34:12 kconner Exp $
+ */
+
+public class ArjunaContextImple implements SOAPContext
+{
+
+    public ArjunaContextImple ()
+    {
+        _context = null;
+    }
+    
+    public ArjunaContextImple (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 java.lang.IllegalArgumentException();
+        }
+    }
+    
+    private synchronized Element context()
+    {
+        if (_context == null)
+        {
+            try
+            {
+                DocumentBuilder builder = com.arjuna.mw.wscf.utils.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.
+                     */
+    
+                    org.w3c.dom.Element identifier = doc.createElement("wsu:"+_identifier);
+                    identifier.appendChild(doc.createTextNode(_identifierValues[0]));
+                    
+                    _context.appendChild(identifier);
+    
+                    org.w3c.dom.Element expires = doc.createElement("wsu:"+_expires);
+                    expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[0])));
+    
+                    _context.appendChild(expires);
+    
+                    org.w3c.dom.Element coordinationType = doc.createElement("wscoor:CoordinationType");
+                    coordinationType.appendChild(doc.createTextNode(_coordinationTypeURI));
+    
+                    _context.appendChild(coordinationType);
+                    
+                    /*
+                     * Now let's do the optional stuff.
+                     */
+                    final int depth = _identifierValues.length ;
+                    if (depth > 1)
+                    {
+                        org.w3c.dom.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);
+                    }
+                }
+            }
+            catch (ClassCastException ex)
+            {
+                throw new java.lang.IllegalArgumentException();
+            }
+        }
+        return _context ;
+    }
+    
+    public String getTransactionIdentifier(final int index)
+    {
+        return _identifierValues[index] ;
+    }
+    
+    public int getTransactionExpires(final int index)
+    {
+        return _expiresValues[index] ;
+    }
+    
+    public int getDepth()
+    {
+        return (_identifierValues == null ? 0 : _identifierValues.length) ;
+    }
+
+    public String identifier ()
+    {
+        return ArjunaContextImple.class.getName();
+    }
+
+    public String toString ()
+    {
+        return DomUtil.nodeAsString(context());
+    }
+    
+    /**
+     * @message com.arjuna.mwlabs.wsc.model.twophase.context.ArjunaContextImple_1 [com.arjuna.mwlabs.wsc.model.twophase.context.ArjunaContextImple_1] - ignoring context: 
+     */
+    public static ArjunaContextImple getContext()
+    {
+        ContextManager cxman = new ContextManager();
+        Context[] contexts = cxman.contexts();
+
+        for (int i = 0; i < contexts.length; i++)
+        {
+            if (contexts[i].identifier().equals(com.arjuna.mwlabs.wsc.model.twophase.context.ArjunaContextImple.class.getName()))
+            {
+                if (contexts[i] instanceof ArjunaContextImple)
+                {
+                    return (ArjunaContextImple)contexts[i] ;
+                }
+                else
+                {
+                    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsc.model.twophase.context.ArjunaContextImple_1",
+                                  new Object[]{contexts[i]});
+                }
+                break;
+            }
+        }
+        return null ;
+    }
+
+    private org.w3c.dom.Element _context;
+    private String[] _identifierValues ;
+    private int[] _expiresValues ;
+
+    private static final String _wscoorNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wscoor";
+    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 = "CoordinationContext";
+    private static final String _identifier = "Identifier";
+    private static final String _expires = "Expires";
+    private static final String _coordinationType = "CoordinationType";
+
+    public static final String _coordinationTypeURI = "urn:arjuna:tx-two-phase-commit";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/DeploymentContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/DeploymentContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/context/DeploymentContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: DeploymentContextImple.java,v 1.1.24.1 2005/11/22 10:34:13 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase.context;
+
+import com.arjuna.mw.wsas.context.*;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContextImple.java,v 1.1.24.1 2005/11/22 10:34:13 kconner Exp $
+ * @since 1.0.
+ */
+
+public class DeploymentContextImple implements DeploymentContext
+{
+
+    public DeploymentContextImple ()
+    {
+    }
+    
+    public Context context ()
+    {
+        return ArjunaContextImple.getContext() ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/CleanupSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/CleanupSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/CleanupSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+/*
+ * 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.4 2005/05/19 12:13:31 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase.participants;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mwlabs.wsc.model.twophase.RegistrarImple;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+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.4 2005/05/19 12:13:31 nmcl Exp $
+ * @since 1.0.
+ *
+ * @message com.arjuna.mwlabs.wsc.model.twophase.participants.CleanupSynchronization_1 [com.arjuna.mwlabs.wsc.model.twophase.participants.CleanupSynchronization_1] - {0}
+ * @message com.arjuna.mwlabs.wsc.model.twophase.participants.JTASynchronization_2 [com.arjuna.mwlabs.wsc.model.twophase.participants.CleanupSynchronization_2] - {0} ( {1} )
+ */
+
+public class CleanupSynchronization implements Synchronization
+{
+
+    public CleanupSynchronization (String cleanupId, RegistrarImple theRegistrar)
+    {
+	_cleanupId = cleanupId;
+	_theRegistrar = theRegistrar;
+    }
+
+    public void beforeCompletion () throws SystemException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.CleanupSynchronization_1",
+				      new Object[]{"CleanupSynchronization.beforeCompletion"});
+    }
+
+    public void afterCompletion (int status) throws SystemException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.CleanupSynchronization_2",
+				      new Object[]{"CleanupSynchronization.afterCompletion", CoordinationResult.stringForm(status)});
+
+	try
+	{
+	    _theRegistrar.disassociate(_cleanupId);
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+    private String         _cleanupId;
+    private RegistrarImple _theRegistrar;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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: TwoPhaseParticipant.java,v 1.6.4.1 2005/11/22 10:34:11 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase.participants;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+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.twophase.exceptions.HeuristicCancelException;
+import com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicConfirmException;
+import com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicHazardException;
+import com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicMixedException;
+import com.arjuna.mw.wscf.model.twophase.participants.Participant;
+import com.arjuna.mw.wscf.model.twophase.vote.Vote;
+import com.arjuna.mw.wscf.model.twophase.vote.VoteConfirm;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseParticipant.java,v 1.6.4.1 2005/11/22 10:34:11 kconner Exp $
+ * @since 1.0.
+ * 
+ * @message com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1
+ *          [com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1] -
+ *          {0}
+ */
+
+public class TwoPhaseParticipant implements Participant
+{
+
+	public TwoPhaseParticipant (EndpointReferenceType address, String id)
+	{
+		_address = address;
+		_id = id;
+	}
+
+	public Vote prepare () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, SystemException
+	{
+        if (wscfLogger.arjLoggerI18N.isInfoEnabled())
+        {
+    		wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1", new Object[]
+    		{ "TwoPhaseParticipant.prepare" });
+        }
+
+		return new VoteConfirm();
+	}
+
+	public void confirm () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicCancelException, SystemException
+	{
+        if (wscfLogger.arjLoggerI18N.isInfoEnabled())
+        {
+    		wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1", new Object[]
+    		{ "TwoPhaseParticipant.confirm" });
+        }
+	}
+
+	public void cancel () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicConfirmException, SystemException
+	{
+        if (wscfLogger.arjLoggerI18N.isInfoEnabled())
+        {
+    		wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1", new Object[]
+    		{ "TwoPhaseParticipant.cancel" });
+        }
+	}
+
+	public void confirmOnePhase () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicCancelException, SystemException
+	{
+        if (wscfLogger.arjLoggerI18N.isInfoEnabled())
+        {
+    		wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1", new Object[]
+    		{ "TwoPhaseParticipant.confirmOnePhase" });
+        }
+	}
+
+	public void forget () throws InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+        if (wscfLogger.arjLoggerI18N.isInfoEnabled())
+        {
+    		wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseParticipant_1", new Object[]
+    		{ "TwoPhaseParticipant.forget" });
+        }
+	}
+
+	public String id () throws SystemException
+	{
+		return _id;
+	}
+
+    public boolean save_state(OutputObjectState os)
+    {
+        return false ;
+    }
+    
+    public boolean restore_state(InputObjectState os)
+    {
+        return false ;
+    }
+    
+	private EndpointReferenceType _address;
+
+	private String _id;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/model/twophase/participants/TwoPhaseSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TwoPhaseSynchronization.java,v 1.4.4.1 2005/11/22 10:34:11 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc.model.twophase.participants;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.model.twophase.common.CoordinationResult;
+import com.arjuna.mw.wscf.model.twophase.participants.Synchronization;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseSynchronization.java,v 1.4.4.1 2005/11/22 10:34:11 kconner Exp $
+ * @since 1.0.
+ *
+ * @message com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseSynchronization_1 [com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseSynchronization_1] - {0}
+ * @message com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseSynchronization_2 [com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseSynchronization_2] - {0} ( {1} )
+ */
+
+public class TwoPhaseSynchronization implements Synchronization
+{
+
+    public TwoPhaseSynchronization (EndpointReferenceType address)
+    {
+	_address = address;
+    }
+
+    public void beforeCompletion () throws SystemException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseSynchronization_1",
+				      new Object[]{"TwoPhaseSynchronization.beforeCompletion"});
+    }
+
+    public void afterCompletion (int status) throws SystemException
+    {
+	wscfLogger.arjLoggerI18N.info("com.arjuna.mwlabs.wsc.model.twophase.participants.TwoPhaseSynchronization_2",
+				      new Object[]{"TwoPhaseSynchronization.afterCompletion", CoordinationResult.stringForm(status)});
+    }
+
+    private EndpointReferenceType _address;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/UserCoordinatorImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/UserCoordinatorImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/UserCoordinatorImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,475 @@
+/*
+ * 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: UserCoordinatorImple.java,v 1.6 2005/05/19 12:13:31 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+import com.arjuna.mwlabs.wsas.UserActivityImple;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.UserActivity;
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mw.wsas.common.GlobalId;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.HLSError;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wsas.exceptions.ActiveChildException;
+
+/**
+ * The user portion of the coordinator API. An implementation of this interface
+ * presents each thread with the capability to create and manage coordinators.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserCoordinatorImple.java,v 1.6 2005/05/19 12:13:31 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UserCoordinatorImple implements UserCoordinator, UserActivity
+{
+
+    public UserCoordinatorImple (Object type)
+    {
+	super();
+	
+	try
+	{
+	    if (type instanceof String)
+	    {
+		Class c = Class.forName((String) type);
+		
+		_theCoordinatorService = (UserCoordinatorService) c.newInstance();
+	    }
+	    else
+		_theCoordinatorService = (UserCoordinatorService) type;
+
+	    //	    ActivityManagerFactory.activityManager().addHLS((HLS) _theCoordinatorService);
+	}
+	catch (Exception ex)
+	{
+	    throw new HLSError(ex.toString());
+	}
+    }
+    
+    /**
+     * Coordinate the participants using the current completion status
+     * associated with the activity.
+     * 
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.Outcome
+     */
+
+    public Outcome coordinate () throws WrongStateException, ProtocolViolationException, NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+
+	return _theCoordinatorService.coordinate(curr.getCompletionStatus());
+    }
+
+    /**
+     * Coordinate the participants using the completion status provided.
+     * 
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @param CompletionStatus cs The CompletionStatus to use.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.Outcome
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+
+	curr.completionValid(cs);
+	
+	return _theCoordinatorService.coordinate(cs);
+    }
+
+    /**
+     * Each participant can supply qualifiers to the coordinator at the time
+     * it enrols. These qualifiers may be used within the coordination protocol
+     * and hence need to be made available to users.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return Qualifier[] qualifiers The qualifiers.
+     */
+
+    public Qualifier[] qualifiers () throws NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+
+	return _theCoordinatorService.qualifiers();
+    }
+
+    /**
+     * @return the unique coordinator identifier.
+     */
+
+    public CoordinatorId identifier () throws NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+
+	return _theCoordinatorService.identifier();
+    }
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. An implementation specific
+     * timeout will be associated with the activity (which may be no
+     * timeout).
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void start () throws WrongStateException, SystemException
+    {
+	UserActivityFactory.userActivity().start();
+    }
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested.
+     *
+     * @param int timeout The timeout associated with the activity. If the
+     * activity has not been terminated by the time this period elapses, then
+     * it will automatically be terminated.
+     * @exception WrongStateException Thrown if the currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted as a child.
+     * @exception InvalidTimeoutException Thrown if the specified timeout is
+     * invalid within the current working environment.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void start (int timeout) throws WrongStateException, InvalidTimeoutException, SystemException
+    {
+	UserActivityFactory.userActivity().start(timeout);
+    }	
+
+    /**
+     * Complete the activity with the current completion status.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed in the status requested.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.Outcome
+     */
+
+    public Outcome end () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoActivityException, SystemException, NoPermissionException, ActiveChildException
+    {
+	return UserActivityFactory.userActivity().end();
+    }
+    
+
+    /**
+     * Complete the activity with the completion status provided.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @param CompletionStatus cs The CompletionStatus to use.
+     *
+     * @return the result of completing the activity. Null is valid and must
+     * be interpreted within the context of any HLS that may exist.
+     *
+     * @see com.arjuna.mw.wsas.Outcome
+     */
+
+    public Outcome end (com.arjuna.mw.wsas.completionstatus.CompletionStatus cs) throws InvalidActivityException, WrongStateException, ProtocolViolationException, SystemException, NoActivityException, NoPermissionException, ActiveChildException
+    {
+	return UserActivityFactory.userActivity().end(cs);
+    }
+
+    /**
+     * Set the termination status for the current activity, if any.
+     *
+     * @param CompletionStatus endStatus The state in which the activity
+     * should attempt to terminate. This may
+     * be one of the default values provided by WSAS or may be extended in
+     * an implementation specific manner by an HLS.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception WrongStateException Thrown if the completion status is
+     * incompatible with the current state of the activity.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setCompletionStatus (CompletionStatus endStatus) throws NoActivityException, WrongStateException, SystemException
+    {
+	UserActivityFactory.userActivity().setCompletionStatus(endStatus);
+    }	
+
+    /**
+     * Get the completion status currently associated with the activity.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the current thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the termination status for the current activity, if any.
+     */
+
+    public CompletionStatus getCompletionStatus () throws NoActivityException, SystemException
+    {
+	return UserActivityFactory.userActivity().getCompletionStatus();
+    }	
+
+    /**
+     * Get the timeout value currently associated with activities.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException
+    {
+	return UserActivityFactory.userActivity().getTimeout();
+    }	
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param int timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException
+    {
+	UserActivityFactory.userActivity().setTimeout(timeout);
+    }	
+    
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current activity. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    return NoActivity.instance();
+
+	return _theCoordinatorService.status();
+    }
+
+    /**
+     * What is the name of the current activity? Use only for
+     * debugging purposes!
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the name of the activity.
+     */
+
+    public String activityName () throws NoActivityException, SystemException
+    {
+	return UserActivityFactory.userActivity().activityName();
+    }
+
+    /**
+     * @return the unique activity id.
+     *
+     * @exception NoActivityException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public GlobalId activityId () throws NoActivityException, SystemException
+    {
+	return UserActivityFactory.userActivity().activityId();
+    }
+    
+    /**
+     * Suspend the current activity from this thread and return the token
+     * representing the context, if any, or null otherwise. Once called, the
+     * thread will have no activities associated with it.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the token representing the current context, if any, or null
+     * otherwise.
+     */
+
+    public ActivityHierarchy suspend () throws SystemException
+    {
+	return UserActivityFactory.userActivity().suspend();
+    }
+
+    /**
+     * Given a token representing a context, associate it with the current
+     * thread of control. This will implicitly disassociate the thread from any
+     * activities that it may already be associated with. If the parameter is
+     * null then the thread is associated with no activity.
+     *
+     * @param ActivityHierarchy tx The activity to associate with this thread. This
+     * may be null in which case the current thread becomes associated with
+     * no activity.
+     *
+     * @exception InvalidActivityException Thrown if the activity handle
+     * is invalid in this context.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (ActivityHierarchy tx) throws InvalidActivityException, SystemException
+    {
+	UserActivityFactory.userActivity().resume(tx);
+    }
+
+    /**
+     * @return the token representing the current activity context hierarchy,
+     * or null if there is none associated with the invoking thread.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     */
+
+    public ActivityHierarchy currentActivity () throws SystemException
+    {
+	return UserActivityFactory.userActivity().currentActivity();
+    }
+
+    public final ActivityImple current ()
+    {
+	UserActivityImple imple = (UserActivityImple) UserActivityFactory.userActivity();
+	
+	return imple.current();
+    }
+
+    final UserCoordinatorService coordinatorService ()
+    {
+	return _theCoordinatorService;
+    }
+
+    private UserCoordinatorService _theCoordinatorService;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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) 2005,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: LocalFactory.java,v 1.1 2005/05/19 12:13:32 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.coordinator;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.wsc.InvalidProtocolException;
+
+/**
+ * Local coordinators can implement this interface to enable direct
+ * creation of a coordinator and subordinate coordinator. Since we
+ * don't know the actual implementation details, users are required
+ * to determine the type dynamically.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id $
+ * @since 2.0.
+ */
+
+public interface LocalFactory
+{
+
+	/**
+	 * Create a new subordinate coordinator instance.
+	 * 
+	 * @return a new coordinator instance.
+	 */
+	
+	public Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException;
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/exceptions/ProtocolLocationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/exceptions/ProtocolLocationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/exceptions/ProtocolLocationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ProtocolLocationException.java,v 1.1 2002/11/25 10:56:36 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * When a coordination protocol implementation is imported to the registry,
+ * the XML protocol document must be loaded that corresponds to the protocol
+ * it implements. If that document cannot be located then this exception
+ * will be thrown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolLocationException.java,v 1.1 2002/11/25 10:56:36 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolLocationException extends WSASException
+{
+
+    public ProtocolLocationException ()
+    {
+	super();
+    }
+
+    public ProtocolLocationException (String s)
+    {
+	super(s);
+    }
+
+    public ProtocolLocationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/CoordinatorManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/CoordinatorManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/CoordinatorManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,185 @@
+/*
+ * 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: CoordinatorManagerImple.java,v 1.3 2005/05/19 12:13:32 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.*;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+
+import com.arjuna.mwlabs.wsas.UserActivityImple;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.as.coordinator.CoordinatorManagerService;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.HLSError;
+
+/**
+ * The coordination manager implementation. This provides users with the
+ * ability to enroll participants with coordinators and to remove them (where
+ * supported by the protocol definition.)
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorManagerImple.java,v 1.3 2005/05/19 12:13:32 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorManagerImple implements CoordinatorManager
+{
+
+    public CoordinatorManagerImple (Object type)
+    {
+	try
+	{
+	    if (type instanceof String)
+	    {
+		Class c = Class.forName((String) type);
+		
+		_theCoordinatorService = (CoordinatorManagerService) c.newInstance();
+	    }
+	    else
+		_theCoordinatorService = (CoordinatorManagerService) type;
+	}
+	catch (Exception ex)
+	{
+	    throw new HLSError(ex.toString());
+	}
+    }
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread. If the coordinator supports a priority ordering
+     * of participants, then that ordering can also be specified. Any
+     * qualifiers that are to be associated with the participant are also
+     * provided
+     *
+     * @param Participant act The participant.
+     * @param int priority The priority to associate with the participant in
+     * the coordinator's list.
+     * @param Qualifier[] quals Any qualifiers to be associated with the
+     * participant.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addParticipant (Participant act, int priority, Qualifier[] quals) throws NoActivityException, WrongStateException, DuplicateParticipantException, InvalidParticipantException, SystemException
+    {
+	if (current() == null)
+	    throw new NoActivityException();
+
+	_theCoordinatorService.addParticipant(act, priority, quals);
+    }
+
+    /**
+     * Remove the specified participant from the coordinator associated with
+     * the current thread.
+     *
+     * @param Participant act The participant to remove.
+     *
+     * @exception NoActivityException Thrown if there is no activity associated
+     * with the current thread.
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be removed.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+    
+    public void removeParticipant (Participant act) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException
+    {
+	if (current() == null)
+	    throw new NoActivityException();
+
+	_theCoordinatorService.removeParticipant(act);
+    }
+
+    /**
+     * Some coordination protocol messages may have asynchronous responses
+     * or it may be possible for participants to autonomously generate
+     * responses to messages that have not yet been producted by the
+     * coordinator. As such, this method allows a response from a participant
+     * to be passed to the coordinator. In order to ensure that the protocol
+     * remains valid, it is necessary for the participant to specify what
+     * message produced the response: if the response was autonomously
+     * generated by the participant on the assumption it would receive this
+     * message from the coordinator and the coordinator subsequently decides
+     * not to produce such a message, then the action taken by the participant
+     * is invalid and hence so is the response.
+     *
+     * @param String id the unique participant identification.
+     * @param Message notification the message the participant got/assumed
+     * when producing the response.
+     * @param Outcome response the actual response.
+     * @param Qualifier[] quals any qualifiers associated with the response.
+     *
+     * @exception InvalidParticipantException Thrown if the coordinator has no
+     * knowledge of the participant.
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * that does not allow it to accept responses at all or this specific
+     * type of response.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException
+    {
+	if (current() == null)
+	    throw new NoCoordinatorException();
+
+	_theCoordinatorService.setResponse(id, notification, response, quals);
+    }
+    
+    private final ActivityImple current ()
+    {
+	UserActivityImple imple = (UserActivityImple) UserActivityFactory.userActivity();
+	
+	return imple.current();
+    }
+    
+    private CoordinatorManagerService _theCoordinatorService;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ACCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ACCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ACCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,342 @@
+/*
+ * 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: ACCoordinator.java,v 1.5 2005/05/19 12:13:32 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.coordinator.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+import com.arjuna.mw.wscf.model.as.coordinator.Coordinator;
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * This class represents a specific coordination instance. It is essentially an
+ * ArjunaCore TwoPhaseCoordinator, which gives us access to two-phase with
+ * synchronization support but without thread management.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ACCoordinator.java,v 1.5 2005/05/19 12:13:32 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ACCoordinator extends TwoPhaseCoordinator implements
+		com.arjuna.mw.wscf.model.as.coordinator.Coordinator
+{
+
+	public ACCoordinator ()
+	{
+		super();
+
+		_theId = new CoordinatorIdImple(get_uid());
+	}
+
+	public ACCoordinator (Uid recovery)
+	{
+		super(recovery);
+
+		_theId = new CoordinatorIdImple(get_uid());
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		return null;
+	}
+
+	/**
+	 * Enrol the specified participant with the coordinator associated with the
+	 * current thread. If the coordinator supports a priority ordering of
+	 * participants, then that ordering can also be specified. Any qualifiers
+	 * that are to be associated with the participant are also provided.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * @param int
+	 *            priority The priority to associate with the participant in the
+	 *            coordinator's list. The two-phase coordinator only supports
+	 *            two types of priority, defined in the Priorities class:
+	 *            Synchronizations and Participants.
+	 * @param Qualifier[]
+	 *            quals Any qualifiers to be associated with the participant.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateParticipantException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @see com.arjuna.mw.wscf.model.as.coordinator.twophase.common.Priorities
+	 */
+
+	public void addParticipant (Participant act, int priority, Qualifier[] quals)
+			throws WrongStateException, DuplicateParticipantException,
+			InvalidParticipantException, SystemException
+	{
+		if (act == null)
+			throw new InvalidParticipantException();
+		
+		if (priority == Priorities.SYNCHRONIZATION)
+		{
+			SynchronizationRecord rec = new SynchronizationRecord(act,
+					new Uid(), priority, quals);
+
+			if (addSynchronization(rec) != AddOutcome.AR_ADDED)
+				throw new WrongStateException();
+		}
+		else
+		{
+			AbstractRecord rec = new ParticipantRecord(act, new Uid(),
+					priority, quals);
+
+			if (add(rec) != AddOutcome.AR_ADDED)
+				throw new WrongStateException();
+		}
+	}
+
+	/**
+	 * Remove the specified participant from the coordinator's list. This
+	 * operation may not be supported by all coordination protocols.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_1
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_1] -
+	 *          ArjunaCore does not support removeParticipant
+	 */
+
+	public void removeParticipant (Participant act)
+			throws InvalidParticipantException, WrongStateException,
+			SystemException
+	{
+		if (act == null)
+			throw new InvalidParticipantException();
+		else
+			throw new WrongStateException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_1"));
+	}
+
+	/**
+	 * Some coordination protocol messages may have asynchronous responses or it
+	 * may be possible for participants to autonomously generate responses to
+	 * messages that have not yet been producted by the coordinator. As such,
+	 * this method allows a response from a participant to be passed to the
+	 * coordinator. In order to ensure that the protocol remains valid, it is
+	 * necessary for the participant to specify what message produced the
+	 * response: if the response was autonomously generated by the participant
+	 * on the assumption it would receive this message from the coordinator and
+	 * the coordinator subsequently decides not to produce such a message, then
+	 * the action taken by the participant is invalid and hence so is the
+	 * response.
+	 * 
+	 * @param String
+	 *            id the unique participant identification.
+	 * @param Message
+	 *            notification the message the participant got/assumed when
+	 *            producing the response.
+	 * @param Outcome
+	 *            response the actual response.
+	 * @param Qualifier[]
+	 *            quals any qualifiers associated with the response.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the coordinator has no knowledge of the
+	 *                participant.
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state that does not
+	 *                allow it to accept responses at all or this specific type
+	 *                of response.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_2
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_1_2] -
+	 *          Invalid id:
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_3
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_1_3] -
+	 *          Unknown participant:
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_4
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_1_4] -
+	 *          Participant is not of correct type!
+	 */
+
+	public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals)
+			throws InvalidParticipantException, WrongStateException,
+			SystemException
+	{
+		Uid participant = new Uid(id);
+
+		if (!participant.valid())
+			throw new InvalidParticipantException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_2")
+							+ id);
+
+		synchronized (this)
+		{
+			if ((status() == ActionStatus.COMMITTED)
+					|| (status() == ActionStatus.ABORTED))
+			{
+				throw new WrongStateException();
+			}
+
+			boolean found = false;
+			RecordList intentionsList = pendingList; // what about other
+														// lists?
+			AbstractRecord rec = intentionsList.peekFront();
+
+			while (rec != null)
+			{
+				if (rec.order().equals(participant))
+				{
+					found = true;
+
+					break;
+				}
+				else
+					rec = intentionsList.peekNext(rec);
+			}
+
+			if (!found)
+				throw new InvalidParticipantException(
+						wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_3")
+								+ id);
+			else
+			{
+				if (rec instanceof com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord)
+				{
+					com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord theRecord = (com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord) rec;
+
+					theRecord.setResponse(notification, response);
+				}
+				else
+					throw new InvalidParticipantException(
+							wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator_4"));
+			}
+		}
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return a reference to the current coordinators' parent if it is nested,
+	 *         null otherwise.
+	 */
+
+	public Coordinator getParentCoordinator () throws SystemException
+	{
+		return (Coordinator) parent();
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the complete list of qualifiers that have been registered with
+	 *         the current coordinator.
+	 */
+
+	public Qualifier[] qualifiers () throws SystemException
+	{
+		return null;
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return The unique identity of the current coordinator.
+	 */
+
+	public CoordinatorId identifier () throws SystemException
+	{
+		return _theId;
+	}
+
+	private CoordinatorIdImple _theId;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ArjunaCoreHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ArjunaCoreHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ArjunaCoreHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,544 @@
+/*
+ * 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: ArjunaCoreHLS.java,v 1.6 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.context.soap.ArjunaContextImple;
+
+import com.arjuna.mw.wscf.model.twophase.outcomes.CoordinationOutcome;
+import com.arjuna.mw.wscf.model.twophase.status.*;
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+
+import com.arjuna.mw.wsas.status.Active;
+import com.arjuna.mw.wsas.status.Unknown;
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+import com.arjuna.mw.wscf.model.as.coordinator.CoordinatorManagerService;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+import com.arjuna.mw.wscf.model.as.coordinator.Coordinator;
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.ats.arjuna.coordinator.ActionStatus;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityHandleImple;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import java.util.Hashtable;
+
+/**
+ * The ArjunaCore coordination service implementation.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ArjunaCoreHLS.java,v 1.6 2005/05/19 12:13:33 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ArjunaCoreHLS implements HLS, CoordinatorManagerService,
+		UserCoordinatorService
+{
+
+	public ArjunaCoreHLS ()
+	{
+	}
+
+	/**
+	 * An activity has begun and is active on the current thread.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS_1
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS_1] -
+	 *          ArjunaCoreHLS.begun:
+	 */
+
+	public void begun () throws SystemException
+	{
+		try
+		{
+			ACCoordinator coord = new ACCoordinator();
+			
+			int status = coord.start(parentCoordinator());
+
+			if (status != ActionStatus.RUNNING)
+			{
+				throw new BegunFailedException(
+						wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ArjunaCoreHLS_1")
+								+ ActionStatus.stringForm(status));
+			}
+			else
+			{
+				_coordinators.put(currentActivity(), coord);
+			}
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		catch (Exception ex)
+		{
+			throw new UnexpectedException(ex.toString());
+		}
+	}
+
+	/**
+	 * The current activity is completing with the specified completion status.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use.
+	 * 
+	 * @return The result of terminating the relationship of this HLS and the
+	 *         current activity.
+	 */
+
+	public Outcome complete (CompletionStatus cs) throws SystemException
+	{
+		ACCoordinator current = currentCoordinator();
+		int outcome;
+
+		if ((cs != null) && (cs instanceof Success))
+		{
+			// commit
+
+			outcome = current.end(true);
+		}
+		else
+		{
+			// abort
+
+			outcome = current.cancel();
+		}
+
+		_coordinators.remove(currentActivity());
+
+		int result;
+
+		switch (outcome)
+		{
+		case ActionStatus.ABORTED:
+			result = TwoPhaseResult.CANCELLED;
+			break;
+		case ActionStatus.COMMITTED:
+			result = TwoPhaseResult.CONFIRMED;
+			break;
+		case ActionStatus.H_ROLLBACK:
+			result = TwoPhaseResult.HEURISTIC_CANCEL;
+			break;
+		case ActionStatus.H_COMMIT:
+			result = TwoPhaseResult.HEURISTIC_CONFIRM;
+			break;
+		case ActionStatus.H_MIXED:
+			result = TwoPhaseResult.HEURISTIC_MIXED;
+			break;
+		case ActionStatus.H_HAZARD:
+			result = TwoPhaseResult.HEURISTIC_HAZARD;
+			break;
+		default:
+			result = TwoPhaseResult.FINISH_ERROR;
+			break;
+		}
+
+		return new CoordinationOutcome(cs, result);
+	}
+
+	/**
+	 * The activity has been suspended.
+	 */
+
+	public void suspended () throws SystemException
+	{
+	}
+
+	/**
+	 * The activity has been resumed on the current thread.
+	 */
+
+	public void resumed () throws SystemException
+	{
+	}
+
+	/**
+	 * The activity has completed and is no longer active on the current thread.
+	 */
+
+	public void completed () throws SystemException
+	{
+	}
+
+	/**
+	 * The HLS name.
+	 */
+
+	public String identity () throws SystemException
+	{
+		return "ArjunaCoreHLS";
+	}
+
+	/**
+	 * The activity service maintains a priority ordered list of HLS
+	 * implementations. If an HLS wishes to be ordered based on priority then it
+	 * can return a non-negative value: the higher the value, the higher the
+	 * priority and hence the earlier in the list of HLSes it will appear (and
+	 * be used in).
+	 * 
+	 * @return a positive value for the priority for this HLS, or zero/negative
+	 *         if the order is not important.
+	 */
+
+	public int priority () throws SystemException
+	{
+		return 0;
+	}
+
+	/**
+	 * Return the context augmentation for this HLS, if any on the current
+	 * activity.
+	 * 
+	 * @param ActivityHierarchy
+	 *            current The handle on the current activity hierarchy. The HLS
+	 *            may use this when determining what information to place in its
+	 *            context data.
+	 * 
+	 * @return a context object or null if no augmentation is necessary.
+	 */
+
+	public Context context () throws SystemException
+	{
+		return new ArjunaContextImple(currentCoordinator());
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		return currentCoordinator().coordinate(cs);
+	}
+
+	/**
+	 * Enrol the specified participant with the coordinator associated with the
+	 * current thread. If the coordinator supports a priority ordering of
+	 * participants, then that ordering can also be specified. Any qualifiers
+	 * that are to be associated with the participant are also provided.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * @param int
+	 *            priority The priority to associate with the participant in the
+	 *            coordinator's list.
+	 * @param Qualifier[]
+	 *            quals Any qualifiers to be associated with the participant.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateParticipantException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void addParticipant (Participant act, int priority, Qualifier[] quals)
+			throws WrongStateException, DuplicateParticipantException,
+			NoCoordinatorException, InvalidParticipantException,
+			SystemException
+	{
+		currentCoordinator().addParticipant(act, priority, quals);
+	}
+
+	/**
+	 * Remove the specified participant from the coordinator's list. This
+	 * operation may not be supported by all coordination protocols.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void removeParticipant (Participant act)
+			throws InvalidParticipantException, NoCoordinatorException,
+			WrongStateException, SystemException
+	{
+		currentCoordinator().removeParticipant(act);
+	}
+
+	/**
+	 * Some coordination protocol messages may have asynchronous responses or it
+	 * may be possible for participants to autonomously generate responses to
+	 * messages that have not yet been producted by the coordinator. As such,
+	 * this method allows a response from a participant to be passed to the
+	 * coordinator. In order to ensure that the protocol remains valid, it is
+	 * necessary for the participant to specify what message produced the
+	 * response: if the response was autonomously generated by the participant
+	 * on the assumption it would receive this message from the coordinator and
+	 * the coordinator subsequently decides not to produce such a message, then
+	 * the action taken by the participant is invalid and hence so is the
+	 * response.
+	 * 
+	 * @param String
+	 *            id the unique participant identification.
+	 * @param Message
+	 *            notification the message the participant got/assumed when
+	 *            producing the response.
+	 * @param Outcome
+	 *            response the actual response.
+	 * @param Qualifier[]
+	 *            quals any qualifiers associated with the response.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the coordinator has no knowledge of the
+	 *                participant.
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state that does not
+	 *                allow it to accept responses at all or this specific type
+	 *                of response.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals)
+			throws InvalidParticipantException, WrongStateException,
+			NoCoordinatorException, SystemException
+	{
+		currentCoordinator().setResponse(id, notification, response, quals);
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return a reference to the current coordinators' parent if it is nested,
+	 *         null otherwise.
+	 */
+
+	public Coordinator getParentCoordinator () throws NoCoordinatorException,
+			SystemException
+	{
+		return currentCoordinator().getParentCoordinator();
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the status of the current coordinator. If there is no activity
+	 *         associated with the thread then NoActivity will be returned.
+	 * 
+	 * @see com.arjuna.mw.wsas.status.Status
+	 */
+
+	public com.arjuna.mw.wsas.status.Status status () throws SystemException
+	{
+		int currentStatus = currentCoordinator().status();
+
+		switch (currentStatus)
+		{
+		case ActionStatus.CREATED:
+		case ActionStatus.RUNNING:
+			return Active.instance();
+		case ActionStatus.PREPARING:
+			return Preparing.instance();
+		case ActionStatus.ABORTING:
+			return Cancelling.instance();
+		case ActionStatus.ABORTED:
+			return Cancelled.instance();
+		case ActionStatus.ABORT_ONLY:
+			return CancelOnly.instance();
+		case ActionStatus.PREPARED:
+			return Prepared.instance();
+		case ActionStatus.COMMITTING:
+			return Confirming.instance();
+		case ActionStatus.COMMITTED:
+			return Confirmed.instance();
+		case ActionStatus.H_ROLLBACK:
+			return HeuristicCancel.instance();
+		case ActionStatus.H_COMMIT:
+			return HeuristicConfirm.instance();
+		case ActionStatus.H_MIXED:
+			return HeuristicMixed.instance();
+		case ActionStatus.H_HAZARD:
+			return HeuristicHazard.instance();
+		case ActionStatus.NO_ACTION:
+			return NoActivity.instance();
+		case ActionStatus.DISABLED:
+		case ActionStatus.INVALID:
+		case ActionStatus.CLEANUP:
+		default:
+			return Unknown.instance();
+		}
+	}
+
+	/**
+	 * Not supported by basic ArjunaCore.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the complete list of qualifiers that have been registered with
+	 *         the current coordinator.
+	 */
+
+	public Qualifier[] qualifiers () throws NoCoordinatorException,
+			SystemException
+	{
+		return currentCoordinator().qualifiers();
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return The unique identity of the current coordinator.
+	 */
+
+	public CoordinatorId identifier () throws NoCoordinatorException,
+			SystemException
+	{
+		return currentCoordinator().identifier();
+	}
+
+	public static String className ()
+	{
+		return ArjunaCoreHLS.class.getName();
+	}
+
+	private final ActivityHandleImple currentActivity () throws SystemException
+	{
+		try
+		{
+			ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+
+			if (hier.size() > 0)
+				return (ActivityHandleImple) hier.activity(hier.size() - 1);
+			else
+				return null;
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	private final ACCoordinator parentCoordinator () throws SystemException
+	{
+		try
+		{
+			ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+			ActivityHandleImple parentActivity = null;
+			ACCoordinator parentCoordinator = null;
+
+			if (hier.size() > 1)
+			{
+				parentActivity = (ActivityHandleImple) hier.activity(hier.size() - 2);
+
+				parentCoordinator = (ACCoordinator) _coordinators.get(parentActivity);
+			}
+
+			return parentCoordinator;
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+
+			return null;
+		}
+	}
+
+	private final ACCoordinator currentCoordinator ()
+			throws NoCoordinatorException, SystemException
+	{
+		ACCoordinator coord = (ACCoordinator) _coordinators.get(currentActivity());
+
+		if (coord == null)
+			throw new NoCoordinatorException();
+		else
+			return coord;
+	}
+
+	private static Hashtable _coordinators = new Hashtable();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/CoordinatorIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/CoordinatorIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/CoordinatorIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: CoordinatorIdImple.java,v 1.3 2004/03/15 13:25:08 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+/**
+ * This implementation of CoordinatorId uses the ArjunaCore Uid class.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorIdImple.java,v 1.3 2004/03/15 13:25:08 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorIdImple extends Uid implements CoordinatorId
+{
+
+    public CoordinatorIdImple ()
+    {
+	super();
+
+	_value = stringForm().getBytes();
+    }
+    
+    public CoordinatorIdImple (String id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+
+    public CoordinatorIdImple (Uid id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+    
+    private byte[] _value;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantRecord.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantRecord.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantRecord.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,872 @@
+/*
+ * 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: ParticipantRecord.java,v 1.5 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.ObjectType;
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.arjuna.gandiva.ClassName;
+
+import com.arjuna.mw.wscf.model.as.coordinator.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.messages.*;
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+import java.io.PrintWriter;
+
+/**
+ * Arjuna abstract record to handle two-phase participants.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantRecord.java,v 1.5 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+public class ParticipantRecord extends
+		com.arjuna.ats.arjuna.coordinator.AbstractRecord
+{
+
+	/**
+	 * Constructor.
+	 * 
+	 * @param theResource
+	 *            is the proxy that allows us to call out to the object.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_1
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_1] -
+	 *          ParticipantRecord {0} - null participant provided!
+	 */
+
+	public ParticipantRecord (Participant theResource, Uid id, int priority, Qualifier[] quals)
+	{
+		super(id, null, ObjectType.ANDPERSISTENT);
+
+		_resourceHandle = new ParticipantWrapper(theResource);
+		_timeout = 0;
+		_priority = priority;
+		_quals = quals;
+		_coordId = new CoordinatorIdImple(id);
+		_state = ActionStatus.RUNNING;
+
+		if (theResource == null)
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_1", new Object[]
+			{ order() });
+	}
+
+	public void finalize () throws Throwable
+	{
+		_resourceHandle = null;
+
+		super.finalize();
+	}
+
+	public final void setResponse (Message notification, Outcome response)
+			throws WrongStateException
+	{
+		boolean ok = false;
+
+		if ((notification instanceof TopLevelPrepare)
+				|| (notification instanceof NestedPrepare))
+		{
+			if (((_state == ActionStatus.PREPARING) && (response instanceof Vote))
+					|| (_state == ActionStatus.RUNNING))
+			{
+				ok = true;
+			}
+		}
+
+		if ((notification instanceof TopLevelConfirm)
+				|| (notification instanceof NestedConfirm))
+		{
+			if (_state == ActionStatus.COMMITTING)
+				ok = true;
+		}
+
+		if ((notification instanceof TopLevelCancel)
+				|| (notification instanceof NestedCancel))
+		{
+			if ((_state == ActionStatus.ABORTING)
+					|| (_state == ActionStatus.RUNNING))
+			{
+				ok = true;
+			}
+		}
+
+		if (ok)
+			_resourceHandle.setResponse(notification, response);
+		else
+			throw new WrongStateException();
+	}
+
+	/**
+	 * Override AbstractRecord.propagateOnCommit
+	 */
+
+	public boolean propagateOnCommit ()
+	{
+		return true;
+	}
+
+	/**
+	 * The type of this abstract record.
+	 */
+
+	public int typeIs ()
+	{
+		return _priority;
+	}
+
+	/**
+	 * The class name for this record.
+	 */
+
+	public ClassName className ()
+	{
+		return new ClassName(toString());
+	}
+
+	/**
+	 * The internal value.
+	 */
+
+	public Object value ()
+	{
+		return _resourceHandle;
+	}
+
+	/**
+	 * Set the internal value. Not allowed for this class.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_2
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_2] -
+	 *          ParticipantRecord.setValue() called illegally.
+	 */
+
+	public void setValue (Object o)
+	{
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_2");
+	}
+
+	/**
+	 * The record is being driven through nested rollback.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_3
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_3] -
+	 *          ParticipantRecord.nestedAbort {0} caught: {1}
+	 */
+
+	public int nestedAbort ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.ABORTING;
+
+				Outcome res = _resourceHandle.processMessage(new NestedCancel(
+						_coordId));
+
+				_state = ActionStatus.ABORTED;
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return convertResult(((CoordinationOutcome) res).result());
+					}
+					else
+						return TwoPhaseOutcome.FINISH_ERROR;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (SystemException ex1)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_3", new Object[]
+			{ order(), ex1 });
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_3", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested commit.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_4
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_4] -
+	 *          ParticipantRecord.nestedCommit {0} caught: {1}
+	 */
+
+	public int nestedCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.COMMITTING;
+
+				Outcome res = _resourceHandle.processMessage(new NestedConfirm(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return convertResult(((CoordinationOutcome) res).result());
+					}
+					else
+						return TwoPhaseOutcome.FINISH_ERROR;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (SystemException ex1)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_4", new Object[]
+			{ order(), ex1 });
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_4", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested prepare.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_5
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_5] -
+	 *          ParticipantRecord.nestedPrepare {0} caught: {1}
+	 */
+
+	public int nestedPrepare ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.PREPARING;
+
+				Outcome res = _resourceHandle.processMessage(new NestedPrepare(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof VoteConfirm)
+					{
+						return TwoPhaseOutcome.PREPARE_OK;
+					}
+					else
+					{
+						if (res instanceof VoteReadOnly)
+						{
+							return TwoPhaseOutcome.PREPARE_READONLY;
+						}
+						else
+						{
+							return TwoPhaseOutcome.PREPARE_NOTOK;
+						}
+					}
+				}
+				else
+					return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (SystemException e1)
+		{
+			/*
+			 * Assume that this exception is thrown to indicate a communication
+			 * failure or some other system-like exception. In which case, crash
+			 * recovery should try to recover for us.
+			 */
+
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_5", new Object[]
+			{ order(), e1 });
+
+			return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (Exception e6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_5", new Object[]
+			{ order(), e6 });
+
+			e6.printStackTrace();
+
+			return TwoPhaseOutcome.HEURISTIC_HAZARD;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level rollback.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_6
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_6] -
+	 *          ParticipantRecord.topLevelAbort {0} caught: {1}
+	 */
+
+	public int topLevelAbort ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.ABORTING;
+
+				Outcome res = _resourceHandle.processMessage(new TopLevelCancel(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return convertResult(((CoordinationOutcome) res).result());
+					}
+					else
+						return TwoPhaseOutcome.FINISH_ERROR;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (SystemException ex1)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_6", new Object[]
+			{ order(), ex1 });
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_6", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level commit.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_7
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_7] -
+	 *          ParticipantRecord.topLevelCommit {0} caught: {1}
+	 */
+
+	public int topLevelCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.COMMITTING;
+
+				Outcome res = _resourceHandle.processMessage(new TopLevelConfirm(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return convertResult(((CoordinationOutcome) res).result());
+					}
+					else
+						return TwoPhaseOutcome.FINISH_ERROR;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (SystemException ex1)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_7", new Object[]
+			{ order(), ex1 });
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_7", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level prepare.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_8
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_8] -
+	 *          ParticipantRecord.topLevelPrepare {0} caught: {1}
+	 */
+
+	public int topLevelPrepare ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.PREPARING;
+
+				Outcome res = _resourceHandle.processMessage(new TopLevelPrepare(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof VoteConfirm)
+					{
+						return TwoPhaseOutcome.PREPARE_OK;
+					}
+					else
+					{
+						if (res instanceof VoteReadOnly)
+						{
+							return TwoPhaseOutcome.PREPARE_READONLY;
+						}
+						else
+						{
+							return TwoPhaseOutcome.PREPARE_NOTOK;
+						}
+					}
+				}
+				else
+					return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (SystemException e1)
+		{
+			/*
+			 * Assume that this exception is thrown to indicate a communication
+			 * failure or some other system-like exception. In which case, crash
+			 * recovery should try to recover for us.
+			 */
+
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_8", new Object[]
+			{ order(), e1 });
+
+			return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (Exception e6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_8", new Object[]
+			{ order(), e6 });
+
+			e6.printStackTrace();
+
+			return TwoPhaseOutcome.HEURISTIC_HAZARD;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested commit and is the only
+	 * resource.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_9
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_9] -
+	 *          ParticipantRecord.nestedOnePhaseCommit {0} caught: {1}
+	 */
+
+	public int nestedOnePhaseCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.COMMITTING;
+
+				Outcome res = _resourceHandle.processMessage(new NestedOnePhaseCommit(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return convertResult(((CoordinationOutcome) res).result());
+					}
+					else
+						return TwoPhaseOutcome.FINISH_ERROR;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (SystemException ex1)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_9", new Object[]
+			{ order(), ex1 });
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_9", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level commit and is the only
+	 * resource.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_10
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_10] -
+	 *          ParticipantRecord.topLevelOnePhaseCommit {0} caught: {1}
+	 */
+
+	public int topLevelOnePhaseCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				_state = ActionStatus.COMMITTING;
+
+				Outcome res = _resourceHandle.processMessage(new TopLevelOnePhaseCommit(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return convertResult(((CoordinationOutcome) res).result());
+					}
+					else
+						return TwoPhaseOutcome.FINISH_ERROR;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (SystemException ex1)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_10", new Object[]
+			{ order(), ex1 });
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_10", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record generated a heuristic and can now forget about it.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_11
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_11] -
+	 *          ParticipantRecord.forgetHeuristic for {0} called without a
+	 *          resource!
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_12
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_12] -
+	 *          ParticipantRecord.forgetHeuristic {0} caught exception: {1}
+	 */
+
+	public boolean forgetHeuristic ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				// _state = ActionStatus.COMMITTING;
+
+				Outcome res = _resourceHandle.processMessage(new ForgetHeuristic(
+						_coordId));
+
+				if (res != null)
+				{
+					if (res instanceof CoordinationOutcome)
+					{
+						return true;
+					}
+					else
+						return false;
+				}
+				else
+					return true;
+			}
+			else
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_11", new Object[]
+				{ order() });
+			}
+		}
+		catch (Exception e)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_12", new Object[]
+			{ order(), e });
+
+			e.printStackTrace();
+		}
+
+		return false;
+	}
+
+	public static AbstractRecord create ()
+	{
+		return new ParticipantRecord();
+	}
+
+	public void remove (AbstractRecord toDelete)
+	{
+		toDelete = null;
+	}
+
+	public void print (PrintWriter strm)
+	{
+		super.print(strm);
+
+		strm.print("ParticipantRecord");
+		strm.print(_resourceHandle);
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_13
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_13] -
+	 *          ParticipantRecord.restore_state:
+	 */
+
+	public boolean restore_state (InputObjectState os, int t)
+	{
+		boolean result = super.restore_state(os, t);
+
+		if (result)
+		{
+			try
+			{
+				result = _resourceHandle.unpackState(os);
+
+				_priority = os.unpackInt();
+				_timeout = os.unpackLong();
+
+				/*
+				 * TODO: unpack qualifiers and coord id.
+				 */
+			}
+			catch (Exception ex)
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_13", new Object[]
+				{ ex });
+
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_14
+	 *          [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_14] -
+	 *          ParticipantRecord.save_state:
+	 */
+
+	public boolean save_state (OutputObjectState os, int t)
+	{
+		boolean result = super.save_state(os, t);
+
+		if (result)
+		{
+			try
+			{
+				result = _resourceHandle.packState(os);
+
+				os.packInt(_priority);
+				os.packLong(_timeout);
+
+				/*
+				 * TODO: pack qualifiers and coord id.
+				 */
+			}
+			catch (Exception ex)
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ParticipantRecord_14", new Object[]
+				{ ex });
+
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	public String type ()
+	{
+		return "/StateManager/AbstractRecord/WSCF/ArjunaCore/ParticipantRecord";
+	}
+
+	public boolean doSave ()
+	{
+		return true;
+	}
+
+	public void merge (AbstractRecord a)
+	{
+	}
+
+	public void alter (AbstractRecord a)
+	{
+	}
+
+	public boolean shouldAdd (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldAlter (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldMerge (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldReplace (AbstractRecord rec)
+	{
+		return false;
+	}
+
+	/*
+	 * Protected constructor used by crash recovery.
+	 */
+
+	protected ParticipantRecord ()
+	{
+		super();
+
+		_resourceHandle = null;
+		_timeout = 0;
+		_priority = 0;
+		_quals = null;
+		_coordId = null;
+		_state = ActionStatus.RUNNING;
+	}
+
+	private final int convertResult (int result)
+	{
+		switch (result)
+		{
+		case TwoPhaseResult.PREPARE_OK:
+			return TwoPhaseOutcome.PREPARE_OK;
+		case TwoPhaseResult.PREPARE_NOTOK:
+			return TwoPhaseOutcome.PREPARE_NOTOK;
+		case TwoPhaseResult.PREPARE_READONLY:
+			return TwoPhaseOutcome.PREPARE_READONLY;
+		case TwoPhaseResult.HEURISTIC_CANCEL:
+			return TwoPhaseOutcome.HEURISTIC_ROLLBACK;
+		case TwoPhaseResult.HEURISTIC_CONFIRM:
+			return TwoPhaseOutcome.HEURISTIC_COMMIT;
+		case TwoPhaseResult.HEURISTIC_MIXED:
+			return TwoPhaseOutcome.HEURISTIC_MIXED;
+		case TwoPhaseResult.HEURISTIC_HAZARD:
+			return TwoPhaseOutcome.HEURISTIC_HAZARD;
+		case TwoPhaseResult.FINISH_OK:
+		case TwoPhaseResult.CANCELLED:
+		case TwoPhaseResult.CONFIRMED:
+			return TwoPhaseOutcome.FINISH_OK;
+		case TwoPhaseResult.NOT_PREPARED:
+			return TwoPhaseOutcome.NOT_PREPARED;
+		case TwoPhaseResult.FINISH_ERROR:
+		default:
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	private ParticipantWrapper _resourceHandle;
+	private long _timeout;
+	private int _priority;
+	private Qualifier[] _quals;
+	private CoordinatorIdImple _coordId;
+	private int _state;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantWrapper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantWrapper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/ParticipantWrapper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ParticipantWrapper.java,v 1.4 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore;
+
+import com.arjuna.ats.arjuna.state.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+import java.util.Hashtable;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantWrapper.java,v 1.4 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+public class ParticipantWrapper implements Participant
+{
+    
+    /**
+     * Constructor.
+     *
+     * @param theResource is the proxy that allows us to call out to the
+     * object.
+     */
+
+    public ParticipantWrapper (Participant theResource)
+    {
+	_resourceHandle = theResource;
+	_responses = new Hashtable();
+    }
+
+    /**
+     * Process the message from the coordinator and return a response, which
+     * may be null - validity is down to the specific coordinator.
+     *
+     * @param Message notification The message to be processed.
+     *
+     * @exception WrongStateException Thrown if the participant is not in a
+     * state which is valid given the input message.
+     * @exception ProtocolViolationException Thrown if the participant has
+     * violated the coordination protocol.
+     * @exception SystemException Thrown if any other error occurs.
+     * 
+     * @return the Outcome message representing the result of dealing with
+     * the notification. Null may be a valid response.
+     */
+
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	Outcome out = (Outcome) _responses.get(notification);
+	
+	if (out == null)
+	    out = _resourceHandle.processMessage(notification);
+	
+	return out;
+    }
+    
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the unique identity for this participant.
+     */
+
+    public String identity () throws SystemException
+    {
+	return _resourceHandle.identity();
+    }
+
+    /*
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    /**
+     * Pack the state of the participant into the object buffer.
+     *
+     * @return <code>true</code> if successful, <code>false</code> otherwise.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return _resourceHandle.packState(os);
+    }
+
+    /**
+     * Unpack the state of the participant from the object buffer.
+     *
+     * @return <code>true</code> if successful, <code>false</code> otherwise.
+     */
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return _resourceHandle.unpackState(os);
+    }
+
+    public final void setResponse (Message notification, Outcome response)
+    {
+	_responses.put(notification, response);
+    }
+
+    private Participant _resourceHandle;
+    private Hashtable   _responses;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/SynchronizationRecord.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/SynchronizationRecord.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/SynchronizationRecord.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,201 @@
+/*
+ * 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: SynchronizationRecord.java,v 1.5 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.messages.*;
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+/**
+ * An implementation of the ArjunaCore synchronization interface.
+ * Synchronizations take part in the pre- and post- two-phase protocol and
+ * are not persistent.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SynchronizationRecord.java,v 1.5 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+public class SynchronizationRecord implements com.arjuna.ats.arjuna.coordinator.SynchronizationRecord
+{
+
+    /**
+     * Constructor.
+     *
+     * @param theResource is the proxy that allows us to call out to the
+     * object.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_1 [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_1] - SynchronizationRecord {0} - null participant provided!
+     */
+
+    public SynchronizationRecord (Participant theResource, Uid id, int priority, Qualifier[] quals)
+    {
+	_resourceHandle = theResource;
+	_priority = priority;
+	_quals = quals;
+	_id = new CoordinatorIdImple(id);
+
+	if (_resourceHandle == null)
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_1",
+					  new Object[]{_id});
+    }
+
+    public void finalize () throws Throwable
+    {
+        _resourceHandle = null;
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_2 [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_2] - SynchronizationRecord.beforeCompletion for {0} called without a resource!
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_3 [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_3] - SynchronizationRecord.beforeCompletion {0} caught exception: {1}
+     */
+
+    public boolean beforeCompletion ()
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new BeforeCompletion(_id));
+
+		if (res != null)
+		{
+		    if (res instanceof CoordinationOutcome)
+		    {
+			return true;
+		    }
+		    else
+			return false;
+		}
+		else
+		    return true;
+            }
+            else
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_2",
+					      new Object[]{_id});
+        }
+        catch (Exception e)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_3",
+					  new Object[]{_id, e});
+
+	    e.printStackTrace();
+        }
+
+        return false;
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_4 [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_4] - SynchronizationRecord.afterCompletion for {0} called without a resource!
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_5 [com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_5] - SynchronizationRecord.afterCompletion {0} caught exception: {1}
+     */
+
+    public boolean afterCompletion (int status)
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new AfterCompletion(_id, convertStatus(status)));
+
+		if (res != null)
+		{
+		    if (res instanceof CoordinationOutcome)
+		    {
+			return true;
+		    }
+		    else
+			return false;
+		}
+		else
+		    return true;
+            }
+            else
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_4",
+					      new Object[]{_id});
+        }
+        catch (Exception e)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.SynchronizationRecord_5",
+					  new Object[]{_id, e});
+
+	    e.printStackTrace();
+        }
+
+        return false;
+    }
+
+    public Uid get_uid ()
+    {
+	return _id;
+    }
+
+    public int compareTo(Object o) {
+        SynchronizationRecord sr = (SynchronizationRecord)o;
+        if(_id.equals(sr.get_uid())) {
+            return 0;
+        } else {
+            return _id.lessThan(sr.get_uid()) ? -1 : 1;
+        }
+    }
+
+    private final CompletionStatus convertStatus (int result)
+    {
+	switch (result)
+	{
+	case ActionStatus.COMMITTED:
+	case ActionStatus.COMMITTING:
+	    return Success.instance();
+	case ActionStatus.ABORTED:
+	case ActionStatus.ABORTING:
+	default:
+	    return Failure.instance();
+	}
+    }
+
+    private Participant        _resourceHandle;
+    private int                _priority;
+    private Qualifier[]        _quals;
+    private CoordinatorIdImple _id;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/context/soap/ArjunaContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/context/soap/ArjunaContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/arjunacore/context/soap/ArjunaContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,110 @@
+/*
+ * 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.7.4.1 2005/11/22 10:34:18 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.context.soap;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.ACCoordinator;
+
+import com.arjuna.ats.arjuna.coordinator.ActionHierarchy;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+/**
+ * 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.7.4.1 2005/11/22 10:34:18 kconner Exp $
+ */
+
+public class ArjunaContextImple implements SOAPContext
+{
+
+    /**
+     * Incomplete. Need things like the Coordinator URI!
+     */
+
+    public ArjunaContextImple (ACCoordinator currentCoordinator)
+    {
+	DocumentBuilder builder = com.arjuna.mw.wscf.utils.DomUtil.getDocumentBuilder();
+	org.w3c.dom.Document doc = builder.newDocument();
+	
+	_context = doc.createElement(_contextName);
+	_context.appendChild(doc.createComment("WARNING: example Arjuna coordinator hierarchy only!"));
+	
+	if (currentCoordinator != null)
+	{
+	    ActionHierarchy hier = currentCoordinator.getHierarchy();
+	
+	    for (int i = 0; i < hier.depth(); i++)
+	    {
+		org.w3c.dom.Element elem = doc.createElement(_coordName);
+		
+		elem.appendChild(doc.createTextNode("http://arjuna.com?"+hier.getActionUid(i).stringForm()));
+		
+		_context.appendChild(elem);
+	    }
+	}
+    }
+    
+    public void initialiseContext(Object param)
+    {
+    }
+    
+    public Element serialiseToElement(final Element element)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+
+    public String identifier ()
+    {
+	return com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.context.soap.ArjunaContextImple.class.getName();
+    }
+    
+    public String toString ()
+    {
+	return DomUtil.nodeAsString(_context);
+    }
+
+    private org.w3c.dom.Element _context;
+    
+    private static final String _contextName = "arjunacore-context";
+    private static final String _coordName = "coordinator-name";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/CoordinatorIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/CoordinatorIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/CoordinatorIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinatorIdImple.java,v 1.1 2003/01/07 10:33:52 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.jta;
+
+import javax.transaction.xa.Xid;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+/**
+ * This implementation of CoordinatorId wraps the Xid.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorIdImple.java,v 1.1 2003/01/07 10:33:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorIdImple implements CoordinatorId
+{
+
+    public CoordinatorIdImple (String name)
+    {
+	try
+	{
+	    _value = name.getBytes();
+	    _valid = true;
+	}
+	catch (Exception ex)
+	{
+	    _valid = false;
+	}
+    }
+    
+    public CoordinatorIdImple (Xid xid)
+    {
+	byte[] tid = xid.getGlobalTransactionId();
+	byte[] bqual = xid.getBranchQualifier();
+	
+	_value = new byte[tid.length+bqual.length];
+
+	int index = 0;
+	
+	for (int i = 0; i < tid.length; i++)
+	{
+	    _value[index+i] = tid[i];
+	}
+
+	index = tid.length;
+	
+	for (int j = 0; j < bqual.length; j++)
+	{
+	    _value[index+j] = bqual[j];
+	}
+
+	_valid = true;
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+
+    public boolean valid ()
+    {
+	return _valid;
+    }
+    
+    private byte[]  _value;
+    private boolean _valid;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/JTAHLS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/JTAHLS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/JTAHLS.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,488 @@
+/*
+ * 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: JTAHLS.java,v 1.7 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.jta;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.jta.context.soap.JTAContextImple;
+
+import com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes.*;
+import com.arjuna.mw.wscf.model.as.coordinator.xa.status.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+import com.arjuna.mw.wscf.model.as.coordinator.CoordinatorManagerService;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+import com.arjuna.mw.wscf.model.as.coordinator.Coordinator;
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+import com.arjuna.mw.wsas.completionstatus.Failure;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityHandleImple;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import javax.transaction.*;
+import javax.transaction.xa.*;
+
+import java.util.Hashtable;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: JTAHLS.java,v 1.7 2005/05/19 12:13:33 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class JTAHLS implements HLS, CoordinatorManagerService, UserCoordinatorService
+{
+
+    public JTAHLS ()
+    {
+	synchronized (_coordinators)
+	{
+	    if (_theTransactionManagerImple == null)
+	    {
+		try
+		{
+		    _theTransactionManagerImple = (javax.transaction.TransactionManager) Class.forName(_defaultClassName).newInstance();
+		}
+		catch (Exception e)
+		{
+		    e.printStackTrace();
+		}
+	    }
+	}
+    }
+    
+    /**
+     * An activity has begun and is active on the current thread.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.JTAHLS_1 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.JTAHLS_1] - JTAHLS.begun: 
+     */
+
+    public void begun () throws SystemException
+    {
+	try
+	{
+	    _theTransactionManagerImple.begin();
+
+	    javax.transaction.Transaction tx = _theTransactionManagerImple.getTransaction();
+	    int status = _theTransactionManagerImple.getStatus();
+	
+	    if (status != javax.transaction.Status.STATUS_ACTIVE)
+		throw new BegunFailedException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.JTAHLS_1")+status);
+	    else
+	    {
+		_coordinators.put(currentActivity(), tx);
+	    }
+	}
+	catch (SystemException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new UnexpectedException(ex.toString());
+	}
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	Transaction current = currentCoordinator();
+	XAException xae = null;
+	
+	if ((cs != null) && (cs instanceof Success))
+	{
+	    // commit
+
+	    try
+	    {
+		current.commit();
+	    }
+	    catch (javax.transaction.RollbackException ex)
+	    {
+		cs = Failure.instance();
+	    }
+	    catch (javax.transaction.SystemException ex)
+	    {
+		cs = Failure.instance();
+	    }
+	    catch (javax.transaction.HeuristicRollbackException ex)
+	    {
+		cs = Failure.instance();
+
+		xae = new XAException(XAException.XA_HEURRB);
+	    }
+	    catch (javax.transaction.HeuristicMixedException ex)
+	    {
+		cs = Failure.instance();
+
+		xae = new XAException(XAException.XA_HEURMIX);
+	    }
+	}
+	else
+	{
+	    // abort
+
+	    try
+	    {
+		current.rollback();
+	    }
+	    catch (javax.transaction.SystemException ex)
+	    {
+		cs = Failure.instance();
+	    }
+	}
+
+	_coordinators.remove(currentActivity());
+
+	try
+	{
+	    if (_theTransactionManagerImple.getTransaction().equals(current))
+	    {
+		_theTransactionManagerImple.suspend();
+	    }
+	}
+	catch (javax.transaction.SystemException ex)
+	{
+	    ex.printStackTrace();
+	}
+
+	return new XAOutcome(cs);
+    }	
+
+    /**
+     * The activity has been suspended.
+     */
+
+    public void suspended () throws SystemException
+    {
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resumed () throws SystemException
+    {
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+    }
+
+    /**
+     * The HLS name.
+     */
+
+    public String identity () throws SystemException
+    {
+	return "JTAHLS";
+    }
+
+    /**
+     * The activity service maintains a priority ordered list of HLS
+     * implementations. If an HLS wishes to be ordered based on priority
+     * then it can return a non-negative value: the higher the value,
+     * the higher the priority and hence the earlier in the list of HLSes
+     * it will appear (and be used in).
+     *
+     * @return a positive value for the priority for this HLS, or zero/negative
+     * if the order is not important.
+     */
+
+    public int priority () throws SystemException
+    {
+	return 0;
+    }
+
+    /**
+     * Return the context augmentation for this HLS, if any on the current
+     * activity.
+     *
+     * @param ActivityHierarchy current The handle on the current activity
+     * hierarchy. The HLS may use this when determining what information to
+     * place in its context data.
+     *
+     * @return a context object or null if no augmentation is necessary.
+     */
+
+    public Context context () throws SystemException
+    {
+	return new JTAContextImple(currentCoordinator());
+    }
+
+    /**
+     * If the application requires and if the coordination protocol supports
+     * it, then this method can be used to execute a coordination protocol on
+     * the currently enlisted participants at any time prior to the termination
+     * of the coordination scope.
+     *
+     * This implementation only supports coordination at the end of the
+     * activity.
+     *
+     * @param CompletionStatus cs The completion status to use when determining
+     * how to execute the protocol.
+     *
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * the does not allow coordination to occur.
+     * @exception ProtocolViolationException Thrown if the protocol is violated
+     * in some manner during execution.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return The result of executing the protocol, or null.
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, NoCoordinatorException, SystemException
+    {
+	return null;
+    }
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread. If the coordinator supports a priority ordering
+     * of participants, then that ordering can also be specified. Any
+     * qualifiers that are to be associated with the participant are also
+     * provided.
+     *
+     * @param Participant act The participant.
+     * @param int priority The priority to associate with the participant in
+     * the coordinator's list.
+     * @param Qualifier[] quals Any qualifiers to be associated with the
+     * participant.
+     *
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addParticipant (Participant act, int priority, Qualifier[] quals) throws WrongStateException, DuplicateParticipantException, NoCoordinatorException, InvalidParticipantException, SystemException
+    {
+	try
+	{
+	    currentCoordinator().enlistResource(new XAResourceImple(act, quals));
+	}
+	catch (javax.transaction.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (javax.transaction.RollbackException ex)
+	{
+	    throw new WrongStateException(ex.toString());
+	}
+    }
+
+    /**
+     * Remove the specified participant from the coordinator's list.
+     * This operation may not be supported by all coordination protocols.
+     *
+     * @exception InvalidParticipantException Thrown if the participant is not known
+     * of by the coordinator.
+     * @exception WrongStateException Thrown if the state of the coordinator
+     * does not allow the participant to be removed (e.g., in a two-phase
+     * protocol the coordinator is committing.)
+     * @exception SystemException Thrown if any other error occurs.
+     */
+    
+    public void removeParticipant (Participant act) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException
+    {
+    }
+
+    /**
+     * Some coordination protocol messages may have asynchronous responses
+     * or it may be possible for participants to autonomously generate
+     * responses to messages that have not yet been producted by the
+     * coordinator. As such, this method allows a response from a participant
+     * to be passed to the coordinator. In order to ensure that the protocol
+     * remains valid, it is necessary for the participant to specify what
+     * message produced the response: if the response was autonomously
+     * generated by the participant on the assumption it would receive this
+     * message from the coordinator and the coordinator subsequently decides
+     * not to produce such a message, then the action taken by the participant
+     * is invalid and hence so is the response.
+     *
+     * @param String id the unique participant identification.
+     * @param Message notification the message the participant got/assumed
+     * when producing the response.
+     * @param Outcome response the actual response.
+     * @param Qualifier[] quals any qualifiers associated with the response.
+     *
+     * @exception InvalidParticipantException Thrown if the coordinator has no
+     * knowledge of the participant.
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * that does not allow it to accept responses at all or this specific
+     * type of response.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setResponse (String id, Message notification, Outcome response, Qualifier[] quals) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException
+    {
+	// TODO
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return a reference to the current coordinators' parent if it is nested,
+     * null otherwise.
+     */
+    
+    public Coordinator getParentCoordinator () throws NoCoordinatorException, SystemException
+    {
+	return null;  // XA does not support nesting!
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current coordinator. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	// TODO return separate class for each type
+
+	try
+	{
+	    return new XAStatus(currentCoordinator().getStatus());
+	}
+	catch (javax.transaction.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    /**
+     * Not supported by basic JTA.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the complete list of qualifiers that have been registered with
+     * the current coordinator.
+     */
+    
+    public Qualifier[] qualifiers () throws NoCoordinatorException, SystemException
+    {
+	return null;
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identity of the current coordinator.
+     */
+
+    public CoordinatorId identifier () throws NoCoordinatorException, SystemException
+    {
+	return new CoordinatorIdImple(currentCoordinator().toString());
+    }
+
+    public static String className ()
+    {
+	return JTAHLS.class.getName();
+    }
+
+    private final ActivityHandleImple currentActivity () throws SystemException
+    {
+	try
+	{
+	    ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+	
+	    if (hier.size() > 0)
+		return (ActivityHandleImple) hier.activity(hier.size() -1);
+	    else
+		return null;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private final javax.transaction.Transaction currentCoordinator () throws NoCoordinatorException, SystemException
+    {
+	javax.transaction.Transaction tx = (javax.transaction.Transaction) _coordinators.get(currentActivity());
+
+	if (tx == null)
+	    throw new NoCoordinatorException();
+	else
+	    return tx;
+    }
+    
+    private static Hashtable _coordinators = new Hashtable();
+    private static javax.transaction.TransactionManager _theTransactionManagerImple = null;
+    
+    private static final String _defaultClassName = com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple.class.getName();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/XAResourceImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/XAResourceImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/XAResourceImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,439 @@
+/*
+ * 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: XAResourceImple.java,v 1.3 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.jta;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import javax.transaction.xa.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.xa.messages.*;
+import com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.io.Serializable;
+
+/**
+ * JTA resource that wraps the activity service coordinator Participant.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: XAResourceImple.java,v 1.3 2005/05/19 12:13:33 nmcl Exp $
+ */
+
+public class XAResourceImple implements XAResource, Serializable
+{
+    
+    /**
+     * Constructor.
+     *
+     * @param theResource is the proxy that allows us to call out to the
+     * object.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_1 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_1] - XAResourceImple {0} - null participant provided!
+     */
+
+    public XAResourceImple (Participant theResource, Qualifier[] quals)
+    {
+	_resourceHandle = theResource;
+	_quals = quals;
+	
+	if (_resourceHandle == null)
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_1",
+					  new Object[]{_resourceHandle});
+    }
+
+
+    public int getTransactionTimeout() throws XAException
+    {
+	// TODO
+
+	//        return _timeout;
+
+	return 0;
+    }
+
+    public boolean isSameRM (XAResource xares) throws XAException
+    {
+        return (xares.equals(this));
+    }
+
+    public boolean setTransactionTimeout(int seconds) throws XAException
+    {
+        return true;
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_2 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_2] - XAResourceImple.start {0} caught: {1}
+     */
+
+    public void start (Xid xid, int flags) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XAStart(xid, flags));
+		
+		if (res != null)
+		{
+		    if (res instanceof XAOutcome)
+		    {
+			generateException((XAOutcome) res);
+		    }
+		    else
+			throw new XAException(XAException.XAER_INVAL);
+		}
+            }
+            else
+		throw new XAException(XAException.XAER_INVAL);
+        }
+        catch (SystemException ex1)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_2",
+					  new Object[]{xid, ex1});
+
+	    throw new XAException(XAException.XAER_INVAL);            
+        }
+        catch (Exception ex6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_2",
+					  new Object[]{xid, ex6});
+
+	    ex6.printStackTrace();
+
+	    throw new XAException(XAException.XAER_INVAL);
+        }
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_3 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_3] - XAResourceImple.end {0} caught: {1}
+     */
+
+    public void end (Xid xid, int flags) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XAEnd(xid, flags));
+		
+		if (res != null)
+		{
+		    if (res instanceof XAOutcome)
+		    {
+			generateException((XAOutcome) res);
+		    }
+		    else
+			throw new XAException(XAException.XAER_INVAL);
+		}
+            }
+            else
+		throw new XAException(XAException.XAER_INVAL);
+        }
+        catch (SystemException ex1)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_3",
+					  new Object[]{xid, ex1});
+
+	    throw new XAException(XAException.XAER_INVAL);            
+        }
+        catch (Exception ex6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_3",
+					  new Object[]{xid, ex6});
+
+	    ex6.printStackTrace();
+
+	    throw new XAException(XAException.XAER_INVAL);
+        }
+    }
+
+    /**
+     * The record is being driven through top-level rollback.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_4 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_4] - XAResourceImple.rollback {0} caught: {1}
+     */
+
+    public void rollback (Xid xid) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XARollback(xid));
+		
+		if (res != null)
+		{
+		    if (res instanceof XAOutcome)
+		    {
+			generateException((XAOutcome) res);
+		    }
+		    else
+			throw new XAException(XAException.XAER_RMERR);
+		}
+            }
+            else
+		throw new XAException(XAException.XAER_RMERR);
+        }
+        catch (SystemException ex1)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_4",
+					  new Object[]{xid, ex1});
+
+	    throw new XAException(XAException.XA_HEURHAZ);            
+        }
+        catch (Exception ex6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_4",
+					  new Object[]{xid, ex6});
+
+	    ex6.printStackTrace();
+
+	    throw new XAException(XAException.XA_HEURHAZ);
+        }
+    }
+
+    /**
+     * The record is being driven through top-level commit.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_5 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_5] - XAResourceImple.commit {0} caught: {1}
+     */
+
+    public void commit(Xid id, boolean onePhase) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XACommit(id, onePhase));
+		
+		if (res != null)
+		{
+		    if (res instanceof XAOutcome)
+		    {
+			generateException((XAOutcome) res);
+		    }
+		    else
+			throw new XAException(XAException.XA_HEURHAZ);
+		}
+            }
+            else
+		throw new XAException(XAException.XA_HEURHAZ);
+        }
+        catch (SystemException ex1)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_5",
+					  new Object[]{id, ex1});
+
+	    throw new XAException(XAException.XA_HEURHAZ);
+        }
+        catch (Exception ex6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_5",
+					  new Object[]{id, ex6});
+
+	    throw new XAException(XAException.XA_HEURHAZ);
+        }
+    }
+
+    /**
+     * The record is being driven through top-level prepare.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_6 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_6] - XAResourceImple.prepare {0} caught: {1}
+     */
+
+    public int prepare (Xid xid) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XAPrepare(xid));
+		
+		if (res != null)
+		{
+		    if (res instanceof XAPrepareOutcome)
+			return ((XAPrepareOutcome) res).vote();
+		    else
+		    {
+			if (res instanceof XAOutcome)
+			    generateException((XAOutcome) res);
+			else
+			    throw new XAException(XAException.XA_HEURHAZ);
+		    }
+		}
+		else
+		    throw new XAException(XAException.XA_HEURHAZ);
+            }
+            else
+		throw new XAException(XAException.XAER_PROTO);
+        }
+        catch (SystemException e1)
+        {
+            /*
+            * Assume that this exception is thrown to indicate a
+            * communication failure or some other system-like
+            * exception. In which case, crash recovery should try to
+            * recover for us.
+            */
+
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_6",
+					  new Object[]{xid, e1});
+
+	    throw new XAException(XAException.XA_HEURHAZ);
+        }
+        catch (Exception e6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_6",
+					  new Object[]{xid, e6});
+
+	    e6.printStackTrace();
+        }
+
+	throw new XAException(XAException.XA_HEURHAZ);	    
+    }
+
+    /**
+     * The record generated a heuristic and can now forget about it.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_7 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_7] - XAResourceImple.forget {0} caught: {1}
+     */
+
+    public void forget (Xid xid) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XAForget(xid));
+		
+		if (res != null)
+		{
+		    if (res instanceof XAOutcome)
+		    {
+			generateException((XAOutcome) res);
+		    }
+		    else
+			throw new XAException(XAException.XAER_RMERR);
+		}
+            }
+            else
+		throw new XAException(XAException.XAER_RMFAIL);
+        }
+        catch (SystemException ex1)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_7",
+					  new Object[]{xid, ex1});
+
+	    throw new XAException(XAException.XAER_RMERR);
+        }
+        catch (Exception ex6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_7",
+					  new Object[]{xid, ex6});
+
+	    throw new XAException(XAException.XAER_RMERR);
+        }
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_8 [com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_8] - XAResourceImple.recover {0}
+     */
+
+    public Xid[] recover (int flag) throws XAException
+    {
+        try
+        {
+            if (_resourceHandle != null)
+            {
+		Outcome res = _resourceHandle.processMessage(new XARecover(flag));
+		
+		if (res != null)
+		{
+		    if (res instanceof XARecoverOutcome)
+			return ((XARecoverOutcome) res).xids();
+		    
+		    if (res instanceof XAOutcome)
+		    {
+			generateException((XAOutcome) res);
+		    }
+		    else
+			throw new XAException(XAException.XAER_RMERR);
+		}
+		else
+		    return null;
+            }
+            else
+		throw new XAException(XAException.XAER_RMFAIL);
+        }
+        catch (SystemException ex1)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_8",
+					  new Object[]{ex1});
+
+	    throw new XAException(XAException.XAER_RMERR);
+        }
+        catch (Exception ex6)
+        {
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.as.coordinator.jta.XAResourceImple_8",
+					  new Object[]{ex6});
+        }
+
+	throw new XAException(XAException.XAER_RMERR);
+    }
+
+    private final void generateException (XAOutcome res) throws XAException
+    {
+	try
+	{
+	    Object data = res.data();
+	
+	    if (data instanceof XAException)
+		throw (XAException) data;
+	}
+	catch (SystemException ex)
+	{
+	    throw new XAException(XAException.XAER_RMERR);
+	}
+    }
+    
+    private Participant _resourceHandle;
+    private Qualifier[] _quals;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/context/soap/JTAContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/context/soap/JTAContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/as/coordinator/jta/context/soap/JTAContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,105 @@
+/*
+ * 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: JTAContextImple.java,v 1.8.4.1 2005/11/22 10:34:11 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.as.coordinator.jta.context.soap;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import javax.transaction.Transaction;
+
+import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+/**
+ * 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: JTAContextImple.java,v 1.8.4.1 2005/11/22 10:34:11 kconner Exp $
+ */
+
+public class JTAContextImple implements SOAPContext
+{
+
+    /**
+     * Incomplete. Need things like the Coordinator URI!
+     */
+
+    public JTAContextImple (Transaction currentCoordinator)
+    {
+	DocumentBuilder builder = DomUtil.getDocumentBuilder();
+	org.w3c.dom.Document doc = builder.newDocument();
+
+	_context = doc.createElement(_contextName);
+	_context.appendChild(doc.createComment("WARNING: example JTA coordinator hierarchy only!"));
+
+	if (currentCoordinator != null)
+	{
+	    org.w3c.dom.Element elem = doc.createElement(_coordName);
+		
+	    elem.appendChild(doc.createTextNode("http://arjuna.com?jta:"+((TransactionImple) currentCoordinator).get_uid().stringForm()));
+	    
+	    _context.appendChild(elem);
+	}
+    }
+
+    public void initialiseContext(Object param)
+    {
+    }
+    
+    public Element serialiseToElement(final Element element)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+
+    public String identifier ()
+    {
+	return JTAContextImple.class.getName();
+    }
+
+    public String toString ()
+    {
+	return DomUtil.nodeAsString(_context);
+    }
+
+    private org.w3c.dom.Element _context;
+    
+    private static final String _contextName = "jta-context";
+    private static final String _coordName = "jta-name";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/BaseTransactionImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/BaseTransactionImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/BaseTransactionImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: BaseTransactionImple.java,v 1.5 2005/05/19 12:13:34 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wsas.*;
+import com.arjuna.mw.wsas.activity.*;
+import com.arjuna.mw.wsas.completionstatus.*;
+import com.arjuna.mw.wsas.exceptions.*;
+
+import com.arjuna.mw.wscf.model.xa.outcomes.XAOutcome;
+import com.arjuna.mw.wscf.model.xa.status.XAStatus;
+
+import javax.transaction.xa.*;
+
+import javax.transaction.SystemException;
+import java.lang.IllegalStateException;
+
+/**
+ * @message com.arjuna.mwlabs.wscf.model.jta.arjunajta.BaseTransactionImple_1 [com.arjuna.mwlabs.wscf.model.jta.arjunajts.BaseTransactionImple_1] - ArjunaCoreHLS.begun: 
+ */
+
+public class BaseTransactionImple
+{
+    
+    public BaseTransactionImple ()
+    {
+    }
+
+    public void begin () throws javax.transaction.NotSupportedException, javax.transaction.SystemException
+    {
+	try
+	{
+	    ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+
+	    /*
+	     * Nested transactions are not supported by JTA/XA.
+	     */
+	    
+	    if (hier != null)
+		throw new javax.transaction.NotSupportedException();
+	    
+	    UserActivityFactory.userActivity().start();
+	}
+	catch (Exception ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    public void commit () throws javax.transaction.RollbackException, javax.transaction.HeuristicMixedException, javax.transaction.HeuristicRollbackException, java.lang.SecurityException, java.lang.IllegalStateException, javax.transaction.SystemException
+    {	
+	try
+	{
+	    Outcome res = UserActivityFactory.userActivity().end(Success.instance());
+	    
+	    if (res != null)
+	    {
+		if (res instanceof XAOutcome)
+		{
+		    XAOutcome co = (XAOutcome) res;
+		    XAException exp = (XAException) co.data();
+		    
+		    if (exp == null)
+		    {
+			if (co.completedStatus().equals(Failure.instance()))
+			    throw new javax.transaction.RollbackException();
+		    }
+		    else
+		    {
+			switch (exp.errorCode)
+			{
+			case XAException.XA_HEURRB:
+			    throw new javax.transaction.HeuristicRollbackException();
+			case XAException.XA_HEURMIX:
+			default:
+			    throw new javax.transaction.HeuristicMixedException();
+			}
+		    }
+		}
+		else
+		    throw new SystemException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.jta.arjunajta.BaseTransactionImple_1"));
+	    }
+	}
+	catch (NoPermissionException ex)
+	{
+	    throw new java.lang.SecurityException();
+	}
+	catch (ProtocolViolationException ex)
+	{
+	    throw new javax.transaction.HeuristicMixedException();
+	}
+	catch (WrongStateException ex)
+	{
+	    throw new IllegalStateException();
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new IllegalStateException();
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new java.lang.IllegalStateException();
+	}
+	catch (ActiveChildException ex)
+	{
+	    // ?? assume the coordination protocol will cancel children anyway.
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    public void rollback () throws java.lang.IllegalStateException, java.lang.SecurityException, javax.transaction.SystemException
+    {
+	try
+	{
+	    Outcome res = UserActivityFactory.userActivity().end(Failure.instance());
+	    
+	    if (res != null)
+	    {
+		if (res instanceof XAOutcome)
+		{
+		    XAOutcome co = (XAOutcome) res;
+		    XAException exp = (XAException) co.data();
+		    
+		    if (exp != null)
+			throw new SystemException(exp.toString());
+		}
+		else
+		    throw new SystemException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.jta.arjunajta.BaseTransactionImple_1"));
+	    }
+	}
+	catch (NoPermissionException ex)
+	{
+	    throw new java.lang.SecurityException();
+	}
+	catch (ProtocolViolationException ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+	catch (WrongStateException ex)
+	{
+	    throw new IllegalStateException();
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new IllegalStateException();
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new java.lang.IllegalStateException();
+	}
+	catch (ActiveChildException ex)
+	{
+	    // ?? assume the coordination protocol will cancel children anyway.
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    public void setRollbackOnly () throws java.lang.IllegalStateException, javax.transaction.SystemException
+    {
+	try
+	{
+	    UserActivityFactory.userActivity().setCompletionStatus(FailureOnly.instance());
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new IllegalStateException();
+	}
+	catch (WrongStateException ex)
+	{
+	    throw new IllegalStateException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    public int getStatus () throws javax.transaction.SystemException
+    {
+	try
+	{
+	    com.arjuna.mw.wsas.status.Status s = UserActivityFactory.userActivity().status();
+	    
+	    if (s instanceof XAStatus)
+	    {
+		XAStatus xas = (XAStatus) s;
+		
+		return xas.getStatus();
+	    }
+	    else
+		return javax.transaction.Status.STATUS_UNKNOWN;
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void setTransactionTimeout (int seconds) throws javax.transaction.SystemException
+    {
+	try
+	{
+	    UserActivityFactory.userActivity().setTimeout(seconds);
+	}
+	catch (Exception ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    public int getTimeout () throws javax.transaction.SystemException
+    {
+	try
+	{
+	    return UserActivityFactory.userActivity().getTimeout();
+	}
+	catch (Exception ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorControl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorControl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorControl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,350 @@
+/*
+ * 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: CoordinatorControl.java,v 1.5 2005/05/19 12:13:34 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta;
+
+import com.arjuna.mw.wscf.model.xa.outcomes.*;
+import com.arjuna.mw.wscf.model.xa.status.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+import com.arjuna.mw.wsas.completionstatus.Failure;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import javax.transaction.*;
+import javax.transaction.xa.*;
+
+import java.util.Hashtable;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorControl.java,v 1.5 2005/05/19 12:13:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorControl
+{
+
+    public CoordinatorControl ()
+    {
+	synchronized (_coordinators)
+	{
+	    if (_theTransactionManagerImple == null)
+	    {
+		try
+		{
+		    _theTransactionManagerImple = (javax.transaction.TransactionManager) Class.forName(_defaultClassName).newInstance();
+		}
+		catch (Exception e)
+		{
+		    e.printStackTrace();
+		}
+	    }
+	}
+    }
+    
+    /**
+     * An activity has begun and is active on the current thread.
+     */
+
+    public void begin () throws SystemException
+    {
+	try
+	{
+	    _theTransactionManagerImple.begin();
+
+	    javax.transaction.Transaction tx = _theTransactionManagerImple.getTransaction();
+	    int status = _theTransactionManagerImple.getStatus();
+	
+	    if (status != javax.transaction.Status.STATUS_ACTIVE)
+		throw new BegunFailedException("CoordinatorControl.begun: "+status);
+	    else
+	    {
+		_coordinators.put(currentActivity(), tx);
+	    }
+	}
+	catch (SystemException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new UnexpectedException(ex.toString());
+	}
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	Transaction current = currentCoordinator();
+	XAException xae = null;
+	
+	if ((cs != null) && (cs instanceof Success))
+	{
+	    // commit
+
+	    try
+	    {
+		current.commit();
+	    }
+	    catch (javax.transaction.RollbackException ex)
+	    {
+		cs = Failure.instance();
+	    }
+	    catch (javax.transaction.SystemException ex)
+	    {
+		cs = Failure.instance();
+	    }
+	    catch (javax.transaction.HeuristicRollbackException ex)
+	    {
+		cs = Failure.instance();
+
+		xae = new XAException(XAException.XA_HEURRB);
+	    }
+	    catch (javax.transaction.HeuristicMixedException ex)
+	    {
+		cs = Failure.instance();
+
+		xae = new XAException(XAException.XA_HEURMIX);
+	    }
+	}
+	else
+	{
+	    // abort
+
+	    try
+	    {
+		current.rollback();
+	    }
+	    catch (javax.transaction.SystemException ex)
+	    {
+		cs = Failure.instance();
+	    }
+	}
+
+	_coordinators.remove(currentActivity());
+
+	try
+	{
+	    if (_theTransactionManagerImple.getTransaction().equals(current))
+	    {
+		_theTransactionManagerImple.suspend();
+	    }
+	}
+	catch (javax.transaction.SystemException ex)
+	{
+	    ex.printStackTrace();
+	}
+
+	return new XAOutcome(cs);
+    }	
+
+    /**
+     * The activity has been suspended.
+     */
+
+    public void suspend () throws SystemException
+    {
+	try
+	{
+	    javax.transaction.Transaction tx = _theTransactionManagerImple.suspend();
+	
+	    _coordinators.put(currentActivity(), tx);
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resume () throws SystemException
+    {
+	try
+	{
+	    javax.transaction.Transaction tx = (javax.transaction.Transaction) _coordinators.get(currentActivity());
+	
+	    _theTransactionManagerImple.resume(tx);
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+    }
+
+    /**
+     * If the application requires and if the coordination protocol supports
+     * it, then this method can be used to execute a coordination protocol on
+     * the currently enlisted participants at any time prior to the termination
+     * of the coordination scope.
+     *
+     * This implementation only supports coordination at the end of the
+     * activity.
+     *
+     * @param CompletionStatus cs The completion status to use when determining
+     * how to execute the protocol.
+     *
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * the does not allow coordination to occur.
+     * @exception ProtocolViolationException Thrown if the protocol is violated
+     * in some manner during execution.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return The result of executing the protocol, or null.
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, NoCoordinatorException, SystemException
+    {
+	return null;
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current coordinator. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	// TODO return separate class for each type
+
+	try
+	{
+	    return new XAStatus(currentCoordinator().getStatus());
+	}
+	catch (javax.transaction.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    /**
+     * Not supported by basic JTA.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the complete list of qualifiers that have been registered with
+     * the current coordinator.
+     */
+    
+    public Qualifier[] qualifiers () throws NoCoordinatorException, SystemException
+    {
+	return null;
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identity of the current coordinator.
+     */
+
+    public CoordinatorId identifier () throws NoCoordinatorException, SystemException
+    {
+	return new CoordinatorIdImple(currentCoordinator().toString());
+    }
+
+    public javax.transaction.TransactionManager transactionManager ()
+    {
+	return _theTransactionManagerImple;
+    }
+
+    final javax.transaction.Transaction currentCoordinator () throws NoCoordinatorException, SystemException
+    {
+	javax.transaction.Transaction tx = (javax.transaction.Transaction) _coordinators.get(currentActivity());
+
+	if (tx == null)
+	    throw new NoCoordinatorException();
+	else
+	    return tx;
+    }
+    
+    final javax.transaction.Transaction transaction (ActivityHierarchy hier) throws SystemException
+    {
+	return (javax.transaction.Transaction) _coordinators.get(hier);
+    }
+
+    private final ActivityHierarchy currentActivity () throws SystemException
+    {
+	try
+	{
+	    return UserActivityFactory.userActivity().currentActivity();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static Hashtable _coordinators = new Hashtable();
+    private static javax.transaction.TransactionManager _theTransactionManagerImple = null;
+    
+    private static final String _defaultClassName = com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple.class.getName();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/CoordinatorIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CoordinatorIdImple.java,v 1.1 2003/01/07 10:33:53 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta;
+
+import javax.transaction.xa.Xid;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+/**
+ * This implementation of CoordinatorId wraps the Xid.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorIdImple.java,v 1.1 2003/01/07 10:33:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorIdImple implements CoordinatorId
+{
+
+    public CoordinatorIdImple (String name)
+    {
+	try
+	{
+	    _value = name.getBytes();
+	    _valid = true;
+	}
+	catch (Exception ex)
+	{
+	    _valid = false;
+	}
+    }
+    
+    public CoordinatorIdImple (Xid xid)
+    {
+	byte[] tid = xid.getGlobalTransactionId();
+	byte[] bqual = xid.getBranchQualifier();
+	
+	_value = new byte[tid.length+bqual.length];
+
+	int index = 0;
+	
+	for (int i = 0; i < tid.length; i++)
+	{
+	    _value[index+i] = tid[i];
+	}
+
+	index = tid.length;
+	
+	for (int j = 0; j < bqual.length; j++)
+	{
+	    _value[index+j] = bqual[j];
+	}
+
+	_valid = true;
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+
+    public boolean valid ()
+    {
+	return _valid;
+    }
+    
+    private byte[]  _value;
+    private boolean _valid;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/JTAHLSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/JTAHLSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/JTAHLSImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,288 @@
+/*
+ * 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: JTAHLSImple.java,v 1.4.4.1 2005/11/22 10:34:17 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta;
+
+import com.arjuna.mw.wscf.model.xa.hls.JTAHLS;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+import com.arjuna.mw.wscf.common.Environment;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.HLSError;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * The ArjunaJTA coordination service implementation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: JTAHLSImple.java,v 1.4.4.1 2005/11/22 10:34:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class JTAHLSImple implements JTAHLS, UserCoordinatorService
+{
+
+    public JTAHLSImple ()
+    {
+	try
+	{
+	    ActivityManagerFactory.activityManager().addHLS((HLS) this);
+	}
+	catch (Exception ex)
+	{
+	    throw new HLSError(ex.toString());
+	}
+
+	_userTransaction = new UserTransactionImple();
+	_transactionManager = new TransactionManagerImple();
+	_coordManager = new CoordinatorControl();
+    }
+    
+    public UserCoordinatorService coordinatorService ()
+    {
+	return this;
+    }
+    
+    public javax.transaction.UserTransaction userTransaction ()
+    {
+	return _userTransaction;
+    }
+    
+    public javax.transaction.TransactionManager transactionManager ()
+    {
+	return _transactionManager;
+    }
+    
+    /**
+     * An activity has begun and is active on the current thread.
+     */
+
+    public void begun () throws SystemException
+    {
+	_coordManager.begin();
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	return _coordManager.complete(cs);
+    }	
+
+    /**
+     * The activity has been suspended.
+     */
+
+    public void suspended () throws SystemException
+    {
+	_coordManager.suspend();
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resumed () throws SystemException
+    {
+	_coordManager.resume();
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+	_coordManager.completed();
+    }
+
+    /**
+     * The HLS name.
+     */
+
+    public String identity () throws SystemException
+    {
+	return "JTAHLSImple";
+    }
+
+    /**
+     * The activity service maintains a priority ordered list of HLS
+     * implementations. If an HLS wishes to be ordered based on priority
+     * then it can return a non-negative value: the higher the value,
+     * the higher the priority and hence the earlier in the list of HLSes
+     * it will appear (and be used in).
+     *
+     * @return a positive value for the priority for this HLS, or zero/negative
+     * if the order is not important.
+     */
+
+    public int priority () throws SystemException
+    {
+	return 0;
+    }
+
+    /**
+     * Return the context augmentation for this HLS, if any on the current
+     * activity.
+     *
+     * @param ActivityHierarchy current The handle on the current activity
+     * hierarchy. The HLS may use this when determining what information to
+     * place in its context data.
+     *
+     * @return a context object or null if no augmentation is necessary.
+     */
+
+    public Context context () throws SystemException
+    {
+	String contextImple = System.getProperty(Environment.JTA_CONTEXT);
+
+	if (contextImple != null)
+	{
+	    try
+	    {
+		Class c = Class.forName(contextImple);
+		SOAPContext ctx = (SOAPContext) c.newInstance();
+		
+		ctx.initialiseContext(_coordManager.currentCoordinator());
+
+		return ctx;
+	    }
+	    catch (Exception ex)
+	    {
+		throw new SystemException(ex.toString());
+	    }
+	}
+	else
+	    return new com.arjuna.mwlabs.wscf.model.jta.arjunajta.context.soap.JTAContextImple(_coordManager.currentCoordinator());
+    }
+
+    /**
+     * If the application requires and if the coordination protocol supports
+     * it, then this method can be used to execute a coordination protocol on
+     * the currently enlisted participants at any time prior to the termination
+     * of the coordination scope.
+     *
+     * This implementation only supports coordination at the end of the
+     * activity.
+     *
+     * @param CompletionStatus cs The completion status to use when determining
+     * how to execute the protocol.
+     *
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * the does not allow coordination to occur.
+     * @exception ProtocolViolationException Thrown if the protocol is violated
+     * in some manner during execution.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return The result of executing the protocol, or null.
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	return _coordManager.coordinate(cs);
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current coordinator. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	return _coordManager.status();
+    }
+
+    /**
+     * Not supported by basic ArjunaCore.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the complete list of qualifiers that have been registered with
+     * the current coordinator.
+     */
+    
+    public Qualifier[] qualifiers () throws NoCoordinatorException, SystemException
+    {
+	return _coordManager.qualifiers();
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identity of the current coordinator.
+     */
+
+    public CoordinatorId identifier () throws NoCoordinatorException, SystemException
+    {
+	return _coordManager.identifier();
+    }
+
+    public static String className ()
+    {
+	return JTAHLSImple.class.getName();
+    }
+
+    private CoordinatorControl                   _coordManager;
+    private javax.transaction.UserTransaction    _userTransaction;
+    private javax.transaction.TransactionManager _transactionManager;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/TransactionManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/TransactionManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/TransactionManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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: TransactionManagerImple.java,v 1.2 2005/05/19 12:13:34 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta;
+
+import javax.transaction.*;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import java.util.Hashtable;
+
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+
+public class TransactionManagerImple extends BaseTransactionImple implements javax.transaction.TransactionManager
+{
+
+    public TransactionManagerImple ()
+    {
+	_coordControl = new CoordinatorControl();
+	_transactions = new Hashtable();
+    }
+    
+    public Transaction getTransaction () throws javax.transaction.SystemException
+    {
+	return _coordControl.transactionManager().getTransaction();
+    }
+ 
+    /**
+     * @return the suspended transaction.
+     */
+
+    public Transaction suspend () throws javax.transaction.SystemException
+    {
+	try
+	{
+	    ActivityHierarchy hier = UserActivityFactory.userActivity().suspend();
+	    Transaction tx = _coordControl.transaction(hier);
+
+	    _transactions.put(tx, hier);
+
+	    return tx;
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    public void resume (Transaction which) throws InvalidTransactionException, java.lang.IllegalStateException, javax.transaction.SystemException
+    {
+	try
+	{
+	    ActivityHierarchy hier = (ActivityHierarchy) _transactions.get(which);
+
+	    if ((which != null) && (hier == null))
+		throw new InvalidTransactionException();
+	    
+	    UserActivityFactory.userActivity().resume(hier);
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new InvalidTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new javax.transaction.SystemException(ex.toString());
+	}
+    }
+
+    private CoordinatorControl _coordControl;
+    private Hashtable          _transactions;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/UserTransactionImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/UserTransactionImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/UserTransactionImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UserTransactionImple.java,v 1.4 2005/05/19 12:13:34 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta;
+
+public class UserTransactionImple extends BaseTransactionImple implements javax.transaction.UserTransaction
+{
+    
+    public UserTransactionImple ()
+    {
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/context/soap/JTAContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/context/soap/JTAContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/jta/arjunajta/context/soap/JTAContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,121 @@
+/*
+ * 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: JTAContextImple.java,v 1.7.4.1 2005/11/22 10:34:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.jta.arjunajta.context.soap;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import javax.transaction.Transaction;
+
+import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+/**
+ * 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: JTAContextImple.java,v 1.7.4.1 2005/11/22 10:34:15 kconner Exp $
+ */
+
+public class JTAContextImple implements SOAPContext
+{
+
+    /**
+     * Incomplete. Need things like the Coordinator URI!
+     */
+
+    public JTAContextImple ()
+    {
+	_context = null;
+    }
+
+    public JTAContextImple (Transaction currentCoordinator)
+    {
+	_context = null;
+	
+	initialiseContext(currentCoordinator);
+    }
+    
+    public String identifier ()
+    {
+	return JTAContextImple.class.getName();
+    }
+
+    public String toString ()
+    {
+	return DomUtil.nodeAsString(_context);
+    }
+
+    public void initialiseContext(Object param)
+    {
+	try
+	{
+	    Transaction currentCoordinator = (Transaction) param;
+	    DocumentBuilder builder = DomUtil.getDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+
+	    _context = doc.createElement(_contextName);
+	    _context.appendChild(doc.createComment("WARNING: example JTA coordinator hierarchy only!"));
+
+	    if (currentCoordinator != null)
+	    {
+		org.w3c.dom.Element elem = doc.createElement(_coordName);
+		
+		elem.appendChild(doc.createTextNode("http://arjuna.com?jta:"+((TransactionImple) currentCoordinator).get_uid().stringForm()));
+		
+		_context.appendChild(elem);
+	    }
+	}
+	catch (ClassCastException ex)
+	{
+	    throw new java.lang.IllegalArgumentException();
+	}
+    }
+    
+    public Element serialiseToElement(final Element element)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+
+    private org.w3c.dom.Element _context;
+    
+    private static final String _contextName = "jta-context";
+    private static final String _coordName = "jta-name";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ACCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ACCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ACCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,356 @@
+/*
+ * 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: ACCoordinator.java,v 1.5 2005/05/19 12:13:37 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.coordinator.*;
+
+import com.arjuna.mw.wscf.model.sagas.participants.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * This class represents a specific coordination instance. It is essentially an
+ * ArjunaCore TwoPhaseCoordinator, which gives us access to two-phase with
+ * synchronization support but without thread management.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ACCoordinator.java,v 1.5 2005/05/19 12:13:37 nmcl Exp $
+ * @since 1.0.
+ * 
+ * @message com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_1
+ *          [com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_1] -
+ *          Complete call failed!
+ * @message com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_2
+ *          [com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_2] -
+ *          Null is an invalid parameter.
+ * @message com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_3
+ *          [com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_3] -
+ *          Wrong state for operation!
+ */
+
+public class ACCoordinator extends TwoPhaseCoordinator
+{
+
+	private final static int DELISTED = 0;
+
+	private final static int COMPLETED = 1;
+
+	public ACCoordinator ()
+	{
+		super();
+
+		_theId = new CoordinatorIdImple(get_uid());
+	}
+
+	public ACCoordinator (Uid recovery)
+	{
+		super(recovery);
+
+		_theId = new CoordinatorIdImple(get_uid());
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		return null;
+	}
+
+	/**
+	 */
+
+	public synchronized void complete () throws WrongStateException,
+			SystemException
+	{
+		if (status() == ActionStatus.RUNNING)
+		{
+			/*
+			 * Transaction is active, so we can look at the pendingList only.
+			 */
+
+			if (pendingList != null)
+			{
+				RecordListIterator iter = new RecordListIterator(pendingList);
+				AbstractRecord absRec = iter.iterate();
+
+				try
+				{
+					while (absRec != null)
+					{
+						if (absRec instanceof ParticipantRecord)
+						{
+							ParticipantRecord pr = (ParticipantRecord) absRec;
+
+							if (!pr.complete())
+							{
+								preventCommit();
+
+								throw new SystemException(
+										wscfLogger.log_mesg
+												.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_1"));
+							}
+						}
+
+						absRec = iter.iterate();
+					}
+				}
+				catch (SystemException ex)
+				{
+					throw ex;
+				}
+				catch (Exception ex)
+				{
+					preventCommit();
+
+					throw new SystemException(ex.toString());
+				}
+			}
+		}
+		else
+			throw new WrongStateException();
+	}
+
+	/**
+	 * Enrol the specified participant with the coordinator associated with the
+	 * current thread.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateParticipantException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistParticipant (Participant act) throws WrongStateException,
+			DuplicateParticipantException, InvalidParticipantException,
+			SystemException
+	{
+		if (act == null) throw new InvalidParticipantException();
+
+		AbstractRecord rec = new ParticipantRecord(act, new Uid());
+
+		if (add(rec) != AddOutcome.AR_ADDED) throw new WrongStateException();
+		else
+		{
+			/*
+			 * Presume nothing protocol, so we need to write the intentions list
+			 * every time a participant is added.
+			 */
+		}
+	}
+
+	/**
+	 * Remove the specified participant from the coordinator's list.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public synchronized void delistParticipant (String participantId)
+			throws InvalidParticipantException, WrongStateException,
+			SystemException
+	{
+		if (participantId == null)
+			throw new SystemException(
+					wscfLogger.log_mesg
+							.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_2"));
+
+		if (status() == ActionStatus.RUNNING) changeParticipantStatus(
+				participantId, DELISTED);
+		else
+			throw new WrongStateException();
+	}
+
+	public synchronized void participantCompleted (String participantId)
+			throws InvalidParticipantException, WrongStateException,
+			SystemException
+	{
+		if (participantId == null)
+			throw new SystemException(
+					wscfLogger.log_mesg
+							.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_2"));
+
+		if (status() == ActionStatus.RUNNING) changeParticipantStatus(
+				participantId, COMPLETED);
+		else
+			throw new WrongStateException();
+	}
+
+	public synchronized void participantFaulted (String participantId)
+			throws InvalidParticipantException, SystemException
+	{
+		if (participantId == null)
+			throw new SystemException(
+					wscfLogger.log_mesg
+							.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_2"));
+
+		if (status() == ActionStatus.RUNNING)
+		{
+			// participant faulted means it has compensated and gone away
+
+			changeParticipantStatus(participantId, DELISTED);
+		}
+		else
+			throw new SystemException(
+					wscfLogger.log_mesg
+							.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator_3"));
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the complete list of qualifiers that have been registered with
+	 *         the current coordinator.
+	 */
+
+	public Qualifier[] qualifiers () throws SystemException
+	{
+		return null;
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return The unique identity of the current coordinator.
+	 */
+
+	public CoordinatorId identifier () throws SystemException
+	{
+		return _theId;
+	}
+
+	private final void changeParticipantStatus (String participantId, int status)
+			throws InvalidParticipantException, SystemException
+	{
+		/*
+		 * Transaction is active, so we can look at the pendingList only.
+		 */
+
+		// TODO allow transaction status to be changed during commit - exit
+		// could come in late
+		boolean found = false;
+
+		if (pendingList != null)
+		{
+			RecordListIterator iter = new RecordListIterator(pendingList);
+			AbstractRecord absRec = iter.iterate();
+
+			try
+			{
+				while ((absRec != null) && !found)
+				{
+					if (absRec instanceof ParticipantRecord)
+					{
+						ParticipantRecord pr = (ParticipantRecord) absRec;
+						Participant participant = (Participant) pr.value();
+
+						if (participantId.equals(participant.id()))
+						{
+							found = true;
+
+							if (status == DELISTED) pr.delist();
+							else
+								pr.completed();
+						}
+					}
+
+					absRec = iter.iterate();
+				}
+			}
+			catch (Exception ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+
+		if (!found) throw new InvalidParticipantException();
+	}
+
+	private CoordinatorIdImple _theId;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorControl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorControl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorControl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,406 @@
+/*
+ * 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: CoordinatorControl.java,v 1.5 2005/05/19 12:13:37 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.sagas.outcomes.CoordinationOutcome;
+import com.arjuna.mw.wscf.model.sagas.status.*;
+import com.arjuna.mw.wscf.model.sagas.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.sagas.participants.*;
+
+import com.arjuna.mw.wsas.status.Active;
+import com.arjuna.mw.wsas.status.Unknown;
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.ats.arjuna.coordinator.ActionStatus;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityHandleImple;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import java.util.Hashtable;
+
+/**
+ * The ArjunaCore coordination service implementation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorControl.java,v 1.5 2005/05/19 12:13:37 nmcl Exp $
+ * @since 1.0.
+ *
+ * @message com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordinatorControl_1 [com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordinatorControl_1] - CoordinatorControl.begin: 
+ */
+
+public class CoordinatorControl
+{
+
+    public CoordinatorControl ()
+    {
+    }
+    
+    /**
+     * An activity has begun and is active on the current thread.
+     */
+
+    public void begin () throws SystemException
+    {
+	try
+	{
+	    ACCoordinator coord = new ACCoordinator();
+	    int status = coord.start(parentCoordinator());
+	
+	    if (status != ActionStatus.RUNNING)
+		throw new BegunFailedException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordinatorControl_1")+ActionStatus.stringForm(status));
+	    else
+	    {
+		_coordinators.put(currentActivity(), coord);
+	    }
+	}
+	catch (SystemException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    throw new UnexpectedException(ex.toString());
+	}
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	ACCoordinator current = currentCoordinator();
+	int outcome;
+	
+	if ((cs != null) && (cs instanceof Success))
+	{
+	    // commit
+
+	    outcome = current.end(true);
+	}
+	else
+	{
+	    // abort
+
+	    outcome = current.cancel();
+	}
+
+	_coordinators.remove(currentActivity());
+
+	int result;
+
+	switch (outcome)
+	{
+	case ActionStatus.ABORTED:
+	    result = TwoPhaseResult.CANCELLED;
+	    break;
+	case ActionStatus.COMMITTED:
+	    result = TwoPhaseResult.CONFIRMED;
+	    break;
+	case ActionStatus.H_ROLLBACK:
+	    result = TwoPhaseResult.HEURISTIC_CANCEL;
+	    break;
+	case ActionStatus.H_COMMIT:
+	    result = TwoPhaseResult.HEURISTIC_CONFIRM;
+	    break;
+	case ActionStatus.H_MIXED:
+	    result = TwoPhaseResult.HEURISTIC_MIXED;
+	    break;
+	case ActionStatus.H_HAZARD:
+	    result = TwoPhaseResult.HEURISTIC_HAZARD;
+	    break;
+	default:
+	    result = TwoPhaseResult.FINISH_ERROR;
+	    break;
+	}
+
+	return new CoordinationOutcome(cs, result);
+    }	
+
+    /**
+     * The current activity is completing and informs the participants
+     * that all work they need to know about has been received.
+     */
+
+    public void complete () throws WrongStateException, SystemException
+    {
+	currentCoordinator().complete();
+    }	
+
+    /**
+     * The activity has been suspended.
+     */
+
+    public void suspend () throws SystemException
+    {
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resume () throws SystemException
+    {
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+    }
+
+    /**
+     * If the application requires and if the coordination protocol supports
+     * it, then this method can be used to execute a coordination protocol on
+     * the currently enlisted participants at any time prior to the termination
+     * of the coordination scope.
+     *
+     * This implementation only supports coordination at the end of the
+     * activity.
+     *
+     * @param CompletionStatus cs The completion status to use when determining
+     * how to execute the protocol.
+     *
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * the does not allow coordination to occur.
+     * @exception ProtocolViolationException Thrown if the protocol is violated
+     * in some manner during execution.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return The result of executing the protocol, or null.
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	return null;
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current coordinator. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	int currentStatus = currentCoordinator().status();
+	
+	switch (currentStatus)
+	{
+	case ActionStatus.CREATED:
+	case ActionStatus.RUNNING:
+	    return Active.instance();
+	case ActionStatus.PREPARING:
+	case ActionStatus.PREPARED:
+	case ActionStatus.COMMITTING:
+	    return Closing.instance();
+	case ActionStatus.COMMITTED:
+	    return Closed.instance();
+	case ActionStatus.ABORTING:
+	    return Cancelling.instance();
+	case ActionStatus.ABORTED:
+	    return Cancelled.instance();
+	case ActionStatus.ABORT_ONLY:
+	    return CancelOnly.instance();
+	case ActionStatus.NO_ACTION:
+	    return NoActivity.instance();
+	case ActionStatus.H_ROLLBACK:
+	case ActionStatus.H_COMMIT:
+	case ActionStatus.H_MIXED:
+	case ActionStatus.H_HAZARD:
+	case ActionStatus.DISABLED:
+	case ActionStatus.INVALID:
+	case ActionStatus.CLEANUP:
+	default:
+	    return Unknown.instance();
+	}
+    }
+
+    /**
+     * Not supported by basic ArjunaCore.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the complete list of qualifiers that have been registered with
+     * the current coordinator.
+     */
+    
+    public Qualifier[] qualifiers () throws NoCoordinatorException, SystemException
+    {
+	return currentCoordinator().qualifiers();
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identity of the current coordinator.
+     */
+
+    public CoordinatorId identifier () throws NoCoordinatorException, SystemException
+    {
+	return currentCoordinator().identifier();
+    }
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread.
+     *
+     * @param Participant act The participant.
+     *
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlistParticipant (Participant act) throws WrongStateException, DuplicateParticipantException, InvalidParticipantException, NoCoordinatorException, SystemException
+    {
+	currentCoordinator().enlistParticipant(act);
+    }
+
+    /**
+     * Remove the specified participant from the coordinator's list.
+     *
+     * @exception InvalidParticipantException Thrown if the participant is not known
+     * of by the coordinator.
+     * @exception WrongStateException Thrown if the state of the coordinator
+     * does not allow the participant to be removed (e.g., in a two-phase
+     * protocol the coordinator is committing.)
+     * @exception SystemException Thrown if any other error occurs.
+     */
+    
+    public void delistParticipant (String participantId) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException
+    {
+	currentCoordinator().delistParticipant(participantId);
+    }
+
+    public void participantCompleted (String participantId) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException
+    {
+	currentCoordinator().participantCompleted(participantId);
+    }
+
+    public void participantFaulted (String participantId) throws NoActivityException, InvalidParticipantException, SystemException
+    {
+	currentCoordinator().participantFaulted(participantId);
+    }
+    
+    final ACCoordinator currentCoordinator () throws NoCoordinatorException, SystemException
+    {
+	ACCoordinator coord = (ACCoordinator) _coordinators.get(currentActivity());
+
+	if (coord == null)
+	    throw new NoCoordinatorException();
+	else
+	    return coord;
+    }
+
+    private final ActivityHandleImple currentActivity () throws SystemException
+    {
+	try
+	{
+	    ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+	
+	    if (hier.size() > 0)
+		return (ActivityHandleImple) hier.activity(hier.size() -1);
+	    else
+		return null;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+    }
+	
+    private final ACCoordinator parentCoordinator () throws SystemException
+    {
+	try
+	{
+	    ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+	    ActivityHandleImple parentActivity = null;
+	    ACCoordinator parentCoordinator = null;
+
+	    if (hier.size() > 1)
+	    {
+		parentActivity = (ActivityHandleImple) hier.activity(hier.size() -2);
+
+		parentCoordinator = (ACCoordinator) _coordinators.get(parentActivity);
+	    }
+
+	    return parentCoordinator;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    return null;
+	}
+    }
+
+    private static Hashtable _coordinators = new Hashtable();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: CoordinatorIdImple.java,v 1.2 2004/03/15 13:25:11 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+/**
+ * This implementation of CoordinatorId uses the ArjunaCore Uid class.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorIdImple.java,v 1.2 2004/03/15 13:25:11 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorIdImple extends Uid implements CoordinatorId
+{
+
+    public CoordinatorIdImple ()
+    {
+	super();
+
+	_value = stringForm().getBytes();
+    }
+    
+    public CoordinatorIdImple (String id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+
+    public CoordinatorIdImple (Uid id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+    
+    private byte[] _value;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorServiceImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorServiceImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/CoordinatorServiceImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,477 @@
+/*
+ * 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: CoordinatorServiceImple.java,v 1.5 2005/05/19 12:13:37 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.sagas.api.UserCoordinator;
+import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.sagas.outcomes.CoordinationOutcome;
+import com.arjuna.mw.wscf.model.sagas.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.sagas.participants.*;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mwlabs.wsas.UserActivityImple;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+import com.arjuna.mwlabs.wsas.activity.CompositeOutcomeImple;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.completionstatus.*;
+
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wscf.model.sagas.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+/**
+ * The user portion of the coordinator API. An implementation of this interface
+ * presents each thread with the capability to create and manage coordinators.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorServiceImple.java,v 1.5 2005/05/19 12:13:37 nmcl Exp $
+ * @since 1.0.
+ *
+ * @message com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordiantorServiceImple_1 [com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordinatorServiceImple_1] - Unknown response!
+ */
+
+public class CoordinatorServiceImple implements UserCoordinator, CoordinatorManager
+{
+
+    public CoordinatorServiceImple ()
+    {
+	super();
+
+	_coordManager = new CoordinatorControl();
+    }
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested. An implementation specific
+     * timeout will be associated with the activity (which may be no
+     * timeout).
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin () throws WrongStateException, SystemException
+    {
+	UserActivityFactory.userActivity().start();
+    }
+
+    /**
+     * Start a new activity. If there is already an activity associated
+     * with the thread then it will be nested.
+     *
+     * @param int timeout The timeout associated with the activity. If the
+     * activity has not been terminated by the time this period elapses, then
+     * it will automatically be terminated.
+     * @exception WrongStateException Thrown if the currently associated
+     * activity is in a state that does not allow a new activity to be
+     * enlisted as a child.
+     * @exception InvalidTimeoutException Thrown if the specified timeout is
+     * invalid within the current working environment.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin (int timeout) throws WrongStateException, InvalidTimeoutException, SystemException
+    {
+	UserActivityFactory.userActivity().start(timeout);
+    }	
+
+    /**
+     * Confirm the activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed in the status requested.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void close () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, CoordinatorCancelledException, NoPermissionException, SystemException
+    {
+	try
+	{
+	    Outcome res = UserActivityFactory.userActivity().end(Success.instance());
+
+	    /*
+	     * TODO
+	     *
+	     * What happens if the coordinator has already been terminated?
+	     */
+
+	    if (res != null)
+	    {
+		// TODO properly! One HLS service per activity.
+
+		if (res instanceof CompositeOutcomeImple)
+		    res = ((CompositeOutcomeImple) res).get(CoordinationOutcome.class.getName());
+
+		if (res instanceof CoordinationOutcome)
+		{
+		    CoordinationOutcome co = (CoordinationOutcome) res;
+		    
+		    switch (co.result())
+		    {
+		    case TwoPhaseResult.FINISH_OK:
+		    case TwoPhaseResult.CONFIRMED:
+		    case TwoPhaseResult.HEURISTIC_CONFIRM:
+			break;
+		    case TwoPhaseResult.CANCELLED:
+		    case TwoPhaseResult.HEURISTIC_CANCEL:
+			throw new CoordinatorCancelledException();
+		    case TwoPhaseResult.HEURISTIC_MIXED:
+			throw new ProtocolViolationException("HeuristicMixed");
+		    case TwoPhaseResult.FINISH_ERROR:
+			throw new WrongStateException();
+		    case TwoPhaseResult.HEURISTIC_HAZARD:
+		    default:
+			throw new ProtocolViolationException("HeuristicHazard");
+		    }
+		}
+		else
+		    throw new ProtocolViolationException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordinatorServiceImple_1"));
+	    }
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoCoordinatorException();
+	}
+	catch (ActiveChildException ex)
+	{
+	    // ?? assume the coordination protocol will cancel children anyway.
+	}
+    }
+    
+    /**
+     * Cancel the activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void cancel () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, CoordinatorConfirmedException, NoPermissionException, SystemException
+    {
+	try
+	{
+	    Outcome res = UserActivityFactory.userActivity().end(Failure.instance());
+	    
+	    if (res != null)
+	    {
+		if (res instanceof CompositeOutcomeImple)
+		    res = ((CompositeOutcomeImple) res).get(CoordinationOutcome.class.getName());
+
+		if (res instanceof CoordinationOutcome)
+		{
+		    CoordinationOutcome co = (CoordinationOutcome) res;
+		    
+		    switch (co.result())
+		    {
+		    case TwoPhaseResult.CONFIRMED:
+		    case TwoPhaseResult.HEURISTIC_CONFIRM:
+			throw new CoordinatorConfirmedException();
+		    case TwoPhaseResult.FINISH_OK:
+		    case TwoPhaseResult.CANCELLED:
+		    case TwoPhaseResult.HEURISTIC_CANCEL:
+			break;
+		    case TwoPhaseResult.HEURISTIC_MIXED:
+			throw new ProtocolViolationException("HeuristicMixed");
+		    case TwoPhaseResult.FINISH_ERROR:
+			throw new WrongStateException();
+		    case TwoPhaseResult.HEURISTIC_HAZARD:
+		    default:
+			throw new ProtocolViolationException("HeuristicHazard");
+		    }
+		}
+		else
+		    throw new ProtocolViolationException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.sagas.arjunacore.CoordinatorServiceImple_1"));
+	    }
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoCoordinatorException();
+	}
+	catch (ActiveChildException ex)
+	{
+	    // ?? assume the coordination protocol will cancel children anyway.
+	}
+    }
+
+    /**
+     * Complete the activity.
+     *
+     * @exception InvalidActivityException Thrown if the current activity is a
+     * parent activity with active children.
+     * @exception WrongStateException Thrown if the current activity is not in a
+     * state that allows it to be completed, or is incompatible with the
+     * completion status provided.
+     * @exception ProtocolViolationException Thrown if the a violation of the
+     * activity service or HLS protocol occurs.
+     * @exception NoPermissionException Thrown if the invoking thread does
+     * not have permission to terminate the transaction.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void complete () throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoCoordinatorException, NoPermissionException, SystemException
+    {
+	_coordManager.complete();
+    }
+    
+    /**
+     * Set the termination status for the current activity to cancel only.
+     *
+     * @exception WrongStateException Thrown if the completion status is
+     * incompatible with the current state of the activity.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setCancelOnly () throws NoCoordinatorException, WrongStateException, SystemException
+    {
+	try
+	{
+	    UserActivityFactory.userActivity().setCompletionStatus(FailureOnly.instance());
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoCoordinatorException();
+	}
+    }	
+
+    /**
+     * Get the timeout value currently associated with activities.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException
+    {
+	return UserActivityFactory.userActivity().getTimeout();
+    }	
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param int timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException
+    {
+	UserActivityFactory.userActivity().setTimeout(timeout);
+    }	
+    
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current activity. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    return NoActivity.instance();
+	
+	return _coordManager.status();
+    }
+    
+    /**
+     * Suspend the current activity from this thread and return the token
+     * representing the context, if any, or null otherwise. Once called, the
+     * thread will have no activities associated with it.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the token representing the current context, if any, or null
+     * otherwise.
+     */
+
+    public ActivityHierarchy suspend () throws SystemException
+    {
+	return UserActivityFactory.userActivity().suspend();
+    }
+
+    /**
+     * Given a token representing a context, associate it with the current
+     * thread of control. This will implicitly disassociate the thread from any
+     * activities that it may already be associated with. If the parameter is
+     * null then the thread is associated with no activity.
+     *
+     * @param ActivityHierarchy tx The activity to associate with this thread. This
+     * may be null in which case the current thread becomes associated with
+     * no activity.
+     *
+     * @exception InvalidActivityException Thrown if the activity handle
+     * is invalid in this context.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (ActivityHierarchy tx) throws InvalidActivityException, SystemException
+    {
+	UserActivityFactory.userActivity().resume(tx);
+    }
+
+    /**
+     * Enrol the specified participant with the coordinator associated with
+     * the current thread.
+     *
+     * @param Participant act The participant.
+     *
+     * @exception WrongStateException Thrown if the coordinator is not in a
+     * state that allows participants to be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant has
+     * already been enrolled and the coordination protocol does not support
+     * multiple entries.
+     * @exception InvalidParticipantException Thrown if the participant is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlistParticipant (Participant act) throws WrongStateException, DuplicateParticipantException, InvalidParticipantException, NoCoordinatorException, SystemException
+    {
+	_coordManager.enlistParticipant(act);
+    }
+
+    /**
+     * Remove the specified participant from the coordinator's list.
+     *
+     * @exception InvalidParticipantException Thrown if the participant is not known
+     * of by the coordinator.
+     * @exception WrongStateException Thrown if the state of the coordinator
+     * does not allow the participant to be removed (e.g., in a two-phase
+     * protocol the coordinator is committing.)
+     * @exception SystemException Thrown if any other error occurs.
+     */
+    
+    public void delistParticipant (String participantId) throws InvalidParticipantException, NoCoordinatorException, WrongStateException, SystemException
+    {
+	_coordManager.delistParticipant(participantId);
+    }
+
+    public void participantCompleted (String participantId) throws NoActivityException, InvalidParticipantException, WrongStateException, SystemException
+    {
+	_coordManager.participantCompleted(participantId);
+    }
+
+    public void participantFaulted (String participantId) throws NoActivityException, InvalidParticipantException, SystemException
+    {
+	_coordManager.participantFaulted(participantId);
+
+	try
+	{
+	    setCancelOnly();
+	}
+	catch (Exception ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+    
+    /**
+     * @return the token representing the current activity context hierarchy,
+     * or null if there is none associated with the invoking thread.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     */
+
+    public ActivityHierarchy currentActivity () throws SystemException
+    {
+	return UserActivityFactory.userActivity().currentActivity();
+    }
+
+    /**
+     * @return the unique coordinator identifier.
+     */
+
+    public CoordinatorId identifier () throws NoActivityException, SystemException
+    {
+	ActivityImple curr = current();
+	
+	if (curr == null)
+	    throw new NoActivityException();
+
+	return _coordManager.identifier();
+    }
+
+    public final ActivityImple current ()
+    {
+	UserActivityImple imple = (UserActivityImple) UserActivityFactory.userActivity();
+	
+	return imple.current();
+    }
+
+    private CoordinatorControl _coordManager;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ParticipantRecord.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ParticipantRecord.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/ParticipantRecord.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,746 @@
+/*
+ * 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: ParticipantRecord.java,v 1.6 2005/05/19 12:13:37 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.ObjectType;
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.arjuna.gandiva.ClassName;
+
+import com.arjuna.mw.wscf.model.sagas.participants.Participant;
+import com.arjuna.mw.wscf.model.sagas.participants.ParticipantWithComplete;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import java.io.PrintWriter;
+
+/**
+ * Arjuna abstract record to handle two-phase participants.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantRecord.java,v 1.6 2005/05/19 12:13:37 nmcl Exp $
+ */
+
+public class ParticipantRecord extends
+		com.arjuna.ats.arjuna.coordinator.AbstractRecord
+{
+
+	/**
+	 * Constructor.
+	 * 
+	 * @param theResource
+	 *            is the proxy that allows us to call out to the object.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_1
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_1] -
+	 *          ParticipantRecord {0} - null participant provided!
+	 */
+
+	public ParticipantRecord (Participant theResource, Uid id)
+	{
+		super(id, null, ObjectType.ANDPERSISTENT);
+
+		_resourceHandle = theResource;
+		_timeout = 0;
+		_coordId = new CoordinatorIdImple(id);
+
+		if (theResource == null)
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_1",
+							new Object[] { order() });
+	}
+
+	public void finalize () throws Throwable
+	{
+		_resourceHandle = null;
+
+		super.finalize();
+	}
+
+	/**
+	 * Override AbstractRecord.propagateOnCommit
+	 */
+
+	public boolean propagateOnCommit ()
+	{
+		return true;
+	}
+
+	/**
+	 * The type of this abstract record.
+	 */
+
+	public int typeIs ()
+	{
+		// TODO add to record list
+		
+		return RecordType.USER_DEF_FIRST1;
+	}
+
+	/**
+	 * The class name for this record.
+	 */
+
+	public ClassName className ()
+	{
+		return new ClassName("WSBAParticipantRecord");
+	}
+
+	/**
+	 * The internal value.
+	 */
+
+	public Object value ()
+	{
+		return _resourceHandle;
+	}
+
+	/**
+	 * Set the internal value. Not allowed for this class.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_2
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_2] -
+	 *          ParticipantRecord.setValue() called illegally.
+	 */
+
+	public void setValue (Object o)
+	{
+		wscfLogger.arjLoggerI18N
+				.warn("com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_2");
+	}
+
+	/**
+	 * The record is being driven through nested rollback.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_3
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_3] -
+	 *          ParticipantRecord.nestedAbort {0} caught: {1}
+	 */
+
+	// TODO
+	public int nestedAbort ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_3",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested commit.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_4
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_4] -
+	 *          ParticipantRecord.nestedCommit {0} caught: {1}
+	 */
+
+	public int nestedCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_4",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested prepare.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_5
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_5] -
+	 *          ParticipantRecord.nestedPrepare {0} caught: {1}
+	 */
+
+	public int nestedPrepare ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (Exception e6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_5",
+							new Object[] { order(), e6 });
+
+			e6.printStackTrace();
+
+			return TwoPhaseOutcome.HEURISTIC_HAZARD;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level rollback.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_6
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_6] -
+	 *          ParticipantRecord.topLevelAbort {0} caught: {1}
+	 */
+
+	public int topLevelAbort ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_exited)
+					{
+						if (_completed) _resourceHandle.compensate();
+						else
+							_resourceHandle.cancel();
+					}
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_6",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level commit.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_7
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_7] -
+	 *          ParticipantRecord.topLevelCommit {0} caught: {1}
+	 */
+
+	public int topLevelCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_exited) _resourceHandle.close();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.NOT_PREPARED;
+				}
+				catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_7",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level prepare.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_8
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_8] -
+	 *          ParticipantRecord.topLevelPrepare {0} caught: {1}
+	 */
+
+	public int topLevelPrepare ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.PREPARE_OK;
+			}
+			else
+				return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (Exception e6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_8",
+							new Object[] { order(), e6 });
+
+			e6.printStackTrace();
+
+			return TwoPhaseOutcome.PREPARE_OK;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested commit and is the only
+	 * resource.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_9
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_9] -
+	 *          ParticipantRecord.nestedOnePhaseCommit {0} caught: {1}
+	 */
+
+	public int nestedOnePhaseCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_9",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level commit and is the only
+	 * resource.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_10
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_10] -
+	 *          ParticipantRecord.topLevelOnePhaseCommit {0} caught: {1}
+	 */
+
+	public int topLevelOnePhaseCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_exited) _resourceHandle.close();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_10",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record generated a heuristic and can now forget about it.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_11
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_11] -
+	 *          ParticipantRecord.forgetHeuristic for {0} called without a
+	 *          resource!
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_12
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_12] -
+	 *          ParticipantRecord.forgetHeuristic {0} caught exception: {1}
+	 */
+
+	public boolean forgetHeuristic ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_exited) _resourceHandle.forget();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return false;
+				}
+				catch (WrongStateException ex)
+				{
+					return false;
+				}
+				catch (SystemException ex)
+				{
+					return false;
+				}
+
+				return true;
+			}
+			else
+			{
+				wscfLogger.arjLoggerI18N
+						.warn(
+								"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_11",
+								new Object[] { order() });
+			}
+		}
+		catch (Exception e)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_12",
+							new Object[] { order(), e });
+
+			e.printStackTrace();
+		}
+
+		return false;
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_13
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_13] -
+	 *          ParticipantRecord.complete {0} caught: {1}
+	 */
+
+	public boolean complete ()
+	{
+		boolean result = false;
+
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_completed)
+					{
+						if (_resourceHandle instanceof ParticipantWithComplete)
+						{
+							((ParticipantWithComplete) _resourceHandle)
+									.complete();
+							 _completed = true;
+						}
+
+						result = true;
+					}
+					else
+					{
+						// already completed, so this is a null op. just rtn
+						// true.
+						result = true;
+					}
+				}
+				catch (InvalidParticipantException ex)
+				{
+				}
+				catch (WrongStateException ex)
+				{
+				}
+				catch (SystemException ex)
+				{
+				}
+			}
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N
+					.warn(
+							"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_13",
+							new Object[] { order(), ex6 });
+
+			ex6.printStackTrace();
+		}
+
+		return result;
+	}
+
+	public static AbstractRecord create ()
+	{
+		return new ParticipantRecord();
+	}
+
+	public void remove (AbstractRecord toDelete)
+	{
+		toDelete = null;
+	}
+
+	public void print (PrintWriter strm)
+	{
+		super.print(strm);
+
+		strm.print("ParticipantRecord");
+		strm.print(_resourceHandle);
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_14
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_14] -
+	 *          ParticipantRecord.restore_state: {1}
+	 */
+
+	public boolean restore_state (InputObjectState os, int t)
+	{
+		boolean result = super.restore_state(os, t);
+
+		if (result)
+		{
+			try
+			{
+				// TODO
+
+				if (_resourceHandle.restore_state(os))
+					_timeout = os.unpackLong();
+
+				/*
+				 * TODO: unpack qualifiers and coord id.
+				 */
+			}
+			catch (Exception ex)
+			{
+				wscfLogger.arjLoggerI18N
+						.warn(
+								"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_14",
+								new Object[] { ex });
+
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_15
+	 *          [com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_15] -
+	 *          ParticipantRecord.save_state: {1}
+	 */
+
+	public boolean save_state (OutputObjectState os, int t)
+	{
+		boolean result = super.save_state(os, t);
+
+		if (result)
+		{
+			try
+			{
+				// TODO
+				
+				if (_resourceHandle.save_state(os))
+					os.packLong(_timeout);
+
+				/*
+				 * TODO: pack qualifiers and coord id.
+				 */
+			}
+			catch (Exception ex)
+			{
+				wscfLogger.arjLoggerI18N
+						.warn(
+								"com.arjuna.mwlabs.wscf.model.sagas.coordinator.arjunacore.ParticipantRecord_15",
+								new Object[] { ex });
+
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	public String type ()
+	{
+		return "/StateManager/AbstractRecord/WSCF/ArjunaCore/ParticipantRecord";
+	}
+
+	public boolean doSave ()
+	{
+		/*
+		 * If the participant has exited, then we don't need to save anything
+		 * about it in the transaction log.
+		 */
+
+		return !_exited;
+	}
+
+	public void merge (AbstractRecord a)
+	{
+	}
+
+	public void alter (AbstractRecord a)
+	{
+	}
+
+	public boolean shouldAdd (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldAlter (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldMerge (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldReplace (AbstractRecord rec)
+	{
+		return false;
+	}
+
+	public final void delist ()
+	{
+		_exited = true;
+	}
+
+	public final void completed ()
+	{
+		_completed = true;
+	}
+
+	/*
+	 * Protected constructor used by crash recovery.
+	 */
+
+	protected ParticipantRecord ()
+	{
+		super();
+
+		_resourceHandle = null;
+		_timeout = 0;
+		_coordId = null;
+	}
+
+	private Participant _resourceHandle;
+
+	private long _timeout;
+
+	private CoordinatorIdImple _coordId;
+
+	private boolean _exited = false;
+
+	private boolean _completed = false;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/SagasHLSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/SagasHLSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/SagasHLSImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,298 @@
+/*
+ * 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: SagasHLSImple.java,v 1.3.4.1 2005/11/22 10:34:09 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore;
+
+import com.arjuna.mw.wscf.model.sagas.api.*;
+import com.arjuna.mw.wscf.model.sagas.hls.SagasHLS;
+
+import com.arjuna.mw.wscf.common.Environment;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.HLSError;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * The ArjunaCore coordination service implementation.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SagasHLSImple.java,v 1.3.4.1 2005/11/22 10:34:09 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SagasHLSImple implements SagasHLS, UserCoordinatorService
+{
+
+    public SagasHLSImple ()
+    {
+	try
+	{
+	    ActivityManagerFactory.activityManager().addHLS((HLS) this);
+	}
+	catch (Exception ex)
+	{
+	    throw new HLSError(ex.toString());
+	}
+
+	_coordinatorService = new CoordinatorServiceImple();
+	_coordManager = new CoordinatorControl();
+    }
+    
+    public UserCoordinatorService coordinatorService ()
+    {
+	return this;
+    }
+    
+    public UserCoordinator userCoordinator ()
+    {
+	return _coordinatorService;
+    }
+    
+    public CoordinatorManager coordinatorManager ()
+    {
+	return _coordinatorService;
+    }
+    
+    /**
+     * An activity has begun and is active on the current thread.
+     */
+
+    public void begun () throws SystemException
+    {
+	_coordManager.begin();
+    }
+
+    /**
+     * The current activity is completing with the specified completion status.
+     *
+     * @param CompletionStatus cs The completion status to use.
+     *
+     * @return The result of terminating the relationship of this HLS and
+     * the current activity.
+     */
+
+    public Outcome complete (CompletionStatus cs) throws SystemException
+    {
+	return _coordManager.complete(cs);
+    }	
+
+    /**
+     * The activity has been suspended.
+     */
+
+    public void suspended () throws SystemException
+    {
+	_coordManager.suspend();
+    }	
+
+    /**
+     * The activity has been resumed on the current thread.
+     */
+
+    public void resumed () throws SystemException
+    {
+	_coordManager.resume();
+    }	
+
+    /**
+     * The activity has completed and is no longer active on the current
+     * thread.
+     */
+
+    public void completed () throws SystemException
+    {
+	_coordManager.completed();
+    }
+
+    /**
+     * The HLS name.
+     */
+
+    public String identity () throws SystemException
+    {
+	return "SagasHLSImple";
+    }
+
+    /**
+     * The activity service maintains a priority ordered list of HLS
+     * implementations. If an HLS wishes to be ordered based on priority
+     * then it can return a non-negative value: the higher the value,
+     * the higher the priority and hence the earlier in the list of HLSes
+     * it will appear (and be used in).
+     *
+     * @return a positive value for the priority for this HLS, or zero/negative
+     * if the order is not important.
+     */
+
+    public int priority () throws SystemException
+    {
+	return 0;
+    }
+
+    /**
+     * Return the context augmentation for this HLS, if any on the current
+     * activity.
+     *
+     * @param ActivityHierarchy current The handle on the current activity
+     * hierarchy. The HLS may use this when determining what information to
+     * place in its context data.
+     *
+     * @return a context object or null if no augmentation is necessary.
+     */
+
+    /*
+     * TODO This needs refactoring. It's true that the context format should
+     * be configurable to allow the same implementation to be used in
+     * different protocols (e.g., 2PC mapping to OTS or original Arjuna could
+     * use the same protocol implementation, but the context formats are
+     * different.) However, is this the best way of doing that?
+     */
+
+    public Context context () throws SystemException
+    {
+	String contextImple = System.getProperty(Environment.SAGAS_CONTEXT);
+
+	if (contextImple != null)
+	{
+	    try
+	    {
+		Class c = Class.forName(contextImple);
+		SOAPContext ctx = (SOAPContext) c.newInstance();
+		
+		ctx.initialiseContext(_coordManager.currentCoordinator());
+
+		return ctx;
+	    }
+	    catch (Exception ex)
+	    {
+		ex.printStackTrace();
+		
+		throw new SystemException(ex.toString());
+	    }
+	}
+	else
+	    return new com.arjuna.mwlabs.wscf.model.sagas.arjunacore.context.soap.ArjunaContextImple(_coordManager.currentCoordinator());
+    }
+
+    /**
+     * If the application requires and if the coordination protocol supports
+     * it, then this method can be used to execute a coordination protocol on
+     * the currently enlisted participants at any time prior to the termination
+     * of the coordination scope.
+     *
+     * This implementation only supports coordination at the end of the
+     * activity.
+     *
+     * @param CompletionStatus cs The completion status to use when determining
+     * how to execute the protocol.
+     *
+     * @exception WrongStateException Thrown if the coordinator is in a state
+     * the does not allow coordination to occur.
+     * @exception ProtocolViolationException Thrown if the protocol is violated
+     * in some manner during execution.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return The result of executing the protocol, or null.
+     */
+
+    public Outcome coordinate (CompletionStatus cs) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	return _coordManager.coordinate(cs);
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current coordinator. If there is no
+     * activity associated with the thread then NoActivity
+     * will be returned.
+     *
+     * @see com.arjuna.mw.wsas.status.Status
+     */
+
+    public com.arjuna.mw.wsas.status.Status status () throws SystemException
+    {
+	return _coordManager.status();
+    }
+
+    /**
+     * Not supported by basic ArjunaCore.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the complete list of qualifiers that have been registered with
+     * the current coordinator.
+     */
+    
+    public Qualifier[] qualifiers () throws NoCoordinatorException, SystemException
+    {
+	return _coordManager.qualifiers();
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return The unique identity of the current coordinator.
+     */
+
+    public CoordinatorId identifier () throws NoCoordinatorException, SystemException
+    {
+	return _coordManager.identifier();
+    }
+
+    public static String className ()
+    {
+	return SagasHLSImple.class.getName();
+    }
+
+    private CoordinatorControl      _coordManager;
+    private CoordinatorServiceImple _coordinatorService;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/context/soap/ArjunaContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/context/soap/ArjunaContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/sagas/arjunacore/context/soap/ArjunaContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,125 @@
+/*
+ * 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.3.4.1 2005/11/22 10:34:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.sagas.arjunacore.context.soap;
+
+import com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator;
+
+import com.arjuna.ats.arjuna.coordinator.ActionHierarchy;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+/**
+ * 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.3.4.1 2005/11/22 10:34:15 kconner Exp $
+ */
+
+public class ArjunaContextImple implements SOAPContext
+{
+
+    /**
+     * Incomplete. Need things like the Coordinator URI!
+     */
+
+    // TODO make sure all SOAPContexts have a default constructor!
+
+    public ArjunaContextImple ()
+    {
+    }
+    
+    public ArjunaContextImple (ACCoordinator currentCoordinator)
+    {
+	initialiseContext(currentCoordinator);
+    }
+
+    public void initialiseContext(Object param)
+    {
+	try
+	{
+	    ACCoordinator currentCoordinator = (ACCoordinator) param;
+	    DocumentBuilder builder = DomUtil.getDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	
+	    _context = doc.createElement(_contextName);
+	    _context.appendChild(doc.createComment("WARNING: example Arjuna coordinator hierarchy only!"));
+	
+	    if (currentCoordinator != null)
+	    {
+		ActionHierarchy hier = currentCoordinator.getHierarchy();
+	
+		for (int i = 0; i < hier.depth(); i++)
+		{
+		    org.w3c.dom.Element elem = doc.createElement(_coordName);
+		
+		    elem.appendChild(doc.createTextNode("http://arjuna.com?"+hier.getActionUid(i).stringForm()));
+		
+		    _context.appendChild(elem);
+		}
+	    }
+	}
+	catch (Exception ex)
+	{
+	    throw new java.lang.IllegalArgumentException(ex.toString());
+	}
+    }
+    
+    public Element serialiseToElement(final Element element)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+
+    public String identifier ()
+    {
+	return ArjunaContextImple.class.getName();
+    }
+
+    public String toString ()
+    {
+	return DomUtil.nodeAsString(_context);
+    }
+
+    private org.w3c.dom.Element _context = null;
+    
+    private static final String _contextName = "sagas-arjunacore-context";
+    private static final String _coordName = "coordinator-name";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ACCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ACCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ACCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,353 @@
+/*
+ * 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: ACCoordinator.java,v 1.7 2005/06/09 09:41:27 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.coordinator.*;
+
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * This class represents a specific coordination instance. It is essentially an
+ * ArjunaCore TwoPhaseCoordinator, which gives us access to two-phase with
+ * synchronization support but without thread management.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ACCoordinator.java,v 1.7 2005/06/09 09:41:27 nmcl Exp $
+ * @since 1.0.
+ * 
+ * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_1
+ *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_1] -
+ *          ArjunaCore does not support removal of participants
+ * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_2
+ *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_2] -
+ *          Null is an invalid parameter!
+ * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_3
+ *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_3] -
+ *          Wrong state for operation!
+ */
+
+public class ACCoordinator extends TwoPhaseCoordinator
+{
+
+	private final static int ROLLEDBACK = 0;
+	private final static int READONLY = 1;
+
+	public ACCoordinator ()
+	{
+		super();
+	
+		_theId = new CoordinatorIdImple(get_uid());
+	}
+
+	public ACCoordinator (Uid recovery)
+	{
+		super(recovery);
+				
+		_theId = new CoordinatorIdImple(get_uid());
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		return null;
+	}
+
+	/**
+	 * Enrol the specified participant with the coordinator associated with the
+	 * current thread.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateParticipantException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistParticipant (Participant act) throws WrongStateException,
+			DuplicateParticipantException, InvalidParticipantException,
+			SystemException
+	{		
+		if (act == null)
+			throw new InvalidParticipantException();
+
+		AbstractRecord rec = new ParticipantRecord(act, new Uid());
+
+		if (add(rec) != AddOutcome.AR_ADDED)
+			throw new WrongStateException();
+	}
+
+	/**
+	 * Remove the specified participant from the coordinator's list.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void delistParticipant (Participant act)
+			throws InvalidParticipantException, WrongStateException,
+			SystemException
+	{
+		if (act == null)
+			throw new InvalidParticipantException();
+		else
+			throw new WrongStateException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_1"));
+	}
+
+	/**
+	 * Enrol the specified synchronization with the coordinator associated with
+	 * the current thread.
+	 * 
+	 * @param Synchronization
+	 *            act The synchronization to add.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateSynchronizationException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidSynchronizationException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistSynchronization (Synchronization act)
+			throws WrongStateException, DuplicateSynchronizationException,
+			InvalidSynchronizationException, SystemException
+	{
+		if (act == null)
+			throw new InvalidSynchronizationException();
+
+		SynchronizationRecord rec = new SynchronizationRecord(act, new Uid());
+
+		if (addSynchronization(rec) != AddOutcome.AR_ADDED)
+			throw new WrongStateException();
+	}
+
+	/**
+	 * Remove the specified synchronization from the coordinator's list.
+	 * 
+	 * @exception InvalidSynchronizationException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void delistSynchronization (Synchronization act)
+			throws InvalidSynchronizationException, WrongStateException,
+			SystemException
+	{
+		if (act == null)
+			throw new InvalidSynchronizationException();
+		else
+			throw new WrongStateException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_1"));
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the complete list of qualifiers that have been registered with
+	 *         the current coordinator.
+	 */
+
+	public Qualifier[] qualifiers () throws SystemException
+	{
+		return null;
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return The unique identity of the current coordinator.
+	 */
+
+	public CoordinatorId identifier () throws SystemException
+	{
+		return _theId;
+	}
+
+	public synchronized void participantRolledBack (String participantId)
+			throws InvalidParticipantException, WrongStateException,
+			SystemException
+	{
+		if (participantId == null)
+			throw new SystemException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_2"));
+
+		if (status() == ActionStatus.RUNNING)
+			changeParticipantStatus(participantId, ROLLEDBACK);
+		else
+			throw new WrongStateException();
+	}
+
+	public synchronized void participantReadOnly (String participantId)
+			throws InvalidParticipantException, SystemException
+	{
+		if (participantId == null)
+			throw new SystemException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_2"));
+
+		if (status() == ActionStatus.RUNNING)
+		{
+			changeParticipantStatus(participantId, READONLY);
+		}
+		else
+			throw new SystemException(
+					wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator_3"));
+	}
+
+	public String type ()
+	{
+		return "/StateManager/BasicAction/AtomicAction/TwoPhaseCoordinator/TwoPhase/ACCoordinator";
+	}
+	
+	private final void changeParticipantStatus (String participantId, int status)
+			throws InvalidParticipantException, SystemException
+	{
+		/*
+		 * Transaction is active, so we can look at the pendingList only.
+		 */
+
+		// TODO allow transaction status to be changed during commit - exit
+		// could come in late
+		boolean found = false;
+
+		if (pendingList != null)
+		{
+			RecordListIterator iter = new RecordListIterator(pendingList);
+			AbstractRecord absRec = iter.iterate();
+
+			try
+			{
+				while ((absRec != null) && !found)
+				{
+					if (absRec instanceof ParticipantRecord)
+					{
+						ParticipantRecord pr = (ParticipantRecord) absRec;
+						Participant participant = (Participant) pr.value();
+
+						if (participantId.equals(participant.id()))
+						{
+							found = true;
+
+							if (status == READONLY)
+								pr.readonly();
+							else
+								pr.rolledback();
+						}
+					}
+
+					absRec = iter.iterate();
+				}
+			}
+			catch (Exception ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+
+		if (!found)
+			throw new InvalidParticipantException();
+	}
+
+	private CoordinatorIdImple _theId;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,531 @@
+/*
+ * 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: CoordinatorControl.java,v 1.9 2005/06/09 09:41:27 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.twophase.outcomes.CoordinationOutcome;
+import com.arjuna.mw.wscf.model.twophase.status.*;
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+
+import com.arjuna.mw.wsas.status.Active;
+import com.arjuna.mw.wsas.status.Unknown;
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.ats.arjuna.coordinator.ActionStatus;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityHandleImple;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate.SubordinateCoordinator;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import java.util.Hashtable;
+
+/**
+ * The ArjunaCore coordination service implementation.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorControl.java,v 1.9 2005/06/09 09:41:27 nmcl Exp $
+ * @since 1.0.
+ * 
+ * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl_1
+ *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl_1] -
+ *          CoordinatorControl.begin:
+ */
+
+public class CoordinatorControl
+{
+
+	public CoordinatorControl ()
+	{
+	}
+
+	/**
+	 * An activity has begun and is active on the current thread.
+	 */
+
+	public void begin () throws SystemException
+	{		
+		try
+		{
+			ACCoordinator coord = new ACCoordinator();
+			int status = coord.start(parentCoordinator());
+
+			if (status != ActionStatus.RUNNING)
+				throw new BegunFailedException(
+						wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl_1")
+								+ ActionStatus.stringForm(status));
+			else
+			{
+				_coordinators.put(currentActivity(), coord);
+			}
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		catch (Exception ex)
+		{
+			throw new UnexpectedException(ex.toString());
+		}
+	}
+
+	/**
+	 * The current activity is completing with the specified completion status.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use.
+	 * 
+	 * @return The result of terminating the relationship of this HLS and the
+	 *         current activity.
+	 */
+
+	public Outcome complete (CompletionStatus cs) throws SystemException
+	{
+		ACCoordinator current = currentCoordinator();
+		int outcome;
+
+		if ((cs != null) && (cs instanceof Success))
+		{
+			// commit
+
+			outcome = current.end(true);
+		}
+		else
+		{
+			// abort
+
+			outcome = current.cancel();
+		}
+
+		_coordinators.remove(currentActivity());
+
+		int result;
+
+		switch (outcome)
+		{
+		case ActionStatus.ABORTED:
+			result = TwoPhaseResult.CANCELLED;
+			break;
+		case ActionStatus.COMMITTED:
+			result = TwoPhaseResult.CONFIRMED;
+			break;
+		case ActionStatus.H_ROLLBACK:
+			result = TwoPhaseResult.HEURISTIC_CANCEL;
+			break;
+		case ActionStatus.H_COMMIT:
+			result = TwoPhaseResult.HEURISTIC_CONFIRM;
+			break;
+		case ActionStatus.H_MIXED:
+			result = TwoPhaseResult.HEURISTIC_MIXED;
+			break;
+		case ActionStatus.H_HAZARD:
+			result = TwoPhaseResult.HEURISTIC_HAZARD;
+			break;
+		default:
+			result = TwoPhaseResult.FINISH_ERROR;
+			break;
+		}
+
+		return new CoordinationOutcome(cs, result);
+	}
+
+	/**
+	 * The activity has been suspended.
+	 */
+
+	public void suspend () throws SystemException
+	{
+	}
+
+	/**
+	 * The activity has been resumed on the current thread.
+	 */
+
+	public void resume () throws SystemException
+	{
+	}
+
+	/**
+	 * The activity has completed and is no longer active on the current thread.
+	 */
+
+	public void completed () throws SystemException
+	{
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		return null;
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the status of the current coordinator. If there is no activity
+	 *         associated with the thread then NoActivity will be returned.
+	 * 
+	 * @see com.arjuna.mw.wsas.status.Status
+	 */
+
+	public com.arjuna.mw.wsas.status.Status status () throws SystemException
+	{
+		int currentStatus = currentCoordinator().status();
+
+		switch (currentStatus)
+		{
+		case ActionStatus.CREATED:
+		case ActionStatus.RUNNING:
+			return Active.instance();
+		case ActionStatus.PREPARING:
+			return Preparing.instance();
+		case ActionStatus.ABORTING:
+			return Cancelling.instance();
+		case ActionStatus.ABORTED:
+			return Cancelled.instance();
+		case ActionStatus.ABORT_ONLY:
+			return CancelOnly.instance();
+		case ActionStatus.PREPARED:
+			return Prepared.instance();
+		case ActionStatus.COMMITTING:
+			return Confirming.instance();
+		case ActionStatus.COMMITTED:
+			return Confirmed.instance();
+		case ActionStatus.H_ROLLBACK:
+			return HeuristicCancel.instance();
+		case ActionStatus.H_COMMIT:
+			return HeuristicConfirm.instance();
+		case ActionStatus.H_MIXED:
+			return HeuristicMixed.instance();
+		case ActionStatus.H_HAZARD:
+			return HeuristicHazard.instance();
+		case ActionStatus.NO_ACTION:
+			return NoActivity.instance();
+		case ActionStatus.DISABLED:
+		case ActionStatus.INVALID:
+		case ActionStatus.CLEANUP:
+		default:
+			return Unknown.instance();
+		}
+	}
+
+	/**
+	 * Not supported by basic ArjunaCore.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the complete list of qualifiers that have been registered with
+	 *         the current coordinator.
+	 */
+
+	public Qualifier[] qualifiers () throws NoCoordinatorException,
+			SystemException
+	{
+		return currentCoordinator().qualifiers();
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return The unique identity of the current coordinator.
+	 */
+
+	public CoordinatorId identifier () throws NoCoordinatorException,
+			SystemException
+	{
+		return currentCoordinator().identifier();
+	}
+
+	/**
+	 * Enrol the specified participant with the coordinator associated with the
+	 * current thread.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateParticipantException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistParticipant (Participant act) throws WrongStateException,
+			DuplicateParticipantException, InvalidParticipantException,
+			NoCoordinatorException, SystemException
+	{
+		currentCoordinator().enlistParticipant(act);
+	}
+
+	/**
+	 * Remove the specified participant from the coordinator's list.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void delistParticipant (Participant act)
+			throws InvalidParticipantException, NoCoordinatorException,
+			WrongStateException, SystemException
+	{
+		currentCoordinator().delistParticipant(act);
+	}
+
+	/**
+	 * Enrol the specified synchronization with the coordinator associated with
+	 * the current thread.
+	 * 
+	 * @param Synchronization
+	 *            act The synchronization to remove.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateSynchronizationException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidSynchronizationException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistSynchronization (Synchronization act)
+			throws WrongStateException, DuplicateSynchronizationException,
+			InvalidSynchronizationException, NoCoordinatorException,
+			SystemException
+	{
+		currentCoordinator().enlistSynchronization(act);
+	}
+
+	/**
+	 * Remove the specified synchronization from the coordinator's list.
+	 * 
+	 * @exception InvalidSynchronizationException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void delistSynchronization (Synchronization act)
+			throws InvalidSynchronizationException, NoCoordinatorException,
+			WrongStateException, SystemException
+	{
+		currentCoordinator().delistSynchronization(act);
+	}
+
+	public void participantRolledBack (String participantId)
+			throws NoActivityException, InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+		currentCoordinator().participantRolledBack(participantId);
+	}
+
+	public void participantReadOnly (String participantId)
+			throws NoActivityException, InvalidParticipantException,
+			SystemException
+	{
+		currentCoordinator().participantReadOnly(participantId);
+	}
+
+	/**
+	 * Create a subordinate transaction, i.e., one which can be driven
+	 * through prepare, commit and rollback. Such a transaction is not
+	 * interposed with any parent transaction because the parent may
+	 * be physically remote from the child. Such interposition is the
+	 * responsibility of the invoker.
+	 * 
+	 * @return the subordinate transaction. The transaction is not
+	 * associated with the thread and is not interposed. It is running.
+	 * 
+	 * @throws SystemException throw if any error occurs.
+	 */
+	
+	public final ACCoordinator createSubordinate () throws SystemException
+	{	
+		try
+		{
+			SubordinateCoordinator coord = new SubordinateCoordinator();
+			int status = coord.start(null);
+
+			if (status != ActionStatus.RUNNING)
+			{
+				throw new BegunFailedException(
+						wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl_1")
+								+ ActionStatus.stringForm(status));
+			}
+			else
+			{
+				/*
+				 * TODO does this need to be added to the list?
+				 */
+				
+				// _coordinators.put(currentActivity(), coord);
+				
+				return coord;
+			}
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		catch (Exception ex)
+		{
+			throw new UnexpectedException(ex.toString());
+		}
+	}
+	
+	final ACCoordinator currentCoordinator () throws NoCoordinatorException,
+			SystemException
+	{
+		ACCoordinator coord = (ACCoordinator) _coordinators.get(currentActivity());
+		
+		if (coord == null)
+			throw new NoCoordinatorException();
+		else
+			return coord;
+	}
+
+	private final ActivityHandleImple currentActivity () throws SystemException
+	{
+		try
+		{
+			ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+
+			if (hier.size() > 0)
+				return (ActivityHandleImple) hier.activity(hier.size() - 1);
+			else
+				return null;
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	private final ACCoordinator parentCoordinator () throws SystemException
+	{
+		try
+		{
+			ActivityHierarchy hier = UserActivityFactory.userActivity().currentActivity();
+			ActivityHandleImple parentActivity = null;
+			ACCoordinator parentCoordinator = null;
+
+			if (hier.size() > 1)
+			{
+				parentActivity = (ActivityHandleImple) hier.activity(hier.size() - 2);
+
+				parentCoordinator = (ACCoordinator) _coordinators.get(parentActivity);
+			}
+
+			return parentCoordinator;
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+
+			return null;
+		}
+	}
+
+	private static Hashtable _coordinators = new Hashtable();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: CoordinatorIdImple.java,v 1.3 2004/03/15 13:25:13 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+/**
+ * This implementation of CoordinatorId uses the ArjunaCore Uid class.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorIdImple.java,v 1.3 2004/03/15 13:25:13 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CoordinatorIdImple extends Uid implements CoordinatorId
+{
+
+    public CoordinatorIdImple ()
+    {
+	super();
+
+	_value = stringForm().getBytes();
+    }
+    
+    public CoordinatorIdImple (String id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+
+    public CoordinatorIdImple (Uid id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+    
+    private byte[] _value;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorServiceImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorServiceImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorServiceImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,610 @@
+/*
+ * 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: CoordinatorServiceImple.java,v 1.8 2005/05/19 12:13:38 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.twophase.outcomes.CoordinationOutcome;
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mwlabs.wsas.UserActivityImple;
+
+import com.arjuna.mwlabs.wsas.activity.ActivityImple;
+import com.arjuna.mwlabs.wsas.activity.CompositeOutcomeImple;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.UserActivityFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.completionstatus.*;
+
+import com.arjuna.mw.wsas.status.NoActivity;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+/**
+ * The user portion of the coordinator API. An implementation of this interface
+ * presents each thread with the capability to create and manage coordinators.
+ * It is very similar to the OTS Current and JTA UserTransaction.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CoordinatorServiceImple.java,v 1.8 2005/05/19 12:13:38 nmcl Exp $
+ * @since 1.0.
+ * 
+ * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordiantorServiceImple_1
+ *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple_1] -
+ *          Unknown response!
+ */
+
+public class CoordinatorServiceImple implements UserCoordinator,
+		CoordinatorManager
+{
+
+	public CoordinatorServiceImple ()
+	{
+		super();
+
+		_coordManager = new CoordinatorControl();
+	}
+
+	/**
+	 * Start a new activity. If there is already an activity associated with the
+	 * thread then it will be nested. An implementation specific timeout will be
+	 * associated with the activity (which may be no timeout).
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the any currently associated activity is in a
+	 *                state that does not allow a new activity to be enlisted.
+	 * @exception SystemException
+	 *                Thrown in any other situation.
+	 */
+
+	public void begin () throws WrongStateException, SystemException
+	{
+		UserActivityFactory.userActivity().start();
+	}
+
+	/**
+	 * Start a new activity. If there is already an activity associated with the
+	 * thread then it will be nested.
+	 * 
+	 * @param int
+	 *            timeout The timeout associated with the activity. If the
+	 *            activity has not been terminated by the time this period
+	 *            elapses, then it will automatically be terminated.
+	 * @exception WrongStateException
+	 *                Thrown if the currently associated activity is in a state
+	 *                that does not allow a new activity to be enlisted as a
+	 *                child.
+	 * @exception InvalidTimeoutException
+	 *                Thrown if the specified timeout is invalid within the
+	 *                current working environment.
+	 * @exception SystemException
+	 *                Thrown in any other situation.
+	 */
+
+	public void begin (int timeout) throws WrongStateException,
+			InvalidTimeoutException, SystemException
+	{
+		UserActivityFactory.userActivity().start(timeout);
+	}
+
+	/**
+	 * Confirm the activity.
+	 * 
+	 * @exception InvalidActivityException
+	 *                Thrown if the current activity is a parent activity with
+	 *                active children.
+	 * @exception WrongStateException
+	 *                Thrown if the current activity is not in a state that
+	 *                allows it to be completed in the status requested.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the a violation of the activity service or HLS
+	 *                protocol occurs.
+	 * @exception NoPermissionException
+	 *                Thrown if the invoking thread does not have permission to
+	 *                terminate the transaction.
+	 * @exception SystemException
+	 *                Thrown if some other error occurred.
+	 */
+
+	public void confirm () throws InvalidActivityException,
+			WrongStateException, ProtocolViolationException,
+			NoCoordinatorException, CoordinatorCancelledException,
+			HeuristicMixedException, HeuristicHazardException,
+			NoPermissionException, SystemException
+	{
+		try
+		{
+			Outcome res = UserActivityFactory.userActivity().end(Success.instance());
+
+			/*
+			 * TODO
+			 * 
+			 * What happens if the coordinator has already been terminated?
+			 */
+
+			if (res != null)
+			{
+				// TODO properly! One HLS service per activity.
+
+				if (res instanceof CompositeOutcomeImple)
+					res = ((CompositeOutcomeImple) res).get(CoordinationOutcome.class.getName());
+
+				if (res instanceof CoordinationOutcome)
+				{
+					CoordinationOutcome co = (CoordinationOutcome) res;
+					
+					switch (co.result())
+					{
+					case TwoPhaseResult.FINISH_OK:
+					case TwoPhaseResult.CONFIRMED:
+					case TwoPhaseResult.HEURISTIC_CONFIRM:
+						break;
+					case TwoPhaseResult.CANCELLED:
+					case TwoPhaseResult.HEURISTIC_CANCEL:
+						throw new CoordinatorCancelledException();
+					case TwoPhaseResult.HEURISTIC_MIXED:
+						throw new HeuristicMixedException();
+					case TwoPhaseResult.FINISH_ERROR:
+						throw new WrongStateException();
+					case TwoPhaseResult.HEURISTIC_HAZARD:
+					default:
+						throw new HeuristicHazardException();
+					}
+				}
+				else
+					throw new HeuristicHazardException(
+							wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple_1"));
+			}
+		}
+		catch (NoActivityException ex)
+		{
+			throw new NoCoordinatorException();
+		}
+		catch (ActiveChildException ex)
+		{
+			// ?? assume the coordination protocol will cancel children anyway.
+		}
+		catch (HeuristicHazardException ex)
+		{
+			throw ex;
+		}
+	}
+
+	/**
+	 * Cancel the activity.
+	 * 
+	 * @exception InvalidActivityException
+	 *                Thrown if the current activity is a parent activity with
+	 *                active children.
+	 * @exception WrongStateException
+	 *                Thrown if the current activity is not in a state that
+	 *                allows it to be completed, or is incompatible with the
+	 *                completion status provided.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the a violation of the activity service or HLS
+	 *                protocol occurs.
+	 * @exception NoPermissionException
+	 *                Thrown if the invoking thread does not have permission to
+	 *                terminate the transaction.
+	 * @exception SystemException
+	 *                Thrown if some other error occurred.
+	 */
+
+	public void cancel () throws InvalidActivityException, WrongStateException,
+			ProtocolViolationException, NoCoordinatorException,
+			CoordinatorConfirmedException, HeuristicMixedException,
+			HeuristicHazardException, NoPermissionException, SystemException
+	{
+		try
+		{
+			Outcome res = UserActivityFactory.userActivity().end(Failure.instance());
+
+			if (res != null)
+			{
+				if (res instanceof CompositeOutcomeImple)
+					res = ((CompositeOutcomeImple) res).get(CoordinationOutcome.class.getName());
+
+				if (res instanceof CoordinationOutcome)
+				{
+					CoordinationOutcome co = (CoordinationOutcome) res;
+
+					switch (co.result())
+					{
+					case TwoPhaseResult.CONFIRMED:
+					case TwoPhaseResult.HEURISTIC_CONFIRM:
+						throw new CoordinatorConfirmedException();
+					case TwoPhaseResult.FINISH_OK:
+					case TwoPhaseResult.CANCELLED:
+					case TwoPhaseResult.HEURISTIC_CANCEL:
+						break;
+					case TwoPhaseResult.HEURISTIC_MIXED:
+						throw new HeuristicMixedException();
+					case TwoPhaseResult.FINISH_ERROR:
+						throw new WrongStateException();
+					case TwoPhaseResult.HEURISTIC_HAZARD:
+					default:
+						throw new HeuristicHazardException();
+					}
+				}
+				else
+					throw new HeuristicHazardException(
+							wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple_1"));
+			}
+		}
+		catch (NoActivityException ex)
+		{
+			throw new NoCoordinatorException();
+		}
+		catch (ActiveChildException ex)
+		{
+			// ?? assume the coordination protocol will cancel children anyway.
+		}
+		catch (HeuristicHazardException ex)
+		{
+			throw ex;
+		}
+	}
+
+	/**
+	 * Set the termination status for the current activity to cancel only.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the completion status is incompatible with the
+	 *                current state of the activity.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void setCancelOnly () throws NoCoordinatorException,
+			WrongStateException, SystemException
+	{
+		try
+		{
+			UserActivityFactory.userActivity().setCompletionStatus(FailureOnly.instance());
+		}
+		catch (NoActivityException ex)
+		{
+			throw new NoCoordinatorException();
+		}
+	}
+
+	/**
+	 * Get the timeout value currently associated with activities.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the timeout value in seconds, or 0 if no application specified
+	 *         timeout has been provided.
+	 */
+
+	public int getTimeout () throws SystemException
+	{
+		return UserActivityFactory.userActivity().getTimeout();
+	}
+
+	/**
+	 * Set the timeout to be associated with all subsequently created
+	 * activities. A default value of 0 is automatically associated with each
+	 * thread and this means that no application specified timeout is set for
+	 * activities.
+	 * 
+	 * @param int
+	 *            timeout The timeout (in seconds) to associate with all
+	 *            subsequently created activities. This value must be 0 or
+	 *            greater.
+	 * 
+	 * @exception InvalidTimeoutException
+	 *                Thrown if the timeout value provided is negative, too
+	 *                large, or if timeouts are simply not supported by the
+	 *                activity implementation.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void setTimeout (int timeout) throws InvalidTimeoutException,
+			SystemException
+	{
+		UserActivityFactory.userActivity().setTimeout(timeout);
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the status of the current activity. If there is no activity
+	 *         associated with the thread then NoActivity will be returned.
+	 * 
+	 * @see com.arjuna.mw.wsas.status.Status
+	 */
+
+	public com.arjuna.mw.wsas.status.Status status () throws SystemException
+	{
+		ActivityImple curr = current();
+
+		if (curr == null)
+			return NoActivity.instance();
+
+		return _coordManager.status();
+	}
+
+	/**
+	 * Suspend the current activity from this thread and return the token
+	 * representing the context, if any, or null otherwise. Once called, the
+	 * thread will have no activities associated with it.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the token representing the current context, if any, or null
+	 *         otherwise.
+	 */
+
+	public ActivityHierarchy suspend () throws SystemException
+	{
+		return UserActivityFactory.userActivity().suspend();
+	}
+
+	/**
+	 * Given a token representing a context, associate it with the current
+	 * thread of control. This will implicitly disassociate the thread from any
+	 * activities that it may already be associated with. If the parameter is
+	 * null then the thread is associated with no activity.
+	 * 
+	 * @param ActivityHierarchy
+	 *            tx The activity to associate with this thread. This may be
+	 *            null in which case the current thread becomes associated with
+	 *            no activity.
+	 * 
+	 * @exception InvalidActivityException
+	 *                Thrown if the activity handle is invalid in this context.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void resume (ActivityHierarchy tx) throws InvalidActivityException,
+			SystemException
+	{
+		UserActivityFactory.userActivity().resume(tx);
+	}
+
+	/**
+	 * Enrol the specified participant with the coordinator associated with the
+	 * current thread.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateParticipantException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistParticipant (Participant act) throws WrongStateException,
+			DuplicateParticipantException, InvalidParticipantException,
+			NoCoordinatorException, SystemException
+	{
+		_coordManager.enlistParticipant(act);
+	}
+
+	/**
+	 * Remove the specified participant from the coordinator's list.
+	 * 
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void delistParticipant (Participant act)
+			throws InvalidParticipantException, NoCoordinatorException,
+			WrongStateException, SystemException
+	{
+		_coordManager.delistParticipant(act);
+	}
+
+	/**
+	 * Enrol the specified synchronization with the coordinator associated with
+	 * the current thread.
+	 * 
+	 * @param Synchronization
+	 *            act The synchronization to remove.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be enrolled.
+	 * @exception DuplicateSynchronizationException
+	 *                Thrown if the participant has already been enrolled and
+	 *                the coordination protocol does not support multiple
+	 *                entries.
+	 * @exception InvalidSynchronizationException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void enlistSynchronization (Synchronization act)
+			throws WrongStateException, DuplicateSynchronizationException,
+			InvalidSynchronizationException, NoCoordinatorException,
+			SystemException
+	{
+		_coordManager.enlistSynchronization(act);
+	}
+
+	/**
+	 * Remove the specified synchronization from the coordinator's list.
+	 * 
+	 * @exception InvalidSynchronizationException
+	 *                Thrown if the participant is not known of by the
+	 *                coordinator.
+	 * @exception WrongStateException
+	 *                Thrown if the state of the coordinator does not allow the
+	 *                participant to be removed (e.g., in a two-phase protocol
+	 *                the coordinator is committing.)
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void delistSynchronization (Synchronization act)
+			throws InvalidSynchronizationException, NoCoordinatorException,
+			WrongStateException, SystemException
+	{
+		_coordManager.delistSynchronization(act);
+	}
+
+	/**
+	 * The participant has rolled back. Mark the transaction as rolled back.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * 
+	 * @exception NoActivityException
+	 *                Thrown if there is no activity associated with the current
+	 *                thread.
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is not in a state that allows
+	 *                participants to be removed.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void participantRolledback (String participantId)
+			throws NoActivityException, InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+		_coordManager.participantRolledBack(participantId);
+
+		try
+		{
+			setCancelOnly();
+		}
+		catch (Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	/**
+	 * A participant is readonly. Remove it from the list.
+	 * 
+	 * @param Participant
+	 *            act The participant.
+	 * 
+	 * @exception NoActivityException
+	 *                Thrown if there is no activity associated with the current
+	 *                thread.
+	 * @exception InvalidParticipantException
+	 *                Thrown if the participant is invalid.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 */
+
+	public void participantReadOnly (String participantId)
+			throws NoActivityException, InvalidParticipantException,
+			SystemException
+	{
+		_coordManager.participantReadOnly(participantId);
+	}
+
+	/**
+	 * @return the token representing the current activity context hierarchy, or
+	 *         null if there is none associated with the invoking thread.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 */
+
+	public ActivityHierarchy currentActivity () throws SystemException
+	{
+		return UserActivityFactory.userActivity().currentActivity();
+	}
+
+	/**
+	 * @return the unique coordinator identifier.
+	 */
+
+	public CoordinatorId identifier () throws NoActivityException,
+			SystemException
+	{
+		ActivityImple curr = current();
+
+		if (curr == null)
+			throw new NoActivityException();
+
+		return _coordManager.identifier();
+	}
+
+	public final ActivityImple current ()
+	{
+		UserActivityImple imple = (UserActivityImple) UserActivityFactory.userActivity();
+
+		return imple.current();
+	}
+	
+	public final CoordinatorControl coordinatorControl ()
+	{
+		return _coordManager;
+	}
+
+	private CoordinatorControl _coordManager;
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,761 @@
+/*
+ * 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: ParticipantRecord.java,v 1.11 2005/06/09 09:41:27 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.ObjectType;
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.arjuna.gandiva.ClassName;
+
+import com.arjuna.mw.wscf.model.twophase.vote.*;
+import com.arjuna.mw.wscf.model.twophase.participants.Participant;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import java.io.PrintWriter;
+
+/**
+ * Arjuna abstract record to handle two-phase participants.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantRecord.java,v 1.11 2005/06/09 09:41:27 nmcl Exp $
+ */
+
+public class ParticipantRecord extends
+		com.arjuna.ats.arjuna.coordinator.AbstractRecord
+{
+
+	/**
+	 * Constructor.
+	 *
+	 * @param theResource
+	 *            is the proxy that allows us to call out to the object.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_1
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_1] -
+	 *          ParticipantRecord {0} - null participant provided!
+	 */
+
+	public ParticipantRecord (Participant theResource, Uid id)
+	{
+		super(id, null, ObjectType.ANDPERSISTENT);
+
+		_resourceHandle = theResource;
+		_timeout = 0;
+		_coordId = new CoordinatorIdImple(id);
+
+		if (theResource == null)
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_1", new Object[]
+			{ order() });
+	}
+
+	public void finalize () throws Throwable
+	{
+		_resourceHandle = null;
+
+		super.finalize();
+	}
+
+	/**
+	 * Override AbstractRecord.propagateOnCommit
+	 */
+
+	public boolean propagateOnCommit ()
+	{
+		return true;
+	}
+
+	/**
+	 * The type of this abstract record.
+	 */
+
+	public int typeIs ()
+	{
+		// TODO add specific record type.
+
+		return RecordType.USER_DEF_FIRST0;
+	}
+
+	/**
+	 * The class name for this record.
+	 */
+
+	public ClassName className ()
+	{
+		return new ClassName("WSATParticipantRecord");
+	}
+
+	/**
+	 * The internal value.
+	 */
+
+	public Object value ()
+	{
+		return _resourceHandle;
+	}
+
+	/**
+	 * Set the internal value. Not allowed for this class.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_2
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_2] -
+	 *          ParticipantRecord.setValue() called illegally.
+	 */
+
+	public void setValue (Object o)
+	{
+		wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_2");
+	}
+
+	/**
+	 * The record is being driven through nested rollback.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_3
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_3] -
+	 *          ParticipantRecord.nestedAbort {0} caught: {1}
+	 */
+
+	// TODO
+	public int nestedAbort ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_3", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested commit.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_4
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_4] -
+	 *          ParticipantRecord.nestedCommit {0} caught: {1}
+	 */
+
+	public int nestedCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_4", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested prepare.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_5
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_5] -
+	 *          ParticipantRecord.nestedPrepare {0} caught: {1}
+	 */
+
+	public int nestedPrepare ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (Exception e6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_5", new Object[]
+			{ order(), e6 });
+
+			e6.printStackTrace();
+
+			return TwoPhaseOutcome.HEURISTIC_HAZARD;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level rollback.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_6
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_6] -
+	 *          ParticipantRecord.topLevelAbort {0} caught: {1}
+	 */
+
+	public int topLevelAbort ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_rolledback)
+						_resourceHandle.cancel();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (HeuristicHazardException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+				catch (HeuristicMixedException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_MIXED;
+				}
+				catch (HeuristicConfirmException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_COMMIT;
+				}
+				catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_6", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level commit.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_7
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_7] -
+	 *          ParticipantRecord.topLevelCommit {0} caught: {1}
+	 */
+
+	public int topLevelCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					if (!_rolledback && !_readonly)
+						_resourceHandle.confirm();
+
+					if (_rolledback)
+						throw new HeuristicHazardException();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.NOT_PREPARED; // should be HEURISTIC_HAZARD?
+				}
+				catch (HeuristicHazardException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+				catch (HeuristicMixedException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_MIXED;
+				}
+				catch (HeuristicCancelException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_ROLLBACK;
+				}
+                catch(SystemCommunicationException ex)
+                {
+                    return TwoPhaseOutcome.FINISH_ERROR;
+                }
+                catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_7", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level prepare.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_8
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_8] -
+	 *          ParticipantRecord.topLevelPrepare {0} caught: {1}
+	 */
+
+	public int topLevelPrepare ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				if (_rolledback)
+					return TwoPhaseOutcome.PREPARE_NOTOK;
+
+				if (_readonly)
+					return TwoPhaseOutcome.PREPARE_READONLY;
+
+				try
+				{
+					Vote res = _resourceHandle.prepare();
+
+					if (res instanceof VoteConfirm)
+					{
+						return TwoPhaseOutcome.PREPARE_OK;
+					}
+					else
+					{
+						if (res instanceof VoteReadOnly)
+						{
+							_readonly = true;
+
+							return TwoPhaseOutcome.PREPARE_READONLY;
+						}
+						else
+						{
+							_rolledback = true;
+
+							return TwoPhaseOutcome.PREPARE_NOTOK;
+						}
+					}
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (HeuristicHazardException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+				catch (HeuristicMixedException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_MIXED;
+				}
+				catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+			}
+			else
+				return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+		catch (Exception e6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_8", new Object[]
+			{ order(), e6 });
+
+			e6.printStackTrace();
+
+			return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+	}
+
+	/**
+	 * The record is being driven through nested commit and is the only
+	 * resource.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_9
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_9] -
+	 *          ParticipantRecord.nestedOnePhaseCommit {0} caught: {1}
+	 */
+
+	public int nestedOnePhaseCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				return TwoPhaseOutcome.FINISH_ERROR;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_9", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record is being driven through top-level commit and is the only
+	 * resource.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_10
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_10] -
+	 *          ParticipantRecord.topLevelOnePhaseCommit {0} caught: {1}
+	 */
+
+	public int topLevelOnePhaseCommit ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				if (_rolledback)
+					return TwoPhaseOutcome.FINISH_ERROR;
+
+				if (_readonly)
+					return TwoPhaseOutcome.FINISH_OK;
+
+				try
+				{
+					_resourceHandle.confirmOnePhase();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (WrongStateException ex)
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (HeuristicHazardException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+				catch (HeuristicMixedException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_MIXED;
+				}
+				catch (HeuristicCancelException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_ROLLBACK;
+				}
+				// TODO explicit in the signature
+				catch (ParticipantCancelledException ex)  // a type of SystemException
+				{
+					return TwoPhaseOutcome.FINISH_ERROR;
+				}
+				catch (SystemException ex)
+				{
+					return TwoPhaseOutcome.HEURISTIC_HAZARD;
+				}
+
+				return TwoPhaseOutcome.FINISH_OK;
+			}
+			else
+				return TwoPhaseOutcome.FINISH_ERROR;
+		}
+		catch (Exception ex6)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_10", new Object[]
+			{ order(), ex6 });
+
+			ex6.printStackTrace();
+
+			return TwoPhaseOutcome.FINISH_ERROR;
+		}
+	}
+
+	/**
+	 * The record generated a heuristic and can now forget about it.
+	 *
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_11
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_11] -
+	 *          ParticipantRecord.forgetHeuristic for {0} called without a
+	 *          resource!
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_12
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_12] -
+	 *          ParticipantRecord.forgetHeuristic {0} caught exception: {1}
+	 */
+
+	public boolean forgetHeuristic ()
+	{
+		try
+		{
+			if (_resourceHandle != null)
+			{
+				try
+				{
+					_resourceHandle.forget();
+				}
+				catch (InvalidParticipantException ex)
+				{
+					return false;
+				}
+				catch (WrongStateException ex)
+				{
+					return false;
+				}
+				catch (SystemException ex)
+				{
+					return false;
+				}
+
+				return true;
+			}
+			else
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_11", new Object[]
+				{ order() });
+			}
+		}
+		catch (Exception e)
+		{
+			wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_12", new Object[]
+			{ order(), e });
+
+			e.printStackTrace();
+		}
+
+		return false;
+	}
+
+	public static AbstractRecord create ()
+	{
+		return new ParticipantRecord();
+	}
+
+	public void remove (AbstractRecord toDelete)
+	{
+		toDelete = null;
+	}
+
+	public void print (PrintWriter strm)
+	{
+		super.print(strm);
+
+		strm.print("ParticipantRecord");
+		strm.print(_resourceHandle);
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_13
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_13] -
+	 *          ParticipantRecord.restore_state: {0}
+	 */
+
+	public boolean restore_state (InputObjectState os, int t)
+	{
+		boolean result = super.restore_state(os, t);
+
+		if (result)
+		{
+			try
+			{
+                String resourcehandleImplClassName = os.unpackString();
+                _resourceHandle = (Participant)Class.forName(resourcehandleImplClassName).newInstance();
+
+                result = _resourceHandle.restore_state(os);
+
+				if (result)
+					_timeout = os.unpackLong();
+
+				/*
+				 * TODO: unpack qualifiers and coord id.
+				 */
+			}
+			catch (Exception ex)
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_13", new Object[]
+				{ ex });
+
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_14
+	 *          [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_14] -
+	 *          ParticipantRecord.save_state: {0}
+	 */
+
+	public boolean save_state (OutputObjectState os, int t)
+	{
+		boolean result = super.save_state(os, t);
+
+		if (result)
+		{
+			try
+			{
+                os.packString(_resourceHandle.getClass().getName()); // TODO: a shorter value whould be more efficient.
+                result = _resourceHandle.save_state(os);
+
+				if (result)
+					os.packLong(_timeout);
+
+				/*
+				 * TODO: pack qualifiers and coord id.
+				 */
+			}
+			catch (Exception ex)
+			{
+				wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_14", new Object[]
+				{ ex });
+
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	public String type ()
+	{
+		return "/StateManager/AbstractRecord/WSCF/ArjunaCore/ParticipantRecord";
+	}
+
+	public boolean doSave ()
+	{
+		return true;
+	}
+
+	public void merge (AbstractRecord a)
+	{
+	}
+
+	public void alter (AbstractRecord a)
+	{
+	}
+
+	public boolean shouldAdd (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldAlter (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldMerge (AbstractRecord a)
+	{
+		return false;
+	}
+
+	public boolean shouldReplace (AbstractRecord rec)
+	{
+		return false;
+	}
+
+	public final void rolledback ()
+	{
+		_rolledback = true;
+	}
+
+	public final void readonly ()
+	{
+		_readonly = true;
+	}
+
+	/*
+	 * Protected constructor used by crash recovery.
+	 */
+
+	protected ParticipantRecord ()
+	{
+		super();
+
+		_resourceHandle = null;
+		_timeout = 0;
+		_coordId = null;
+	}
+
+	private Participant _resourceHandle;
+
+	private long _timeout;
+
+	private CoordinatorIdImple _coordId;
+
+	private boolean _rolledback = false;
+
+	private boolean _readonly = false;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/SynchronizationRecord.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/SynchronizationRecord.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/SynchronizationRecord.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,146 @@
+/*
+ * 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: SynchronizationRecord.java,v 1.5 2005/05/19 12:13:38 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.participants.Synchronization;
+
+/**
+ * An implementation of the ArjunaCore synchronization interface.
+ * Synchronizations take part in the pre- and post- two-phase protocol and
+ * are not persistent.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SynchronizationRecord.java,v 1.5 2005/05/19 12:13:38 nmcl Exp $
+ */
+
+public class SynchronizationRecord implements com.arjuna.ats.arjuna.coordinator.SynchronizationRecord
+{
+
+    /**
+     * Constructor.
+     *
+     * @param theResource is the proxy that allows us to call out to the
+     * object.
+     *
+     * @message com.arjuna.mwlabs.wscf.model.twophase.arjunacore.SynchronizationRecord_1 [com.arjuna.mwlabs.wscf.model.twophase.arjunacore.SynchronizationRecord_1] - SynchronizationRecord {0} - null participant provided!
+     */
+
+    public SynchronizationRecord (Synchronization theResource, Uid id)
+    {
+	_resourceHandle = theResource;
+	_id = new CoordinatorIdImple(id);
+
+	if (_resourceHandle == null)
+	    wscfLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord_1",
+					  new Object[]{_id});
+    }
+
+    public void finalize () throws Throwable
+    {
+        _resourceHandle = null;
+    }
+
+    public boolean beforeCompletion ()
+    {
+	if (_resourceHandle != null)
+	{
+	    try
+	    {
+		_resourceHandle.beforeCompletion();
+
+		return true;
+	    }
+	    catch (Exception ex)
+	    {
+		return false;
+	    }
+	}
+	else
+	    return false;
+    }
+
+    public boolean afterCompletion (int status)
+    {
+	if (_resourceHandle != null)
+	{
+	    try
+	    {
+		_resourceHandle.afterCompletion(convertStatus(status));
+	    }
+	    catch (Exception ex)
+	    {
+	    }
+
+	    return true;
+        }
+
+        return false;
+    }
+
+    public Uid get_uid ()
+    {
+	return _id;
+    }
+
+    public int compareTo(Object o) {
+        SynchronizationRecord sr = (SynchronizationRecord)o;
+        if(_id.equals(sr.get_uid())) {
+            return 0;
+        } else {
+            return _id.lessThan(sr.get_uid()) ? -1 : 1;
+        }
+    }
+
+    private final int convertStatus (int result)
+    {
+	switch (result)
+	{
+	case ActionStatus.COMMITTED:
+	case ActionStatus.COMMITTING:
+	    return CoordinationResult.CONFIRMED;
+	case ActionStatus.ABORTED:
+	case ActionStatus.ABORTING:
+	default:
+	    return CoordinationResult.CANCELLED;
+	}
+    }
+
+    private Synchronization    _resourceHandle;
+    private CoordinatorIdImple _id;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/TwoPhaseHLSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/TwoPhaseHLSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/TwoPhaseHLSImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,307 @@
+/*
+ * 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: TwoPhaseHLSImple.java,v 1.6.4.1 2005/11/22 10:34:18 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore;
+
+import com.arjuna.mw.wscf.model.twophase.api.*;
+import com.arjuna.mw.wscf.model.twophase.hls.TwoPhaseHLS;
+
+import com.arjuna.mw.wscf.common.Environment;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mw.wscf.api.UserCoordinatorService;
+
+import com.arjuna.mw.wsas.context.Context;
+
+import com.arjuna.mw.wsas.ActivityManagerFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.activity.HLS;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.HLSError;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * The ArjunaCore coordination service implementation.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseHLSImple.java,v 1.6.4.1 2005/11/22 10:34:18 kconner Exp $
+ * @since 1.0.
+ */
+
+public class TwoPhaseHLSImple implements TwoPhaseHLS, UserCoordinatorService
+{
+
+	public TwoPhaseHLSImple ()
+	{
+		try
+		{
+			ActivityManagerFactory.activityManager().addHLS((HLS) this);
+		}
+		catch (Exception ex)
+		{
+			throw new HLSError(ex.toString());
+		}
+
+		_coordinatorService = new CoordinatorServiceImple();
+		_coordManager = new CoordinatorControl();
+	}
+
+	public UserCoordinatorService coordinatorService ()
+	{
+		return this;
+	}
+
+	public UserCoordinator userCoordinator ()
+	{
+		return _coordinatorService;
+	}
+
+	public CoordinatorManager coordinatorManager ()
+	{
+		return _coordinatorService;
+	}
+
+	/**
+	 * An activity has begun and is active on the current thread.
+	 */
+
+	public void begun () throws SystemException
+	{
+		_coordManager.begin();
+	}
+
+	/**
+	 * The current activity is completing with the specified completion status.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use.
+	 * 
+	 * @return The result of terminating the relationship of this HLS and the
+	 *         current activity.
+	 */
+
+	public Outcome complete (CompletionStatus cs) throws SystemException
+	{
+		return _coordManager.complete(cs);
+	}
+
+	/**
+	 * The activity has been suspended.
+	 */
+
+	public void suspended () throws SystemException
+	{
+		_coordManager.suspend();
+	}
+
+	/**
+	 * The activity has been resumed on the current thread.
+	 */
+
+	public void resumed () throws SystemException
+	{
+		_coordManager.resume();
+	}
+
+	/**
+	 * The activity has completed and is no longer active on the current thread.
+	 */
+
+	public void completed () throws SystemException
+	{
+		_coordManager.completed();
+	}
+
+	/**
+	 * The HLS name.
+	 */
+
+	public String identity () throws SystemException
+	{
+		return "TwoPhaseHLSImple";
+	}
+
+	/**
+	 * The activity service maintains a priority ordered list of HLS
+	 * implementations. If an HLS wishes to be ordered based on priority then it
+	 * can return a non-negative value: the higher the value, the higher the
+	 * priority and hence the earlier in the list of HLSes it will appear (and
+	 * be used in).
+	 * 
+	 * @return a positive value for the priority for this HLS, or zero/negative
+	 *         if the order is not important.
+	 */
+
+	public int priority () throws SystemException
+	{
+		return 0;
+	}
+
+	/**
+	 * Return the context augmentation for this HLS, if any on the current
+	 * activity.
+	 * 
+	 * @param ActivityHierarchy
+	 *            current The handle on the current activity hierarchy. The HLS
+	 *            may use this when determining what information to place in its
+	 *            context data.
+	 * 
+	 * @return a context object or null if no augmentation is necessary.
+	 */
+
+	/*
+	 * TODO This needs refactoring. It's true that the context format should be
+	 * configurable to allow the same implementation to be used in different
+	 * protocols (e.g., 2PC mapping to OTS or original Arjuna could use the same
+	 * protocol implementation, but the context formats are different.) However,
+	 * is this the best way of doing that?
+	 */
+
+	public Context context () throws SystemException
+	{
+		String contextImple = System.getProperty(Environment.TWO_PHASE_CONTEXT);
+
+		if (contextImple != null)
+		{
+			try
+			{
+				Class c = Class.forName(contextImple);
+				SOAPContext ctx = (SOAPContext) c.newInstance();
+
+				ctx.initialiseContext(_coordManager.currentCoordinator());
+
+				return ctx;
+			}
+			catch (Exception ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+		else
+			return new com.arjuna.mwlabs.wscf.model.twophase.arjunacore.context.soap.ArjunaContextImple(
+					_coordManager.currentCoordinator());
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		return _coordManager.coordinate(cs);
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the status of the current coordinator. If there is no activity
+	 *         associated with the thread then NoActivity will be returned.
+	 * 
+	 * @see com.arjuna.mw.wsas.status.Status
+	 */
+
+	public com.arjuna.mw.wsas.status.Status status () throws SystemException
+	{
+		return _coordManager.status();
+	}
+
+	/**
+	 * Not supported by basic ArjunaCore.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return the complete list of qualifiers that have been registered with
+	 *         the current coordinator.
+	 */
+
+	public Qualifier[] qualifiers () throws NoCoordinatorException,
+			SystemException
+	{
+		return _coordManager.qualifiers();
+	}
+
+	/**
+	 * @exception SystemException
+	 *                Thrown if any error occurs.
+	 * 
+	 * @return The unique identity of the current coordinator.
+	 */
+
+	public CoordinatorId identifier () throws NoCoordinatorException,
+			SystemException
+	{
+		return _coordManager.identifier();
+	}
+
+	public static String className ()
+	{
+		return TwoPhaseHLSImple.class.getName();
+	}
+
+	private CoordinatorControl _coordManager;
+	private CoordinatorServiceImple _coordinatorService;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/context/soap/ArjunaContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/context/soap/ArjunaContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/context/soap/ArjunaContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,110 @@
+/*
+ * 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.7.4.1 2005/11/22 10:34:10 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore.context.soap;
+
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator;
+
+import com.arjuna.ats.arjuna.coordinator.ActionHierarchy;
+
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.Element;
+
+/**
+ * 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.7.4.1 2005/11/22 10:34:10 kconner Exp $
+ */
+
+public class ArjunaContextImple implements SOAPContext
+{
+
+    /**
+     * Incomplete. Need things like the Coordinator URI!
+     */
+
+    public ArjunaContextImple (ACCoordinator currentCoordinator)
+    {
+	DocumentBuilder builder = DomUtil.getDocumentBuilder();
+	org.w3c.dom.Document doc = builder.newDocument();
+	
+	_context = doc.createElement(_contextName);
+	_context.appendChild(doc.createComment("WARNING: example Arjuna coordinator hierarchy only!"));
+	
+	if (currentCoordinator != null)
+	{
+	    ActionHierarchy hier = currentCoordinator.getHierarchy();
+	
+	    for (int i = 0; i < hier.depth(); i++)
+	    {
+		org.w3c.dom.Element elem = doc.createElement(_coordName);
+		
+		elem.appendChild(doc.createTextNode("http://arjuna.com?"+hier.getActionUid(i).stringForm()));
+		
+		_context.appendChild(elem);
+	    }
+	}
+    }
+
+    public void initialiseContext(Object param)
+    {
+    }
+    
+    public Element serialiseToElement(final Element element)
+    {
+        element.appendChild(_context) ;
+        return _context ;
+    }
+
+    public String identifier ()
+    {
+	return ArjunaContextImple.class.getName();
+    }
+
+    public String toString ()
+    {
+	return DomUtil.nodeAsString(_context);
+    }
+
+    private org.w3c.dom.Element _context;
+    
+    private static final String _contextName = "twophase-arjunacore-context";
+    private static final String _coordName = "coordinator-name";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,194 @@
+/*
+ * 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: SubordinateCoordinator.java,v 1.1 2005/05/19 12:13:39 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.coordinator.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator;
+
+/**
+ * This class represents a specific coordination instance. It is essentially an
+ * ArjunaCore TwoPhaseCoordinator, which gives us access to two-phase with
+ * synchronization support but without thread management. This is the
+ * subordinate coordinator implementation which we use when doing
+ * interposition.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SubordinateCoordinator.java,v 1.1 2005/05/19 12:13:39 nmcl Exp $
+ * @since 2.0.
+ */
+
+public class SubordinateCoordinator extends ACCoordinator
+{
+	
+	public SubordinateCoordinator ()
+	{
+		super();
+	}
+
+	public SubordinateCoordinator (Uid recovery)
+	{
+		super(recovery);
+	}
+
+	/**
+	 * If the application requires and if the coordination protocol supports it,
+	 * then this method can be used to execute a coordination protocol on the
+	 * currently enlisted participants at any time prior to the termination of
+	 * the coordination scope.
+	 * 
+	 * This implementation only supports coordination at the end of the
+	 * activity.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The completion status to use when determining how to
+	 *            execute the protocol.
+	 * 
+	 * @exception WrongStateException
+	 *                Thrown if the coordinator is in a state the does not allow
+	 *                coordination to occur.
+	 * @exception ProtocolViolationException
+	 *                Thrown if the protocol is violated in some manner during
+	 *                execution.
+	 * @exception SystemException
+	 *                Thrown if any other error occurs.
+	 * 
+	 * @return The result of executing the protocol, or null.
+	 */
+
+	public Outcome coordinate (CompletionStatus cs) throws WrongStateException,
+			ProtocolViolationException, SystemException
+	{
+		throw new ProtocolViolationException();
+	}
+
+	public int end (boolean reportHeuristics)
+	{
+		return ActionStatus.INVALID;
+	}
+	
+	public int cancel ()
+	{
+		return ActionStatus.INVALID;
+	}
+	
+	public int doPrepare ()
+	{
+		if (super.beforeCompletion())
+			return super.prepare(true);
+		else
+		{
+			super.phase2Abort(true);
+			
+			return TwoPhaseOutcome.PREPARE_NOTOK;
+		}
+	}
+
+	public int doCommit ()
+	{
+		super.phase2Commit(true);
+
+		int toReturn;
+		
+		switch (super.getHeuristicDecision())
+		{
+		case TwoPhaseOutcome.PREPARE_OK:
+		case TwoPhaseOutcome.FINISH_OK:
+			toReturn = super.status();		
+			break;
+		case TwoPhaseOutcome.HEURISTIC_ROLLBACK:
+			toReturn = ActionStatus.H_ROLLBACK;
+			break;
+		case TwoPhaseOutcome.HEURISTIC_COMMIT:
+			toReturn = ActionStatus.H_COMMIT;
+			break;
+		case TwoPhaseOutcome.HEURISTIC_MIXED:
+			toReturn = ActionStatus.H_MIXED;
+			break;
+		case TwoPhaseOutcome.HEURISTIC_HAZARD:
+		default:
+			toReturn = ActionStatus.H_HAZARD;
+			break;
+		}
+		
+		super.afterCompletion(toReturn);
+		
+		return toReturn;
+	}
+
+	public int doRollback ()
+	{
+		super.phase2Abort(true);
+		
+		int toReturn;
+		
+		switch (super.getHeuristicDecision())
+		{
+		case TwoPhaseOutcome.PREPARE_OK:
+		case TwoPhaseOutcome.FINISH_OK:
+			toReturn = super.status();
+			break;
+		case TwoPhaseOutcome.HEURISTIC_ROLLBACK:
+			toReturn = ActionStatus.H_ROLLBACK;
+			break;
+		case TwoPhaseOutcome.HEURISTIC_COMMIT:
+			toReturn = ActionStatus.H_COMMIT;
+			break;
+		case TwoPhaseOutcome.HEURISTIC_MIXED:
+			toReturn = ActionStatus.H_MIXED;
+			break;
+		case TwoPhaseOutcome.HEURISTIC_HAZARD:
+		default:
+			toReturn = ActionStatus.H_HAZARD;
+			break;
+		}
+		
+		super.afterCompletion(toReturn);
+		
+		return toReturn;
+	}
+
+	public int doOnePhaseCommit ()
+	{	
+		return super.end(true);
+	}
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/Initializer.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/Initializer.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/Initializer.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * 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.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.protocols.ProtocolManager;
+
+import com.arjuna.mw.wsas.exceptions.*;
+
+import com.arjuna.mwlabs.wscf.utils.*;
+
+/**
+ * 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 Initializer
+{
+
+    public Initializer (ProtocolManager 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.Initializer_1 [com.arjuna.mwlabs.wscf.protocols.Initializer_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.Initializer_1")+impl);
+	    }
+	    else
+	    {
+		_manager.addProtocol(doc, impl);
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private ProtocolManager _manager;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/ProtocolEntry.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/ProtocolEntry.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/ProtocolEntry.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+/*
+ * 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: ProtocolEntry.java,v 1.5 2005/05/19 12:13:39 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.protocols;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+/**
+ * When an XML coordination protocol definition is loaded, an instance of this
+ * class is created to manage it within the registry.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolEntry.java,v 1.5 2005/05/19 12:13:39 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolEntry
+{
+
+    public ProtocolEntry (org.w3c.dom.Document doc)
+    {
+	_doc = doc;
+	_implementation = null;
+
+	org.w3c.dom.Element rootElement = _doc.getDocumentElement();
+		    
+	_protocolType = DomUtil.getTextNode(rootElement, CoordinatorXSD.coordinatorType).getNodeValue();
+
+	/*
+	 * Optional part of schema.
+	 */
+
+	org.w3c.dom.Text name = DomUtil.getTextNode(rootElement, CoordinatorXSD.coordinatorName);
+	
+	if (name != null)
+	    _protocolName = name.getNodeValue();
+	else
+	    _protocolName = null;
+    }
+
+    public ProtocolEntry (org.w3c.dom.Document doc, Object implementation)
+    {
+	_doc = doc;
+	_implementation = implementation;
+
+	org.w3c.dom.Element rootElement = _doc.getDocumentElement();
+		    
+	_protocolType = DomUtil.getTextNode(rootElement, CoordinatorXSD.coordinatorType).getNodeValue();
+
+	org.w3c.dom.Text name = DomUtil.getTextNode(rootElement, CoordinatorXSD.coordinatorName);
+	
+	if (name != null)
+	    _protocolName = name.getNodeValue();
+	else
+	    _protocolName = null;	
+    }
+    
+    public final org.w3c.dom.Document document ()
+    {
+	return _doc;
+    }
+    
+    public final Object implementationClass ()
+    {
+	return _implementation;
+    }
+
+    public final String protocolType ()
+    {
+	return _protocolType;
+    }
+    
+    public final String protocolName ()
+    {
+	return _protocolName;
+    }
+    
+    public boolean equals (Object obj)
+    {
+	if (obj == null)
+	    return false;
+	else
+	{
+	    if (obj == this)
+		return true;
+	    else
+	    {
+		if (obj instanceof ProtocolEntry)
+		{
+		    ProtocolEntry entry = (ProtocolEntry) obj;
+		    org.w3c.dom.Element rootElement = entry.document().getDocumentElement();
+		    String ptype = DomUtil.getTextNode(rootElement, CoordinatorXSD.coordinatorType).getNodeValue();
+
+		    return _protocolType.equals(ptype);
+		}
+	    }
+	    
+	    return false;
+	}
+    }
+
+    public int hashCode ()
+    {
+	return _protocolType.hashCode();
+    }
+
+    public String toString ()
+    {
+	return DomUtil.nodeAsString(_doc);
+    }
+    
+    private org.w3c.dom.Document _doc;
+    private Object               _implementation;
+    private String               _protocolType;
+    private String               _protocolName;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/DocComparitor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/DocComparitor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/DocComparitor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,86 @@
+/*
+ * 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: DocComparitor.java,v 1.4 2005/05/19 12:13:39 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.utils;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mw.wscf.utils.CoordinationXML;
+
+/**
+ * The DocComparitor takes two XML documents describing a coordinator's protocol
+ * and tests for equality. Two documents are equal if the have exactly the same
+ * elements and attributes, no matter what the order of occurrence.
+ * 
+ * The comapritor may be extended to allow subset or superset comparisons.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DocComparitor.java,v 1.4 2005/05/19 12:13:39 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DocComparitor
+{
+
+	public DocComparitor ()
+	{
+	}
+
+	/**
+	 * Are the two documents equal? We assume that the protocol names are
+	 * unique, so can check for equality simply on that. If we want to check
+	 * individual elements and attributes then we could.
+	 * 
+	 * @message com.arjuna.mwlabs.wscf.utils.DocComparitor_1
+	 *          [com.arjuna.mwlabs.wscf.utils.DocComparitor_1] - First parameter
+	 *          is null!
+	 * @message com.arjuna.mwlabs.wscf.utils.DocComparitor_2
+	 *          [com.arjuna.mwlabs.wscf.utils.DocComparitor_2] - Second
+	 *          parameter is null!
+	 */
+
+	public boolean equals (org.w3c.dom.Document doc1, org.w3c.dom.Document doc2)
+	{
+		if (doc1 == null)
+			throw new IllegalArgumentException(wscfLogger.log_mesg
+					.getString("com.arjuna.mwlabs.wscf.utils.DocComparitor_1"));
+
+		if (doc2 == null)
+			throw new IllegalArgumentException(wscfLogger.log_mesg
+					.getString("com.arjuna.mwlabs.wscf.utils.DocComparitor_2"));
+
+		CoordinationXML protocol1 = new CoordinationXML(doc1);
+		CoordinationXML protocol2 = new CoordinationXML(doc2);
+
+		return protocol1.equals(protocol2);
+	}
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/ProtocolLocator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/ProtocolLocator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/utils/ProtocolLocator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,113 @@
+/*
+ * 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: ProtocolLocator.java,v 1.8 2005/05/19 12:13:39 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.utils;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+
+import com.arjuna.mwlabs.wscf.exceptions.ProtocolLocationException;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.*;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import java.net.URL;
+
+/**
+ * Locates and loads a specified XML definition of a coordination protocol.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolLocator.java,v 1.8 2005/05/19 12:13:39 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolLocator
+{
+
+    public ProtocolLocator (String theType)
+    {
+	_className = theType.replace(_packageSeparator, _resourceSeparator);
+	_xmlName = _className+".xml";
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.utils.ProtocolLocator_1 [com.arjuna.mwlabs.wscf.utils.ProtocolLocator_1] - not found
+     * @message com.arjuna.mwlabs.wscf.utils.ProtocolLocator_2 [com.arjuna.mwlabs.wscf.utils.ProtocolLocator_2] - Failed to create: 
+     */
+     
+    public final org.w3c.dom.Document getProtocol () throws FileNotFoundException, ProtocolLocationException
+    {
+	try
+	{
+	    URL url = ProtocolLocator.class.getResource(_resourceSeparator+_xmlName);
+
+	    if (url == null)
+	    {
+		throw new FileNotFoundException(_xmlName+" "+wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.utils.ProtocolLocator_1"));
+	    }
+	    else
+	    {
+		DocumentBuilder builder = DomUtil.getDocumentBuilder();
+		org.w3c.dom.Document doc = builder.parse(url.toExternalForm());
+	    
+		if (doc == null)
+		{
+		    throw new FileNotFoundException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.utils.ProtocolLocator_2")+" "+_xmlName);
+		}
+		else
+		    return doc;
+	    }
+	}
+	catch (FileNotFoundException ex)
+	{
+	    throw ex;
+	}
+	catch (IOException ex)
+	{
+	    throw new FileNotFoundException(ex.toString());
+	}
+	catch (Exception ex)
+	{
+	    throw new ProtocolLocationException(ex.toString());
+	}
+    }
+
+    private String _className;
+    private String _xmlName;
+    
+    private final static char _packageSeparator = '.';
+    private final static char _resourceSeparator = '/';
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,156 @@
+/*
+ * 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: DemoParticipant.java,v 1.4 2004/03/15 13:25:14 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+import com.arjuna.ats.arjuna.ObjectType;
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.arjuna.gandiva.ClassName;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.messages.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import java.util.Hashtable;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoParticipant.java,v 1.4 2004/03/15 13:25:14 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoParticipant implements Participant
+{
+
+    public DemoParticipant ()
+    {
+	this(true);
+    }
+
+    public DemoParticipant (boolean readonly)
+    {
+	_readonly = readonly;
+	_id = new Uid();
+    }
+    
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	System.out.println("DemoParticipant.processMessage ( "+notification+" ) : "+_id);
+	
+	if ((notification instanceof NestedPrepare) || (notification instanceof TopLevelPrepare))
+	{
+	    if (_readonly)
+	    {
+		System.out.println("\nReturning read-only");
+	    
+		return new VoteReadOnly();
+	    }
+	    else
+	    {
+		System.out.println("\nReturning commit");
+	    
+		return new VoteConfirm();
+	    }
+	}
+	else
+	{
+	    if ((notification instanceof NestedConfirm) || (notification instanceof TopLevelConfirm))
+	    {
+		System.out.println("\nReturning finish-ok");
+
+		return new CoordinationOutcome(TwoPhaseOutcome.FINISH_OK);
+	    }
+	    else
+	    {
+		if ((notification instanceof NestedCancel) || (notification instanceof TopLevelCancel))
+		{
+		    System.out.println("\nReturning finish-ok");
+
+		    return new CoordinationOutcome(TwoPhaseOutcome.FINISH_OK);
+		}
+		else
+		{
+		    if ((notification instanceof TopLevelOnePhaseCommit) || (notification instanceof NestedOnePhaseCommit))
+		    {
+			System.out.println("\nOne-phase commit ok");
+			
+			return new CoordinationOutcome(TwoPhaseOutcome.FINISH_OK);
+		    }
+		    else
+		    {
+			System.out.println("\nReturning finish-error");
+		
+			return new CoordinationOutcome(TwoPhaseOutcome.FINISH_ERROR);
+		    }
+		}
+	    }
+	}
+    }
+    
+    public String identity () throws SystemException
+    {
+	return "DemoParticipant: "+_id;
+    }
+
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return true;
+    }
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return true;
+    }
+
+    private boolean _readonly;
+    private Uid     _id;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,171 @@
+/*
+ * 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: DemoXAParticipant.java,v 1.4 2004/03/15 13:25:14 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.arjuna.state.*;
+
+import com.arjuna.mw.wsas.completionstatus.Failure;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes.*;
+import com.arjuna.mw.wscf.model.as.coordinator.xa.messages.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import javax.transaction.xa.*;
+
+import java.util.Hashtable;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoXAParticipant.java,v 1.4 2004/03/15 13:25:14 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoXAParticipant implements Participant
+{
+
+    public DemoXAParticipant ()
+    {
+	this(true);
+    }
+
+    public DemoXAParticipant (boolean readonly)
+    {
+	_readonly = readonly;
+	_id = new Uid();
+    }
+    
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	System.out.println("DemoXAParticipant.processMessage ( "+notification+" ) : "+_id);
+	
+	if (notification instanceof XAPrepare)
+	{
+	    if (_readonly)
+	    {
+		System.out.println("\nReturning read-only to prepare");
+	    
+		return new XAPrepareOutcome(XAResource.XA_RDONLY);
+	    }
+	    else
+	    {
+		System.out.println("\nReturning commit to prepare");
+	    
+		return new XAPrepareOutcome(XAResource.XA_OK);
+	    }
+	}
+	else
+	{
+	    if (notification instanceof XACommit)
+	    {
+		if (((XACommit) notification).onePhaseCommit())
+		{
+		    System.out.println("\nOne-phase commit ok");
+			
+		    return new XAOutcome();
+		}
+		else
+		{
+		    System.out.println("\nCommit ok");
+			
+		    return new XAOutcome();
+		}
+	    }
+	    else
+	    {
+		if (notification instanceof XAStart)
+		{
+		    System.out.println("\nStarting ok");
+		    
+		    return new XAOutcome();
+		}
+		else
+		{
+		    if (notification instanceof XAEnd)
+		    {
+			System.out.println("\nEnding ok");
+		    
+			return new XAOutcome();
+		    }
+		    else
+		    {
+			if (notification instanceof XARollback)
+			{
+			    System.out.println("\nRolling back ok");
+			
+			    return new XAOutcome(Failure.instance());
+			}
+			else
+			{
+			    System.out.println("\nReturning finish-error for "+notification);
+		
+			    return new XAOutcome(new XAException(XAException.XAER_INVAL));
+			}
+		    }
+		}
+	    }
+	}
+    }
+    
+    public String identity () throws SystemException
+    {
+	return "DemoXAParticipant: "+_id;
+    }
+
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return true;
+    }
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return true;
+    }
+
+    private boolean _readonly;
+    private Uid     _id;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAResource.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAResource.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/DemoXAResource.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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: DemoXAResource.java,v 1.1 2003/01/07 10:37:17 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+import javax.transaction.xa.*;
+
+public class DemoXAResource implements XAResource
+{
+    
+    public DemoXAResource ()
+    {
+    }
+    
+    public void commit (Xid xid, boolean onePhase) throws XAException
+    {
+	System.out.println("DemoXAResource.commit "+xid);
+    }
+
+    public void end (Xid xid, int flags) throws XAException
+    {
+	System.out.println("DemoXAResource.end "+xid);
+    }
+
+    public void forget (Xid xid) throws XAException
+    {
+	System.out.println("DemoXAResource.forget "+xid);
+    }
+    
+    public int getTransactionTimeout () throws XAException
+    {
+	System.out.println("DemoXAResource.getTransactionTimeout");
+
+	return 0;
+    }
+    
+    public int prepare (Xid xid) throws XAException
+    {
+	System.out.println("DemoXAResource.prepare "+xid);
+
+	return XAResource.XA_OK;
+    }
+
+    public Xid[] recover (int flag) throws XAException
+    {
+	System.out.println("DemoXAResource.recover "+flag);
+
+	return null;
+    }
+
+    public void rollback (Xid xid) throws XAException
+    {
+	System.out.println("DemoXAResource.rollback "+xid);
+    }
+
+    public boolean setTransactionTimeout (int seconds) throws XAException
+    {
+	System.out.println("DemoXAResource.setTransactionTimeout "+seconds);
+
+	return true;
+    }
+
+    public void start (Xid xid, int flags) throws XAException
+    {
+	System.out.println("DemoXAResource.start "+xid);
+    }
+
+    public boolean isSameRM (XAResource xares) throws XAException
+    {
+	System.out.println("DemoXAResource.isSameRM "+xares);
+       
+	return (xares == this);
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/FailureParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/FailureParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/FailureParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,197 @@
+/*
+ * 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: FailureParticipant.java,v 1.4 2004/03/15 13:25:14 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+import com.arjuna.ats.arjuna.ObjectType;
+import com.arjuna.ats.arjuna.coordinator.*;
+import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.arjuna.gandiva.ClassName;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Participant;
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.messages.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import java.util.Hashtable;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: FailureParticipant.java,v 1.4 2004/03/15 13:25:14 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class FailureParticipant implements Participant
+{
+
+    public static final int NESTED_PREPARE = 0;
+    public static final int NESTED_CONFIRM = 1;
+    public static final int NESTED_CANCEL = 2;
+    public static final int TOPLEVEL_PREPARE = 3;
+    public static final int TOPLEVEL_CONFIRM = 4;
+    public static final int TOPLEVEL_CANCEL = 5;
+    
+    public FailureParticipant (int failure)
+    {
+	this(true, failure);
+    }
+
+    public FailureParticipant (boolean readonly, int failure)
+    {
+	_readonly = readonly;
+	_id = new Uid();
+	_failurePoint = failure;
+    }
+    
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	System.out.println("FailureParticipant.processMessage ( "+notification+" ) : "+_id);
+	
+	if ((notification instanceof NestedPrepare) || (notification instanceof TopLevelPrepare))
+	{
+	    if ((_failurePoint == NESTED_PREPARE) && (notification instanceof NestedPrepare))
+	    {
+		System.out.println("\nReturning cancel");
+
+		return new VoteCancel();
+	    }
+
+	    if ((_failurePoint == TOPLEVEL_PREPARE) && (notification instanceof TopLevelPrepare))
+	    {
+		System.out.println("\nReturning cancel");
+
+		return new VoteCancel();
+	    }
+	    
+	    if (_readonly)
+	    {
+		System.out.println("\nReturning read-only");
+	    
+		return new VoteReadOnly();
+	    }
+	    else
+	    {
+		System.out.println("\nReturning commit");
+	    
+		return new VoteConfirm();
+	    }
+	}
+	else
+	{
+	    if ((notification instanceof NestedConfirm) || (notification instanceof TopLevelConfirm))
+	    {
+		if ((_failurePoint == NESTED_CONFIRM) && (notification instanceof NestedConfirm))
+		{
+		    System.out.println("\nReturning finish-error");
+
+		    return new CoordinationOutcome(TwoPhaseOutcome.FINISH_ERROR);
+		}
+		
+		if ((_failurePoint == TOPLEVEL_CONFIRM) && (notification instanceof TopLevelConfirm))
+		{
+		    System.out.println("\nReturning finish-error");
+
+		    return new CoordinationOutcome(TwoPhaseOutcome.FINISH_ERROR);
+		}
+
+		System.out.println("\nReturning finish-ok");
+
+		return new CoordinationOutcome(TwoPhaseOutcome.FINISH_OK);
+	    }
+	    else
+	    {
+		if ((notification instanceof NestedCancel) || (notification instanceof TopLevelCancel))
+		{
+		    if ((_failurePoint == NESTED_CANCEL) && (notification instanceof NestedCancel))
+		    {
+			System.out.println("\nReturning finish-error");
+
+			return new CoordinationOutcome(TwoPhaseOutcome.FINISH_ERROR);
+		    }
+
+		    if ((_failurePoint == TOPLEVEL_CANCEL) && (notification instanceof TopLevelCancel))
+		    {
+			System.out.println("\nReturning finish-error");
+
+			return new CoordinationOutcome(TwoPhaseOutcome.FINISH_ERROR);
+		    }
+
+		    System.out.println("\nReturning finish-ok");
+
+		    return new CoordinationOutcome(TwoPhaseOutcome.FINISH_OK);
+		}
+		else
+		{
+		    System.out.println("\nReturning finish-error");
+		
+		    return new CoordinationOutcome(TwoPhaseOutcome.FINISH_ERROR);
+		}
+	    }
+	}
+    }
+    
+    public String identity () throws SystemException
+    {
+	return "FailureParticipant: "+_id;
+    }
+
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return true;
+    }
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return true;
+    }
+
+    private boolean _readonly;
+    private Uid     _id;
+    private int     _failurePoint;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/JTASynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/JTASynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/JTASynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: JTASynchronization.java,v 1.1 2003/01/07 10:37:17 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+import javax.transaction.xa.*;
+
+public class JTASynchronization implements javax.transaction.Synchronization
+{
+
+    public void beforeCompletion ()
+    {
+	System.out.println("beforeCompletion");
+    }
+
+    public void afterCompletion (int status)
+    {
+	System.out.println("afterCompletion :"+status);
+    }
+ 
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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: TwoPhaseParticipant.java,v 1.3 2005/01/15 21:21:06 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+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.twophase.exceptions.HeuristicCancelException;
+import com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicConfirmException;
+import com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicHazardException;
+import com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicMixedException;
+import com.arjuna.mw.wscf.model.twophase.participants.Participant;
+import com.arjuna.mw.wscf.model.twophase.vote.Vote;
+import com.arjuna.mw.wscf.model.twophase.vote.VoteConfirm;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseParticipant.java,v 1.3 2005/01/15 21:21:06 kconner Exp $
+ * @since 1.0.
+ */
+
+public class TwoPhaseParticipant implements Participant
+{
+    public TwoPhaseParticipant (String id)
+    {
+	_id = id;
+    }
+    
+    public Vote prepare () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, SystemException
+    {
+	System.out.println("TwoPhaseParticipant.prepare");
+	
+	return new VoteConfirm();
+    }
+
+    public void confirm () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCancelException, SystemException
+    {
+	System.out.println("TwoPhaseParticipant.confirm");
+    }
+    
+    public void cancel () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicConfirmException, SystemException
+    {
+	System.out.println("TwoPhaseParticipant.cancel");
+    }
+    
+    public void confirmOnePhase () throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCancelException, SystemException
+    {
+	System.out.println("TwoPhaseParticipant.confirmOnePhase");
+    }
+    
+    public void forget () throws InvalidParticipantException, WrongStateException, SystemException
+    {
+	System.out.println("TwoPhaseParticipant.forget");
+    }
+
+    public String id () throws SystemException
+    {
+	return _id;
+    }
+    
+    public boolean save_state(OutputObjectState os)
+    {
+        return false ;
+    }
+    
+    public boolean restore_state(InputObjectState os)
+    {
+        return false ;
+    }
+
+    private String _id;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/common/TwoPhaseSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TwoPhaseSynchronization.java,v 1.1 2003/01/07 10:37:17 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.common;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+import com.arjuna.mw.wscf.model.twophase.vote.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseSynchronization.java,v 1.1 2003/01/07 10:37:17 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TwoPhaseSynchronization implements Synchronization
+{
+
+    public TwoPhaseSynchronization ()
+    {
+    }
+
+    public void beforeCompletion () throws SystemException
+    {
+	System.out.println("TwoPhaseSynchronization.beforeCompletion");
+    }
+
+    public void afterCompletion (int status) throws SystemException
+    {
+	System.out.println("TwoPhaseSynchronization.afterCompletion ( "+CoordinationResult.stringForm(status)+" )");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel1.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel1.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel1.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TopLevel1.java,v 1.3.22.1 2005/11/22 10:34:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.jta;
+
+import javax.transaction.xa.XAException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes.XAOutcome;
+import com.arjuna.mw.wscf.utils.DomUtil;
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+import com.arjuna.mwtests.wscf.common.DemoXAParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel1.java,v 1.3.22.1 2005/11/22 10:34:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel1
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	String className = "com.arjuna.mwlabs.wscf.generic.coordinator.jta.JTAHLS";
+	org.w3c.dom.Document implementationDoc = null;
+	
+	System.setProperty("com.arjuna.mw.wscf.protocolImplementation", className);
+	
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(className);
+
+	    implementationDoc = pl.getProtocol();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    System.exit(0);
+	}
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator(implementationDoc);
+	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder builder = factory.newDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	    org.w3c.dom.Element root = doc.createElement("TopLevel1-test");
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+        
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    
+	    doc.appendChild(root);
+
+	    System.out.println(DomUtil.nodeAsString(doc));
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager(implementationDoc);
+	    
+	    //	    cm.addParticipant(new DemoXAParticipant(), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoXAParticipant(), 0, null);
+
+	    System.out.println("\nEnding coordination.");
+	    
+	    Outcome res = ua.end();
+
+	    if (res instanceof XAOutcome)
+	    {
+		XAOutcome out = (XAOutcome) res;
+		
+		if (out.data() == null)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+((XAException) out.data()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel2.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel2.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel2.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TopLevel2.java,v 1.3.22.1 2005/11/22 10:34:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.jta;
+
+import javax.transaction.xa.XAException;
+import javax.xml.parsers.DocumentBuilder;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.completionstatus.Success;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes.XAOutcome;
+import com.arjuna.mw.wscf.utils.DomUtil;
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+import com.arjuna.mwtests.wscf.common.DemoXAParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel2.java,v 1.3.22.1 2005/11/22 10:34:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel2
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	String className = "com.arjuna.mwlabs.wscf.generic.coordinator.jta.JTAHLS";
+	org.w3c.dom.Document implementationDoc = null;
+	
+	System.setProperty("com.arjuna.mw.wscf.protocolImplementation", className);
+	
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(className);
+
+	    implementationDoc = pl.getProtocol();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    System.exit(0);
+	}
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator(implementationDoc);
+	    DocumentBuilder builder = DomUtil.getDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	    org.w3c.dom.Element root = doc.createElement("TopLevel2-test");
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+	    
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    doc.appendChild(root);
+
+	    System.out.println(DomUtil.nodeAsString(doc));
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager(implementationDoc);
+	    
+	    //	    cm.addParticipant(new DemoXAParticipant(), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoXAParticipant(), 0, null);
+
+	    System.out.println("\nEnding coordination.");
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    Outcome res = ua.end();
+
+	    if (res instanceof XAOutcome)
+	    {
+		XAOutcome out = (XAOutcome) res;
+		
+		if (out.data() == null)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+((XAException) out.data()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel3.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel3.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/jta/TopLevel3.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,143 @@
+/*
+ * 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: TopLevel3.java,v 1.3.22.1 2005/11/22 10:34:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.jta;
+
+import javax.transaction.xa.XAException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.completionstatus.Success;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.as.coordinator.xa.outcomes.XAOutcome;
+import com.arjuna.mw.wscf.utils.DomUtil;
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+import com.arjuna.mwtests.wscf.common.DemoXAParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel3.java,v 1.3.22.1 2005/11/22 10:34:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel3
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	String className = "com.arjuna.mwlabs.wscf.generic.coordinator.jta.JTAHLS";
+	org.w3c.dom.Document implementationDoc = null;
+	
+	System.setProperty("com.arjuna.mw.wscf.protocolImplementation", className);
+	
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(className);
+
+	    implementationDoc = pl.getProtocol();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    System.exit(0);
+	}
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator(implementationDoc);
+	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder builder = factory.newDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	    org.w3c.dom.Element root = doc.createElement("TopLevel3-test");
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    doc.appendChild(root);
+
+	    System.out.println(DomUtil.nodeAsString(doc));
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager(implementationDoc);
+	    
+	    //	    cm.addParticipant(new DemoXAParticipant(), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoXAParticipant(false), 0, null);
+	    cm.addParticipant(new DemoXAParticipant(false), 0, null);
+
+	    System.out.println("\nEnding coordination.");
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    Outcome res = ua.end();
+
+	    if (res instanceof XAOutcome)
+	    {
+		XAOutcome out = (XAOutcome) res;
+		
+		if (out.data() == null)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+((XAException) out.data()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Context.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Context.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Context.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,94 @@
+/*
+ * 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: Context.java,v 1.2 2004/08/10 15:10:25 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Context.java,v 1.2 2004/08/10 15:10:25 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Context
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+	    
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    passed = true;
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested1.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested1.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested1.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,147 @@
+/*
+ * 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: Nested1.java,v 1.2.22.1 2005/11/22 10:34:15 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.Priorities;
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.outcomes.CoordinationOutcome;
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested1.java,v 1.2.22.1 2005/11/22 10:34:15 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Nested1
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder builder = factory.newDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	    org.w3c.dom.Element root = doc.createElement("Nested1-test");
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    doc.appendChild(root);
+
+	    System.out.println(com.arjuna.mw.wscf.utils.DomUtil.nodeAsString(doc));
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+	    
+	    theContext = manager.context();
+
+	    doc = builder.newDocument();
+	    
+	    root = doc.createElement("Nested1-test");
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    
+	    doc.appendChild(root);
+
+	    System.out.println(com.arjuna.mw.wscf.utils.DomUtil.nodeAsString(doc));
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(), Priorities.PARTICIPANT, null);
+	    
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CANCELLED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CANCELLED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested2.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested2.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested2.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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: Nested2.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import javax.xml.parsers.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested2.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested2
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+
+	    ua.setCompletionStatus(Success.instance());
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested3.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested3.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested3.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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: Nested3.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import javax.xml.parsers.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested3.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested3
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested4.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested4.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested4.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,143 @@
+/*
+ * 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: Nested4.java,v 1.1 2003/01/07 10:33:58 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested4.java,v 1.1 2003/01/07 10:33:58 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested4
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested5.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested5.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested5.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,143 @@
+/*
+ * 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: Nested5.java,v 1.1 2003/01/07 10:33:58 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested5.java,v 1.1 2003/01/07 10:33:58 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested5
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(true), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested6.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested6.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested6.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,145 @@
+/*
+ * 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: Nested6.java,v 1.1 2003/01/07 10:33:58 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+import com.arjuna.mwtests.wscf.common.FailureParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested6.java,v 1.1 2003/01/07 10:33:58 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested6
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(true), Priorities.PARTICIPANT, null);
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    cm.addParticipant(new FailureParticipant(false, FailureParticipant.NESTED_PREPARE), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CANCELLED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested7.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested7.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested7.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,145 @@
+/*
+ * 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: Nested7.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+import com.arjuna.mwtests.wscf.common.FailureParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested7.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested7
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(true), Priorities.PARTICIPANT, null);
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    cm.addParticipant(new FailureParticipant(false, FailureParticipant.TOPLEVEL_PREPARE), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CANCELLED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested8.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested8.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/Nested8.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,143 @@
+/*
+ * 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: Nested8.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+import com.arjuna.mwtests.wscf.common.FailureParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Nested8.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Nested8
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(true), Priorities.PARTICIPANT, null);
+
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    cm.addParticipant(new FailureParticipant(false, FailureParticipant.TOPLEVEL_CANCEL), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+
+	    res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CANCELLED)
+		    passed = passed && true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/NullParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/NullParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/NullParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NullParticipant.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullParticipant.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+	    
+	    ua.end();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel1.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel1.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel1.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,120 @@
+/*
+ * 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: TopLevel1.java,v 1.2.22.1 2005/11/22 10:34:15 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.Priorities;
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.outcomes.CoordinationOutcome;
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel1.java,v 1.2.22.1 2005/11/22 10:34:15 kconner Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel1
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder builder = factory.newDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	    org.w3c.dom.Element root = doc.createElement("TopLevel1-test");
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    doc.appendChild(root);
+
+	    System.out.println(com.arjuna.mw.wscf.utils.DomUtil.nodeAsString(doc));
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(), Priorities.PARTICIPANT, null);
+
+	    System.out.println("\nEnding coordination.");
+	    
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CANCELLED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel2.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel2.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel2.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,122 @@
+/*
+ * 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: TopLevel2.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel2.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel2
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel3.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel3.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel3.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,122 @@
+/*
+ * 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: TopLevel3.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel3.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel3
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel4.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel4.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel4.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,123 @@
+/*
+ * 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: TopLevel4.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel4.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel4
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel5.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel5.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/as/twophase/TopLevel5.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,123 @@
+/*
+ * 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: TopLevel5.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.as.twophase;
+
+import com.arjuna.mwtests.wscf.common.DemoParticipant;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+
+import com.arjuna.mw.wsas.context.ContextManager;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TopLevel5.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TopLevel5
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName());
+	    
+	    ua.setCompletionStatus(Success.instance());
+	    
+	    ContextManager manager = new ContextManager();
+	    com.arjuna.mw.wsas.context.Context[] contexts = manager.contexts();
+
+	    if (contexts != null)
+	    {
+		for (int i = 0; i < contexts.length; i++)
+		    System.out.println(contexts[i]);
+	    }
+
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.addParticipant(new DemoParticipant(true), Priorities.PARTICIPANT, null);
+	    cm.addParticipant(new DemoParticipant(false), Priorities.PARTICIPANT, null);
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome out = (CoordinationOutcome) res;
+		
+		if (out.result() == TwoPhaseResult.CONFIRMED)
+		    passed = true;
+		else
+		    System.out.println("Result is: "+TwoPhaseResult.stringForm(out.result()));
+	    }
+	    else
+		System.out.println("Outcome is: "+res);	    
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: AddParticipant.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: AddParticipant.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class AddParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    tm.getTransaction().enlistResource(new DemoXAResource());
+	    
+	    System.out.println("Started: "+tm+"\n");
+
+	    tm.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/AddSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: AddSynchronization.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: AddSynchronization.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class AddSynchronization
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    tm.getTransaction().registerSynchronization(new JTASynchronization());
+	    
+	    System.out.println("Started: "+tm+"\n");
+
+	    tm.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginCommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginCommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginCommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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: BeginCommit.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import javax.transaction.*;
+import javax.transaction.xa.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BeginCommit.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BeginCommit
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	    
+	    ut.begin();
+
+	    System.out.println("Started: "+ut+"\n");
+
+	    ut.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginRollback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginRollback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/BeginRollback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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: BeginRollback.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import javax.transaction.*;
+import javax.transaction.xa.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BeginRollback.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BeginRollback
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	    
+	    ut.begin();
+
+	    System.out.println("Started: "+ut+"\n");
+
+	    ut.rollback();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/ParticipantSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/ParticipantSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/ParticipantSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ParticipantSynchronization.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantSynchronization.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ParticipantSynchronization
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    tm.getTransaction().enlistResource(new DemoXAResource());
+	    tm.getTransaction().registerSynchronization(new JTASynchronization());
+	    tm.getTransaction().registerSynchronization(new JTASynchronization());
+	    
+	    System.out.println("Started: "+tm+"\n");
+
+	    tm.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/Suspend.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/Suspend.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/Suspend.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,91 @@
+/*
+ * 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: Suspend.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Suspend.java,v 1.1 2003/01/07 10:33:59 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Suspend
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    System.out.println("Started: "+tm.getTransaction()+"\n");
+
+	    javax.transaction.Transaction tx = tm.suspend();
+	    
+	    System.out.println("Suspended: "+tx+"\n");
+	    
+	    if (tm.getTransaction() != null)
+		System.out.println("Hierarchy still active.");
+	    else
+		passed = true;
+
+	    tm.rollback();
+	}
+	catch (IllegalStateException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,87 @@
+/*
+ * 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: SuspendConfirm.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendConfirm.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SuspendConfirm
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    System.out.println("Started: "+tm.getTransaction()+"\n");
+
+	    javax.transaction.Transaction tx = tm.suspend();
+	    
+	    System.out.println("Suspended: "+tx+"\n");
+	    
+	    if (tm.getTransaction() != null)
+		System.out.println("Hierarchy still active.");
+
+	    tm.commit();
+	}
+	catch (IllegalStateException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,101 @@
+/*
+ * 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: SuspendParticipant.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendParticipant.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SuspendParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    System.out.println("Started: "+tm.getTransaction()+"\n");
+
+	    tm.getTransaction().enlistResource(new DemoXAResource());
+	    tm.getTransaction().enlistResource(new DemoXAResource());
+	    tm.getTransaction().registerSynchronization(new JTASynchronization());
+	    
+	    javax.transaction.Transaction tx = tm.suspend();
+	    
+	    System.out.println("Suspended: "+tx+"\n");
+	    
+	    if (tm.getTransaction() != null)
+	    {
+		System.out.println("Hierarchy still active.");
+
+		tm.rollback();
+	    }
+	    else
+	    {
+		System.out.println("Resumed: "+tx+"\n");
+		
+		tm.resume(tx);
+
+		tm.commit();
+
+		passed = true;
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendResume.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendResume.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/SuspendResume.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,97 @@
+/*
+ * 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: SuspendResume.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendResume.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SuspendResume
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    javax.transaction.TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    
+	    tm.begin();
+
+	    System.out.println("Started: "+tm.getTransaction()+"\n");
+
+	    javax.transaction.Transaction tx = tm.suspend();
+	    
+	    System.out.println("Suspended: "+tx+"\n");
+	    
+	    if (tm.getTransaction() != null)
+	    {
+		System.out.println("Hierarchy still active.");
+
+		tm.rollback();
+	    }
+	    else
+	    {
+		System.out.println("Resumed: "+tx+"\n");
+		
+		tm.resume(tx);
+
+		tm.rollback();
+
+		passed = true;
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,84 @@
+/*
+ * 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: WscContext.java,v 1.3.22.1 2005/11/22 10:34:17 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import javax.transaction.UserTransaction;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wscf.model.xa.UserTransactionFactory;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WscContext.java,v 1.3.22.1 2005/11/22 10:34:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class WscContext
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	    
+	    ut.begin();
+
+	    System.out.println("Started: "+ut+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+	    System.out.println(theContext);
+	    
+	    ut.rollback();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscTranslateContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscTranslateContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/jta/WscTranslateContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,143 @@
+/*
+ * 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: WscTranslateContext.java,v 1.6.6.1 2005/11/22 10:34:17 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.jta;
+
+import com.arjuna.mw.wscf.model.xa.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import javax.transaction.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WscTranslateContext.java,v 1.6.6.1 2005/11/22 10:34:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class WscTranslateContext
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	    
+	    ut.begin();
+
+	    System.out.println("Started: "+ut+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    SOAPContext theContext = (SOAPContext) manager.context();
+
+	    System.out.println(theContext);
+
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        DocumentBuilder builder = factory.newDocumentBuilder();
+        org.w3c.dom.Document doc = builder.newDocument();
+        org.w3c.dom.Element ctx = doc.createElement("Context-test");
+        final Element context = ((SOAPContext)theContext).serialiseToElement(ctx) ;
+        
+	    org.w3c.dom.Element wscCtx = translate(context);
+	    
+	    System.out.println("\nNow got "+DomUtil.nodeAsString(wscCtx));
+
+	    ut.rollback();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+    static private org.w3c.dom.Element translate (org.w3c.dom.Element ctx)
+    {
+	try
+	{
+	    org.w3c.dom.Document doc = ctx.getOwnerDocument();
+	    
+	    org.w3c.dom.Element regServiceElement = doc.createElement("wscoor:RegistrationService");
+	    org.w3c.dom.Element regAddressElement = doc.createElement("wsu:Address");
+
+	    regAddressElement.appendChild(doc.createTextNode("htpp://www.arjuna.com?dummyRegistrationServiceAddress"));
+	
+	    regServiceElement.appendChild(regAddressElement);
+	
+	    ctx.appendChild(regServiceElement);
+
+	    return ctx;
+	}
+	catch (Exception ex)
+	{
+	    // TODO deal with correctly!
+
+	    ex.printStackTrace();
+	}
+	
+	return null;
+    }
+
+    private static final String _wscoorNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wscoor";
+    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";
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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: AddParticipant.java,v 1.2 2005/01/15 21:21:03 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: AddParticipant.java,v 1.2 2005/01/15 21:21:03 kconner Exp $
+ * @since 1.0.
+ */
+
+public class AddParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.begin();
+
+	    cm.enlistParticipant(new TwoPhaseParticipant(null));
+	    
+	    System.out.println("Started: "+cm.identifier()+"\n");
+
+	    cm.confirm();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/AddSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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: AddSynchronization.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: AddSynchronization.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class AddSynchronization
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.begin();
+
+	    cm.enlistSynchronization(new TwoPhaseSynchronization());
+	    
+	    System.out.println("Started: "+cm.identifier()+"\n");
+
+	    cm.confirm();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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: BeginCancel.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BeginCancel.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BeginCancel
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ua.cancel();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/BeginConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,90 @@
+/*
+ * 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: BeginConfirm.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BeginConfirm.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BeginConfirm
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ua.confirm();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: CancelOnlyCancel.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CancelOnlyCancel.java,v 1.1 2003/01/07 10:34:00 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CancelOnlyCancel
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ua.setCancelOnly();
+	    
+	    ua.cancel();
+
+	    passed = true;
+	}
+	catch (CoordinatorCancelledException ex)
+	{
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/CancelOnlyConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,94 @@
+/*
+ * 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: CancelOnlyConfirm.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CancelOnlyConfirm.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CancelOnlyConfirm
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ua.setCancelOnly();
+	    
+	    ua.confirm();
+	}
+	catch (CoordinatorCancelledException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ContextOutput.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ContextOutput.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ContextOutput.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,94 @@
+/*
+ * 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: ContextOutput.java,v 1.2.22.1 2005/11/22 10:34:07 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ContextOutput.java,v 1.2.22.1 2005/11/22 10:34:07 kconner Exp $
+ * @since 1.0.
+ */
+
+public class ContextOutput
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+	    DocumentBuilder builder = factory.newDocumentBuilder();
+	    org.w3c.dom.Document doc = builder.newDocument();
+	    org.w3c.dom.Element root = doc.createElement("Context-test");
+
+        ((SOAPContext)theContext).serialiseToElement(root) ;
+	    doc.appendChild(root);
+
+	    System.out.println(com.arjuna.mw.wscf.utils.DomUtil.nodeAsString(doc));
+	    
+	    ua.cancel();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ParticipantSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ParticipantSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/ParticipantSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,92 @@
+/*
+ * 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: ParticipantSynchronization.java,v 1.2 2005/01/15 21:21:03 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantSynchronization.java,v 1.2 2005/01/15 21:21:03 kconner Exp $
+ * @since 1.0.
+ */
+
+public class ParticipantSynchronization
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.begin();
+
+	    cm.enlistParticipant(new TwoPhaseParticipant(null));
+	    cm.enlistParticipant(new TwoPhaseParticipant(null));
+	    cm.enlistSynchronization(new TwoPhaseSynchronization());
+	    
+	    System.out.println("Started: "+cm.identifier()+"\n");
+
+	    cm.confirm();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/StartEnd.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/StartEnd.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/StartEnd.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: StartEnd.java,v 1.3 2003/03/14 14:26:34 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: StartEnd.java,v 1.3 2003/03/14 14:26:34 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class StartEnd
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	String className = "com.arjuna.mwlabs.wscf.model.twophase.arjunacore.TwoPhaseHLSImple";
+	org.w3c.dom.Document implementationDoc = null;
+	
+	//	System.setProperty("com.arjuna.mw.wscf.protocolImplementation", className);
+	
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(className);
+
+	    implementationDoc = pl.getProtocol();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    System.exit(0);
+	}
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator(implementationDoc);
+	
+	    ua.start();
+
+	    System.out.println("Started: "+ua.activityName()+"\n");
+
+	    Outcome res = ua.end();
+
+	    if (res instanceof CoordinationOutcome)
+	    {
+		CoordinationOutcome co = (CoordinationOutcome) res;
+		
+		if (co.result() == TwoPhaseResult.CANCELLED)
+		    passed = true;
+	    }
+	    else
+		System.out.println("Result is: "+res);
+	}
+	catch (NoActivityException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/Suspend.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/Suspend.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/Suspend.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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: Suspend.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Suspend.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Suspend
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ActivityHierarchy hier = ua.suspend();
+	    
+	    System.out.println("Suspended: "+hier+"\n");
+	    
+	    if (ua.currentActivity() != null)
+		System.out.println("Hierarchy still active.");
+	    else
+		passed = true;
+
+	    ua.cancel();
+	}
+	catch (NoCoordinatorException ex)
+	{
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendConfirm.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendConfirm.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendConfirm.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,101 @@
+/*
+ * 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: SuspendConfirm.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendConfirm.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SuspendConfirm
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ActivityHierarchy hier = ua.suspend();
+	    
+	    System.out.println("Suspended: "+hier+"\n");
+	    
+	    if (ua.currentActivity() != null)
+		System.out.println("Hierarchy still active.");
+
+	    ua.confirm();
+	}
+	catch (NoCoordinatorException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,114 @@
+/*
+ * 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: SuspendParticipant.java,v 1.2 2005/01/15 21:21:03 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwtests.wscf.common.*;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendParticipant.java,v 1.2 2005/01/15 21:21:03 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    CoordinatorManager cm = CoordinatorManagerFactory.coordinatorManager();
+	    
+	    cm.begin();
+
+	    cm.enlistParticipant(new TwoPhaseParticipant(null));
+	    cm.enlistParticipant(new TwoPhaseParticipant(null));
+	    cm.enlistSynchronization(new TwoPhaseSynchronization());
+	    
+	    System.out.println("Started: "+cm.identifier()+"\n");
+
+	    ActivityHierarchy hier = cm.suspend();
+
+	    System.out.println("Suspended: "+hier+"\n");
+
+	    if (cm.currentActivity() != null)
+	    {
+		System.out.println("Hierarchy still active.");
+
+		cm.cancel();
+	    }
+	    else
+	    {
+		System.out.println("Resumed: "+hier+"\n");
+		
+		cm.resume(hier);
+		
+		cm.confirm();
+
+		passed = true;
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendResume.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendResume.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/SuspendResume.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,111 @@
+/*
+ * 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: SuspendResume.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.common.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendResume.java,v 1.1 2003/01/07 10:34:01 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SuspendResume
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ActivityHierarchy hier = ua.suspend();
+	    
+	    System.out.println("Suspended: "+hier+"\n");
+	    
+	    if (ua.currentActivity() != null)
+	    {
+		System.out.println("Hierarchy still active.");
+
+		ua.cancel();
+	    }
+	    else
+	    {
+		System.out.println("Resumed: "+hier+"\n");
+
+		ua.resume(hier);
+
+		ua.cancel();
+
+		passed = true;
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,83 @@
+/*
+ * 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: WscContext.java,v 1.3.22.1 2005/11/22 10:34:08 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WscContext.java,v 1.3.22.1 2005/11/22 10:34:08 kconner Exp $
+ * @since 1.0.
+ */
+
+public class WscContext
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+	    System.out.println(theContext);
+	    
+	    ua.cancel();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscNestedContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscNestedContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscNestedContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: WscNestedContext.java,v 1.3.22.1 2005/11/22 10:34:07 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WscNestedContext.java,v 1.3.22.1 2005/11/22 10:34:07 kconner Exp $
+ * @since 1.0.
+ */
+
+public class WscNestedContext
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    Context theContext = manager.context();
+
+	    System.out.println(theContext);
+	    
+	    ua.cancel();
+
+	    ua.cancel();
+	    
+	    ua.cancel();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscTranslateContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscTranslateContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/model/twophase/WscTranslateContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,126 @@
+/*
+ * 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: WscTranslateContext.java,v 1.6.6.1 2005/11/22 10:34:08 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wscf.model.twophase;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wscf.model.twophase.UserCoordinatorFactory;
+import com.arjuna.mw.wscf.model.twophase.api.UserCoordinator;
+import com.arjuna.mw.wscf.utils.DomUtil;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WscTranslateContext.java,v 1.6.6.1 2005/11/22 10:34:08 kconner Exp $
+ * @since 1.0.
+ */
+
+public class WscTranslateContext
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserCoordinator ua = UserCoordinatorFactory.userCoordinator();
+	    
+	    ua.begin();
+
+	    System.out.println("Started: "+ua.identifier()+"\n");
+
+	    DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+	    SOAPContext theContext = (SOAPContext) manager.context();
+
+	    System.out.println(theContext);
+
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        DocumentBuilder builder = factory.newDocumentBuilder();
+        org.w3c.dom.Document doc = builder.newDocument();
+        org.w3c.dom.Element ctx = doc.createElement("Context-test");
+        final Element context = ((SOAPContext)theContext).serialiseToElement(ctx) ;
+        
+        org.w3c.dom.Element wscCtx = translate(context);
+	    
+	    System.out.println("\nNow got "+DomUtil.nodeAsString(wscCtx));
+
+	    ua.cancel();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    passed = false;
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+    static private org.w3c.dom.Element translate (org.w3c.dom.Element ctx)
+    {
+	try
+	{
+	    org.w3c.dom.Document doc = ctx.getOwnerDocument();
+	    
+	    org.w3c.dom.Element regServiceElement = doc.createElement("wscoor:RegistrationService");
+	    org.w3c.dom.Element regAddressElement = doc.createElement("wsu:Address");
+
+	    regAddressElement.appendChild(doc.createTextNode("http://www.arjuna.com?dummyRegistrationServiceAddress"));	    
+	
+	    regServiceElement.appendChild(regAddressElement);
+	
+	    ctx.appendChild(regServiceElement);
+	    
+	    return ctx;
+	}
+	catch (Exception ex)
+	{
+	    // TODO deal with correctly!
+
+	    ex.printStackTrace();
+	}
+	
+	return null;
+    }
+	
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/xml/SchemaName.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/xml/SchemaName.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwtests/wscf/xml/SchemaName.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: SchemaName.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wscf.xml;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import java.net.URL;
+
+import javax.xml.parsers.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SchemaName.java,v 1.2 2003/01/17 15:39:35 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SchemaName
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    URL url = ClassLoader.getSystemClassLoader().getResource("com/arjuna/mwtests/wscf/xml/example.xml");
+
+	    if (url == null)
+	    {
+		System.err.println("No example.xml found!");
+	    }
+	    else
+	    {
+		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+		DocumentBuilder builder = factory.newDocumentBuilder();
+		org.w3c.dom.Document doc = builder.parse(url.toExternalForm());
+	    
+		if (doc == null)
+		{
+		    System.err.println("Failed to create example doc!");
+		}
+
+		UserCoordinator ua = UserCoordinatorFactory.userCoordinator(doc);
+	
+		ua.start();
+		
+		ua.end();
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<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.ArjunaContextImple"/>
+	    <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.ats.arjuna.objectstore.objectStoreDir"
+	    value="XTSObjectStore"/>
+	</properties>
+</wscf-config>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/ArjunaCoreHLS.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/ArjunaCoreHLS.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/ArjunaCoreHLS.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+<!--
+  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.
+-->
+<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>urn:generic:tx-two-phase-commit</coordinator-type>
+	<generic>true</generic>
+	<notification>
+		<name>BeforeCompletion</name>
+	</notification>
+	<notification>
+		<name>AfterCompletion</name>
+	</notification>
+	<notification>
+		<name>ForgetHeuristic</name>
+	</notification>
+	<notification>
+		<name>NestedCancel</name>
+		<response>
+			<name>CoordinationOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>NestedConfirm</name>
+		<response>
+			<name>CoordinationOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>NestedOnePhaseCommit</name>
+		<response>
+			<name>CoordinationOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>NestedPrepare</name>
+		<response>
+			<name>VoteCancel</name>
+			<name>VoteConfirm</name>
+			<name>VoteReadOnly</name>
+		</response>
+	</notification>
+	<notification>
+		<name>TopLevelCancel</name>
+		<response>
+			<name>CoordinationOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>TopLevelConfirm</name>
+		<response>
+			<name>CoordinationOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>TopLevelOnePhaseCommit</name>
+		<response>
+			<name>CoordinationOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>NestedPrepare</name>
+		<response>
+			<name>VoteCancel</name>
+			<name>VoteConfirm</name>
+			<name>VoteReadOnly</name>
+		</response>
+	</notification>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLS.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLS.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLS.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,50 @@
+<!--
+  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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<!--Sample XML file generated by XML Spy v4.0 U (http://www.xmlspy.com)-->
+<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>urn:generic:tx-jta:1.0.1</coordinator-type>
+	<generic>true</generic>
+	<notification>
+		<name>XACommit</name>
+	</notification>
+	<notification>
+		<name>XAStart</name>
+	</notification>
+	<notification>
+		<name>XAEnd</name>
+	</notification>
+	<notification>
+		<name>XAForget</name>
+	</notification>
+	<notification>
+		<name>XAPrepare</name>
+		<response>
+			<name>XAOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>XARecover</name>
+		<response>
+			<name>XIDList</name>
+		</response>
+	</notification>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLSImple.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLSImple.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/JTAHLSImple.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,25 @@
+<!--
+  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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<!--Sample XML file generated by XML Spy v4.0 U (http://www.xmlspy.com)-->
+<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>urn:tx-jta:1.0.1</coordinator-type>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/SagasHLSImple.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/SagasHLSImple.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/SagasHLSImple.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<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>urn:tx-sagas-commit</coordinator-type>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/TwoPhaseHLSImple.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/TwoPhaseHLSImple.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/TwoPhaseHLSImple.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<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>urn:tx-two-phase-commit</coordinator-type>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSBAHLS.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSBAHLS.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSBAHLS.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<!--Sample XML file generated by XML Spy v4.0 U (http://www.xmlspy.com)-->
+<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>urn:generic:tx-jta</coordinator-type>
+	<notification>
+		<name>XACommit</name>
+	</notification>
+	<notification>
+		<name>XAStart</name>
+	</notification>
+	<notification>
+		<name>XAEnd</name>
+	</notification>
+	<notification>
+		<name>XAForget</name>
+	</notification>
+	<notification>
+		<name>XAPrepare</name>
+		<response>
+			<name>XAOutcome</name>
+		</response>
+	</notification>
+	<notification>
+		<name>XARecover</name>
+		<response>
+			<name>XIDList</name>
+		</response>
+	</notification>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSCF.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSCF.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/WSCF.xsd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino (Hewlett Packard Co.) -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xsd:element name="coordinator-name" type="xsd:anyURI">
+		<xsd:annotation>
+			<xsd:documentation>The unique name for this type of coordinator</xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+	<xsd:element name="response">
+		<xsd:annotation>
+			<xsd:documentation>The response that may be returned upon receipt of a specific notification</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element name="name" type="xsd:string" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="notification">
+		<xsd:annotation>
+			<xsd:documentation>The notification message that may be sent</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element name="name" type="xsd:string"/>
+				<xsd:element ref="response" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="coordination-type">
+		<xsd:annotation>
+			<xsd:documentation>The type of the coordination protocol supported</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="coordinator-name" minOccurs="0"/>
+				<xsd:element ref="notification" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element name="generic" type="xsd:boolean" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+</xsd:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context-example.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context-example.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context-example.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,29 @@
+<!--
+  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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.example.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<!--Sample XML file generated by XML Spy v4.0 U (http://www.example.com)-->
+<wscf-context xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\Documents and Settings\mlittle\Desktop\wscf.xsd">
+	<protocol-reference protocol_type="urn:two-phase"/>
+	<coordinator-reference coordinator="http://www.example.com" activity_identity="urn:1234"/>
+	<coordinator-reference coordinator="http://www.example.com" activity_identity="urn:5678"/>
+	<coordinator-reference coordinator="http://www.example.com" activity_identity="urn:9012"/>
+	<coordinator-reference coordinator="http://www.example.com" activity_identity="urn:3456"/>
+</wscf-context>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/context.xsd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,51 @@
+<!--
+  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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xs:element name="coordinator-reference">
+		<xs:annotation>
+			<xs:documentation>the coordinator-reference; a coordinator is implicitly associated with the activity in the same point in the hierarchy unless otherwise stated. This is to allow an activity hierarchy to be propagated where only some of the activities may be coordination domains. A coordinator can only be associated with a single activity at most.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:attribute name="coordinator" type="xs:anyURI" use="required"/>
+			<xs:attribute name="activity_identity" type="xs:anyURI" use="optional"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="protocol-reference">
+		<xs:annotation>
+			<xs:documentation>the type of protocol supported by the coordination domain must be specified. Only one coordination protocol per context (is this too limiting?)</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:attribute name="protocol_type" type="xs:anyURI" use="required"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="wscf-context">
+		<xs:annotation>
+			<xs:documentation>wscf-context represents the context hierarchy for a coordination tree.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="protocol-reference"/>
+				<xs:element ref="coordinator-reference" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/example.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/example.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/example.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+<!--
+  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.
+-->
+<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Thomas Novellino Version 4.0 (Hewlett Packard Co.) -->
+<!--Sample XML file generated by XML Spy v4.0 U (http://www.xmlspy.com)-->
+<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>urn:two-phase</coordinator-type>
+	<notification>
+		<name>prepare</name>
+		<response>
+			<name>confirm</name>
+			<name>cancel</name>
+			<name>readonly</name>
+		</response>
+	</notification>
+	<notification>
+		<name>confirm</name>
+		<response>
+			<name>confirmed</name>
+			<name>cancelled</name>
+		</response>
+	</notification>
+	<notification>
+		<name>cancel</name>
+		<response>
+			<name>cancelled</name>
+			<name>confirmed</name>
+		</response>
+	</notification>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf_web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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-CF</display-name>
+
+    <description>Arjuna WS-CF</description>
+
+    <listener>
+        <listener-class>com.arjuna.mw.wsc.deploy.WSCFInitialisation</listener-class>
+    </listener>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<project name="WSTX" default="com.arjuna.mw.wstx.war" basedir=".">
+	<!-- Set module name -->
+	<property name="com.arjuna.mwlabs.ts.modulename" value="wstx"/>
+
+	<!-- Set default properties filename -->
+	<property name="com.arjuna.mw.wstx.properties" value="wstx.properties"/>
+
+	<!-- Load Build Properties File -->
+	<property file="${com.arjuna.mw.wstx.properties}"/>
+
+	<!-- Set internal property defaults -->
+	<!-- Path names -->
+	<property name="com.arjuna.mwlabs.wstx.src" value="classes"/>
+	<property name="com.arjuna.mwlabs.wstx.dest.root" value="build"/>
+	<property name="com.arjuna.mwlabs.wstx.dest" value="build/classes"/>
+	<property name="com.arjuna.mwlabs.wstx.war.dest" value="build/webapps"/>
+	<property name="com.arjuna.mwlabs.wstx.jar.dest" value="build/lib"/>
+	<property name="com.arjuna.mwlabs.wstx.htdocs.dest" value="build/htdocs"/>
+
+    <property name="com.arjuna.buildsystem.dir" location="../../antbuildsystem"/>
+    <property name="com.arjuna.jta.install" location="../../install"/>
+
+    <property name="com.arjuna.buildsystem.lib" location="${com.arjuna.buildsystem.dir}/build/lib"/>
+    <property name="com.arjuna.jta.install.lib" location="${com.arjuna.jta.install}/lib"/>
+    <property name="com.arjuna.jta.install.ext" location="${com.arjuna.jta.install.lib}/ext"/>
+    <property name="com.arjuna.xts.ext" location="../ext"/>
+
+    <property name="com.arjuna.buildsystem.lib.jars" value="buildsystem.jar"/>
+
+    <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="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"/>
+
+    <!-- Define classpath builder task -->
+    <path id="com.arjuna.buildsystem.classpath">
+        <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
+    </path>
+    <property name="com.arjuna.buildsystem.classpath" refid="com.arjuna.buildsystem.classpath"/>
+	<taskdef name="classpath-builder" classname="com.hp.mw.buildsystem.ant.ClasspathBuilder" classpathref="com.arjuna.buildsystem.classpath"/>
+	<!-- class path behaviour -->
+	<property name="build.sysclasspath" value="last"/>
+	<property name="com.arjuna.mwlabs.classpathbuilderfilename" location="buildsystem.classpath"/>
+
+    <property name="com.arjuna.mwlabs.wstx.resourcebundle"
+	      value="wstx_msg_en_US.properties"/>
+
+	<!--Set external directories -->
+
+	<property name="com.arjuna.mwlabs.wsas.jar.dest" value="../WSAS/build/lib"/>
+	<property name="com.arjuna.mwlabs.wsc.jar.dest" value="../WS-C/build/dev/lib"/>
+	<property name="com.arjuna.mwlabs.wscf.jar.dest" value="../WSCF/build/lib"/>
+	<property name="com.arjuna.mwlabs.wst.jar.dest" value="../WS-T/build/dev/lib"/>
+
+	<path id="com.arjuna.mwlabs.wstx.lib.classpath">
+        <fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
+        <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars} ${jta.ext.compile.jars}"/>
+        <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}"/>
+        <fileset dir="${com.arjuna.mwlabs.wscf.jar.dest}" includes="${wscf.libs}"/>
+        <fileset dir="${com.arjuna.mwlabs.wst.jar.dest}" includes="${wst.libs}"/>
+    </path>
+
+	<!-- Initialisation -->
+	<target name="com.arjuna.mwlabs.wstx.init">
+		<!-- Define default build properties -->
+		<tstamp>
+			<format property="com.arjuna.mw.wstx.date" pattern="yyyy/mm/dd hh:mm aa"/>
+		</tstamp>
+		<!-- Make the destination directory -->
+		<mkdir dir="${com.arjuna.mwlabs.wstx.dest}"/>
+		<mkdir dir="${com.arjuna.mwlabs.wstx.war.dest}"/>
+	</target>
+
+	<!-- Compilation targets -->
+
+	<target name="com.arjuna.mw.wstx.compile"
+	depends="com.arjuna.mwlabs.wstx.compile,
+		com.arjuna.mw.wstx.htdocs, com.arjuna.mwlabs.wstx.generateresourcebundle"/>
+
+	<target name="com.arjuna.mwlabs.wstx.compile" depends="com.arjuna.mwlabs.wstx.init">
+		<echo message="Compiling module"/>
+		<javac srcdir="${com.arjuna.mwlabs.wstx.src}"
+                       destdir="${com.arjuna.mwlabs.wstx.dest}"
+                       excludes="${com.arjuna.mwlabs.wstx.compile.excludes}"
+                       debug="yes"
+	        >
+			<classpath>
+				<path refid="com.arjuna.mwlabs.wstx.lib.classpath"/>
+			</classpath>
+		</javac>
+	</target>
+
+	<!-- htdocs paths -->
+	<path id="com.arjuna.mw.wstx.htdocs.path">
+		<pathelement path="classes"/>
+	</path>
+
+	<!-- Build htdocs for just mw, or mw and mwlabs -->
+	<property name="com.arjuna.mwlabs.wstx.htdocs.list" value="com.arjuna.mw.*"/>
+
+	<target name="com.arjuna.mw.wstx.war" depends="com.arjuna.mw.wstx.jar">
+	  <war warfile="${com.arjuna.mwlabs.wstx.war.dest}/${com.arjuna.mwlabs.ts.modulename}.war" webxml="xml/wstx_web-app.xml">
+        <manifest>
+            <attribute name="Class-Path" value="${com.arjuna.mwlabs.ts.modulename}.jar"/>
+        </manifest>
+	  </war>
+	</target>
+
+	<!-- Jar targets -->
+	<target name="com.arjuna.mw.wstx.jar" depends="com.arjuna.mw.wstx.compile">
+		<echo message="Building jar file"/>
+		<mkdir dir="${com.arjuna.mwlabs.wstx.jar.dest}"/>
+
+		<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"
+		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"/>
+
+		<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>
+	</target>
+
+	<target name="com.arjuna.mw.wstx.htdocs"
+				depends="com.arjuna.mwlabs.wstx.init">
+		<echo message="Building htdocs "/>
+		<mkdir dir="${com.arjuna.mwlabs.wstx.htdocs.dest}"/>
+		<path id="com.arjuna.mwlabs.wstx.htdocs.path">
+			<path refid="com.arjuna.mw.wstx.htdocs.path"/>
+		</path>
+
+		<javadoc
+			sourcepathref="com.arjuna.mwlabs.wstx.htdocs.path"
+			destdir="${com.arjuna.mwlabs.wstx.htdocs.dest}"
+			packagenames="${com.arjuna.mwlabs.wstx.htdocs.list}"
+	        >
+			<classpath>
+				<path refid="com.arjuna.mwlabs.wstx.lib.classpath"/>
+				<path path="${com.arjuna.mwlabs.wstx.src}"/>
+			</classpath>
+		</javadoc>
+	</target>
+
+        <target name="com.arjuna.mwlabs.wstx.generateresourcebundle">
+
+            <echo message="Generating WSTX Bundle"/>
+
+            <classpath-builder filename="${com.arjuna.mwlabs.classpathbuilderfilename}" inproperty="build.classpath"/>
+
+            <javadoc    sourcepath="${com.arjuna.mwlabs.wstx.src}"
+                        packagenames="com.arjuna.*"
+                        failonerror="yes"
+                        private="yes"
+                        defaultexcludes="yes"
+                        classpath="${build.classpath}">
+
+                 <doclet name="com.hp.mw.buildsystem.doclet.resbundledoclet.ResourceBundleDoclet">
+                    <path>
+                        <pathelement path="${com.arjuna.buildsystem.classpath}"/>
+                    </path>
+                    <param name="-basedir" value="${basedir}/${com.arjuna.mwlabs.wstx.dest}"/>
+                    <param name="-resourcebundle" value="${com.arjuna.mwlabs.wstx.resourcebundle}"/>
+                 </doclet>
+            </javadoc>
+
+        </target>
+
+	<!-- Clean targets -->
+	<target name="com.arjuna.mw.wstx.clean">
+		<echo message="Cleaning module"/>
+		<delete dir="${com.arjuna.mwlabs.wstx.dest}"/>
+		<delete dir="${com.arjuna.mwlabs.wstx.dest.root}"/>
+		<delete dir="${com.arjuna.mwlabs.wstx.htdocs.dest}"/>
+		<delete file="${com.arjuna.mwlabs.wstx.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar"/>
+		<delete file="${com.arjuna.mwlabs.wstx.info.dest}"/>
+	</target>
+
+	<!-- Short target names -->
+	<target name="compile" depends="com.arjuna.mw.wstx.compile"/>
+	<target name="jar" depends="com.arjuna.mw.wstx.jar"/>
+	<target name="war" depends="com.arjuna.mw.wstx.war"/>
+	<target name="clean" depends="com.arjuna.mw.wstx.clean"/>
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BAParticipantManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BAParticipantManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BAParticipantManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BAParticipantManager.java,v 1.4 2004/12/21 09:49:13 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * 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.4 2004/12/21 09:49:13 kconner Exp $
+ * @since XTS 1.0.
+ */
+
+public interface BAParticipantManager
+{
+
+    /**
+     * The participant has exited.
+     */
+
+    public void exited (String id) throws WrongStateException, UnknownTransactionException, UnknownParticipantException, SystemException;
+
+    /**
+     * The participant has completed.
+     */
+
+    public void completed (String id) throws WrongStateException, UnknownTransactionException, UnknownParticipantException, SystemException;
+
+    /*
+     * The participant has failed.
+     */
+
+    public void faulted (String id) throws WrongStateException, UnknownTransactionException, UnknownParticipantException, SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,133 @@
+/*
+ * 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.BAParticipantManager;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * 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 BusinessActivityManager
+{
+    /**
+     * The manager.
+     */
+    private static BusinessActivityManager MANAGER ;
+    
+    /**
+     * Get the business activity manager.
+     * @return The business activity manager.
+     */
+    public static synchronized BusinessActivityManager getBusinessActivityManager()
+    {
+        return MANAGER ;
+    }
+    
+    /**
+     * Set the business activity manager.
+     * @param manager The business activity manager.
+     */
+    public static synchronized void setBusinessActivityManager(final BusinessActivityManager manager)
+    {
+        MANAGER = manager ;
+    }
+
+    /**
+     * Enlist a participant for the BusinessAgreement protocol.
+     *
+     * @return the BAParticipantManager for this transaction.
+     */
+    public abstract BAParticipantManager 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 BAParticipantManager 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/BusinessActivityManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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 BusinessActivityManagerFactory
+{
+    public static BusinessActivityManager businessActivityManager ()
+    {
+        return BusinessActivityManager.getBusinessActivityManager() ;
+	}
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/Durable2PCCoordinator.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/Durable2PCCoordinator.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/Durable2PCCoordinator.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+/*
+ * 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) 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Durable2PCCoordinator.java,v 1.1.2.1 2004/08/06 10:25:30 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.mw.wst.exceptions.SystemException;
+import com.arjuna.mw.wst.exceptions.UnknownParticipantException;
+import com.arjuna.mw.wst.exceptions.UnknownTransactionException;
+import com.arjuna.mw.wst.exceptions.WrongStateException;
+
+/**
+ * Allows a durable 2PC participant to rollback or send readonly
+ * before the coordinator initiates the protocol.
+ *
+ * One instance of this per transaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Durable2PCCoordinator.java,v 1.1.2.1 2004/08/06 10:25:30 nmcl Exp $
+ * @since XTS 1.0.
+ */
+
+public interface Durable2PCCoordinator
+{
+
+    /**
+     * The participant has rolled back.
+     */
+
+    public void rollback (String id) throws WrongStateException, UnknownTransactionException, UnknownParticipantException, SystemException;
+
+    /**
+     * The participant is read-only.
+     */
+
+    public void readonly (String id) throws WrongStateException, UnknownTransactionException, UnknownParticipantException, SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TransactionManager.java,v 1.10.6.1 2005/11/22 10:36:06 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.wst.*;
+
+import com.arjuna.wsc.AlreadyRegisteredException;
+
+/**
+ * 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).
+ *
+ * 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: TransactionManager.java,v 1.10.6.1 2005/11/22 10:36:06 kconner Exp $
+ * @since XTS 1.0.
+ */
+
+public abstract class TransactionManager
+{
+    /**
+     * The manager.
+     */
+    private static TransactionManager TRANSACTION_MANAGER ;
+    
+    /**
+     * Get the transaction manager.
+     * @return The transaction manager.
+     */
+    public static synchronized TransactionManager getTransactionManager()
+    {
+        return TRANSACTION_MANAGER ;
+    }
+    
+    /**
+     * Set the transaction manager.
+     * @param manager The transaction manager.
+     */
+    public static synchronized void setTransactionManager(final TransactionManager manager)
+    {
+        TRANSACTION_MANAGER = manager ;
+    }
+
+    /**
+     * Enlist the specified participant with current transaction such that it
+     * will participate in the Volatile 2PC protocol; a unique identifier for
+     * the participant is also required. If there is no transaction associated
+     * with the invoking thread then the UnknownTransactionException exception
+     * is thrown. If the coordinator already has a participant enrolled with
+     * the same identifier, then AlreadyRegisteredException will be thrown. If
+     * the transaction is not in a state where participants can be enrolled
+     * (e.g., it is terminating) then WrongStateException will be thrown.
+     */
+    public abstract void enlistForVolatileTwoPhase(final Volatile2PCParticipant pzp, final String id)
+        throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException;
+
+    /**
+     * Enlist the specified participant with current transaction such that it
+     * will participate in the 2PC protocol; a unique identifier for the
+     * participant is also required. If there is no transaction associated with
+     * the invoking thread then the UnknownTransactionException exception is
+     * thrown. If the coordinator already has a participant enrolled with the 
+     * same identifier, then AlreadyRegisteredException will be thrown. If the
+     * transaction is not in a state where participants can be enrolled (e.g.,
+     * it is terminating) then WrongStateException will be thrown.
+     */
+    public abstract void enlistForDurableTwoPhase(final Durable2PCParticipant tpp, final String id)
+        throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException;
+
+    public abstract int replay () throws 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/TransactionManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TransactionManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TransactionManagerFactory.java,v 1.8.8.1 2005/11/22 10:36:05 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+
+public class TransactionManagerFactory
+{
+    public static TransactionManager transactionManager ()
+    {
+    	return TransactionManager.getTransactionManager() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TxContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TxContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/TxContext.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+/*
+ * 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: TxContext.java,v 1.5 2004/03/15 13:25:14 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+/**
+ * This class represents a handle on a stack of transactions.
+ * It should only be used for suspending and resuming the
+ * thread-to-transaction association.
+ *
+ * The transaction at the top of the stack is the current transaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TxContext.java,v 1.5 2004/03/15 13:25:14 nmcl Exp $
+ * @since XTS 1.0.
+ */
+
+public interface TxContext
+{
+
+    /**
+     * @return true if the context is valid, false otherwise.
+     */
+
+    public boolean valid ();
+
+    /**
+     * @return true if the parameter represents the same context as
+     * the target object, false otherwise.
+     */
+
+    public boolean equals (Object o);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivity.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivity.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivity.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,126 @@
+/*
+ * 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: UserBusinessActivity.java,v 1.4.6.1 2005/11/22 10:36:06 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * This is the interface that allows BAs to be started and terminated.
+ * The messaging layer converts the messages into calls on this.
+ *
+ * Importantly, a UserBusinessActivity does not represent a specific
+ * transaction, but rather is responsible for providing access to an implicit
+ * per-thread  transaction context; it is similar to the UserTransaction in
+ * the JTA specification. Therefore, all of the UserTransaction methods
+ * implicitly act on the current thread of control.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserBusinessActivity.java,v 1.4.6.1 2005/11/22 10:36:06 kconner Exp $
+ * @since XTS 1.0.
+ */
+
+public abstract class UserBusinessActivity
+{
+    /**
+     * The user business activity.
+     */
+    private static UserBusinessActivity USER_BUSINESS_ACTIVITY ;
+    
+    /**
+     * Get the user business activity.
+     * @return The user business activity.
+     */
+    public static synchronized UserBusinessActivity getUserBusinessActivity()
+    {
+        return USER_BUSINESS_ACTIVITY ;
+    }
+    
+    /**
+     * Set the user business activity.
+     * @param userBusinessActivity The user business activity.
+     */
+    public static synchronized void setUserBusinessActivity(final UserBusinessActivity userBusinessActivity)
+    {
+        USER_BUSINESS_ACTIVITY = userBusinessActivity ;
+    }
+
+    public static final int ATOMIC_OUTCOME = 0;
+    public static final int MIXED_OUTCOME = 1;
+    
+    /**
+     * Start a new business activity with atomic outcome.
+     * If one is already associated with this thread
+     * then the WrongStateException will be thrown. Upon success, this
+     * operation associates the newly created transaction with the current
+     * thread.
+     */
+    public abstract void begin()
+        throws WrongStateException, SystemException;
+
+    /**
+     * Start a new BA with atomic outcome and the specified timeout as
+     * its lifetime.
+     * If one is already associated with this thread then the
+     * WrongStateException will be thrown.
+     */
+    public abstract void begin(final int timeout)
+        throws WrongStateException, SystemException;
+
+    /**
+     * The BA is normally terminated by the close method. This signals to
+     * all registered participants that the BA has ended and no compensation
+     * is required.
+     */
+    public abstract void close()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException;
+
+    /**
+     * If the BA must undo its work then the cancel method is used. Any
+     * participants that can compensate are forced to do so.
+     */
+    public abstract void cancel()
+        throws UnknownTransactionException, SystemException;
+
+    /**
+     * If participants have registered for the BusinessAgreementWithComplete
+     * protocol then they will be expecting the application to inform them
+     * when all work intended for them has been sent (and responded to). The
+     * complete method is used for this purpose.
+     */
+    public abstract void complete()
+        throws UnknownTransactionException, SystemException;
+
+    public abstract String transactionIdentifier();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivityFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivityFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserBusinessActivityFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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: UserBusinessActivityFactory.java,v 1.4.8.1 2005/11/22 10:36:05 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.mw.wst.UserBusinessActivity;
+
+public class UserBusinessActivityFactory
+{
+    public static UserBusinessActivity userBusinessActivity ()
+    {
+        return UserBusinessActivity.getUserBusinessActivity() ;
+	}
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UserTransaction.java,v 1.8.4.1 2005/11/22 10:36:05 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * 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.
+ * Importantly, a UserTransaction does not represent a specific transaction,
+ * but rather is responsible for providing access to an implicit per-thread 
+ * transaction context; it is similar to the UserTransaction in the JTA
+ * specification. Therefore, all of the UserTransaction methods implicitly act
+ * on the current thread of control.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserTransaction.java,v 1.8.4.1 2005/11/22 10:36:05 kconner Exp $
+ * @since XTS 1.0.
+ */
+
+public abstract class UserTransaction
+{
+    /**
+     * The transaction.
+     */
+    private static UserTransaction USER_TRANSACTION ;
+    
+    /**
+     * Get the user transaction.
+     * @return the user transaction.
+     */
+    public static synchronized UserTransaction getUserTransaction()
+    {
+        return USER_TRANSACTION ;
+    }
+    
+    /**
+     * Set the user transaction.
+     * @param userTransaction The user transaction.
+     */
+    public static synchronized void setUserTransaction(final UserTransaction userTransaction)
+    {
+        USER_TRANSACTION = userTransaction ;
+    }
+    
+    /**
+     * Start a new transaction. If one is already associated with this thread
+     * then the WrongStateException will be thrown. Upon success, this
+     * operation associates the newly created transaction with the current
+     * thread.
+     */
+    public abstract void begin()
+        throws WrongStateException, SystemException;
+
+    /**
+     * Start a new transaction with the specified timeout as its lifetime.
+     * If one is already associated with this thread then the
+     * WrongStateException will be thrown.
+     */
+    public abstract void begin(final int timeout)
+        throws WrongStateException, SystemException;
+    
+    /**
+     * The transaction is committed by the commit method. This will execute
+     * the PhaseZero, 2PC and OutcomeNotification protocols prior to returning.
+     * If there is no transaction associated with the invoking thread then
+     * UnknownTransactionException is thrown. If the transaction ultimately
+     * rolls back then the TransactionRolledBackException is thrown. When
+     * complete, this operation disassociates the transaction from the current
+     * thread such that it becomes associated with no transaction.
+     */
+    public abstract void commit()
+        throws TransactionRolledBackException, UnknownTransactionException, SecurityException, SystemException;
+
+    /**
+     * The rollback operation will terminate the transaction and return
+     * normally if it succeeded, while throwing an appropriate exception if it
+     * didn't. If there is no transaction associated with the invoking thread
+     * then UnknownTransactionException is thrown.
+     */
+    public abstract void rollback()
+        throws UnknownTransactionException, SecurityException, SystemException;
+
+    public abstract String transactionIdentifier ();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransactionFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransactionFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/UserTransactionFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: UserTransactionFactory.java,v 1.9.8.1 2005/11/22 10:36:05 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+
+public class UserTransactionFactory
+{
+    public static UserTransaction userTransaction ()
+    {
+        return UserTransaction.getUserTransaction() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,113 @@
+/*
+ * 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) 2005,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id$
+ */
+
+/**
+ * @author Malik SAHEB 
+ */
+
+package com.arjuna.mw.wst.client;
+
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.common.CoordinationContextHelper;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+import electric.soap.ISOAPInterceptor;
+import electric.xml.Element;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages within WebMethods Glue.
+ */
+public class GlueIncomingContextInterceptor implements ISOAPInterceptor
+{
+    public void intercept( electric.soap.SOAPMessage message, electric.util.Context messageContext )
+    {
+        resumeTransaction(message) ;
+        return ;
+    }    
+
+    /**
+     * Resume the current transaction.
+     *
+     * @message com.arjuna.mw.wst.client.GlueICI_1 [com.arjuna.mw.wst.client.GlueICI_1] - Error in: 
+     * @message com.arjuna.mw.wst.client.GlueICI_2 [com.arjuna.mw.wst.client.GlueICI_2] - Unknown context type: 
+     * @message com.arjuna.mw.wst.client.GlueICI_3 [com.arjuna.mw.wst.client.GlueICI_3] - Stack trace: 
+     */
+
+    private void resumeTransaction(final electric.soap.SOAPMessage soapMessage)
+    {
+    	if (soapMessage != null)
+    	{
+            try
+            {
+                final Element soapHeaderElement = soapMessage.getHeaderElement(CoordinationConstants.WSCOOR_NAMESPACE,
+                        CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+                if (soapHeaderElement != null)
+                {
+                    final CoordinationContextType cc = CoordinationContextHelper.deserialise(soapHeaderElement) ;
+                    final String coordinationType = cc.getCoordinationType().getValue() ;
+                    if (AtomicTransactionConstants.WSAT_PROTOCOL.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextImple(cc) ;
+                        TransactionManagerFactory.transactionManager().resume(txContext) ;
+                    }
+                    else if (BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextImple(cc);
+                        BusinessActivityManagerFactory.businessActivityManager().resume(txContext) ;
+                    }
+                    else
+                    {
+        			    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.GlueICI_1",
+    			            new Object[]{"com.arjuna.mw.wst.client.GlueIncomingContextInterceptor.resumeTransaction()"});
+
+            		    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.GlueICI_2",
+        		            new Object[]{coordinationType});
+                    }
+                }
+            }
+            catch (final Throwable th) 
+    	    {
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.GlueICI_1",
+				    new Object[]{"com.arjuna.mw.wst.client.GlueIncomingContextInterceptor.resumeTransaction()"});
+
+            	wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.GlueICI_3",
+                    new Object[]{th});
+            }
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,134 @@
+/*
+ * 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) 2005,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id$
+ */
+
+/**
+ * @author Malik SAHEB 
+ */
+
+package com.arjuna.mw.wst.client;
+
+import com.arjuna.mw.wsc.context.Context;
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.common.CoordinationContextHelper;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+import electric.soap.ISOAPInterceptor;
+import electric.xml.Element;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages within WebMethods Glue.
+ */
+public class GlueOutgoingContextInterceptor implements ISOAPInterceptor
+{
+    /**
+     * @message com.arjuna.mw.wst.client.GlueOCI_1 [com.arjuna.mw.wst.client.GlueOCI_1] - Error in: 
+     * @message com.arjuna.mw.wst.client.GlueOCI_2 [com.arjuna.mw.wst.client.GlueOCI_2] - Stack trace: 
+     */
+
+    public void intercept( electric.soap.SOAPMessage soapMessage, electric.util.Context messageContext )
+    {
+    	if (soapMessage == null)
+    	{
+    	    return;
+    	}
+    	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() ;
+
+            final Context atContext ;
+            if (transactionManager != null)
+            {
+                final com.arjuna.mwlabs.wst.at.context.TxContextImple txContext =
+                    (com.arjuna.mwlabs.wst.at.context.TxContextImple)transactionManager.currentTransaction() ;
+                atContext = (txContext == null ? null : txContext.context()) ;
+            }
+            else
+            {
+                atContext = null ;
+            }
+            
+            final Context baContext ;
+            if (businessActivityManager != null)
+            {
+                final com.arjuna.mwlabs.wst.ba.context.TxContextImple txContext =
+                    (com.arjuna.mwlabs.wst.ba.context.TxContextImple)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)
+            {
+        		Element headElement = new Element(CoordinationConstants.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT, CoordinationConstants.WSCOOR_NAMESPACE);
+        		headElement.setNamespace(CoordinationConstants.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_NAMESPACE);
+                soapMessage.addHeaderElement(headElement) ;
+        		CoordinationContextHelper.serialise(headElement, coordinationContext) ;
+            }
+        }
+        catch (final Throwable th) 
+        {
+            wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.GlueOCI_1",
+                new Object[]{"com.arjuna.mw.wst.client.GlueOutgoingContextInterceptor.intercept()"});
+
+    	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.GlueOCI_2",
+                new Object[]{th});
+        }
+
+        return;
+    }    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,238 @@
+/*
+ * 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.wst.common.CoordinationContextHelper;
+import com.arjuna.mw.wst.common.SOAPUtil;
+import com.arjuna.mw.wsc.context.Context;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.TxContext;
+
+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.JaxHCP_1 [com.arjuna.mw.wst.client.JaxHCP_1] - Error in:
+ * @message com.arjuna.mw.wst.client.JaxHCP_2 [com.arjuna.mw.wst.client.JacHCP_2] - Stack trace:
+ */
+class JaxBaseHeaderContextProcessor
+{
+    /**
+     * 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 BusinessActivityManager businessActivityManager = BusinessActivityManagerFactory.businessActivityManager() ;
+
+            final Context atContext ;
+            if (transactionManager != null)
+            {
+                final com.arjuna.mwlabs.wst.at.context.TxContextImple txContext =
+                    (com.arjuna.mwlabs.wst.at.context.TxContextImple)transactionManager.currentTransaction() ;
+                atContext = (txContext == null ? null : txContext.context()) ;
+            }
+            else
+            {
+                atContext = null ;
+            }
+
+            final Context baContext ;
+            if (businessActivityManager != null)
+            {
+                final com.arjuna.mwlabs.wst.ba.context.TxContextImple txContext =
+                    (com.arjuna.mwlabs.wst.ba.context.TxContextImple)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(CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT, CoordinationConstants.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_NAMESPACE) ;
+                final SOAPHeaderElement headerElement = header.addHeaderElement(name) ;
+                headerElement.addNamespaceDeclaration(CoordinationConstants.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_NAMESPACE) ;
+                headerElement.setMustUnderstand(true) ;
+                CoordinationContextHelper.serialise(env, headerElement, coordinationContext) ;
+            }
+        }
+        catch (final Throwable th)
+        {
+	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCP_1",
+					  new Object[]{"com.arjuna.mw.wst.client.JaxRPCHeaderContextProcessor.handleRequest()"});
+
+	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCP_2",
+					  new Object[]{th});
+
+            th.printStackTrace(System.err) ;
+        }
+
+        return true ;
+    }
+
+    /**
+     * Resume the current transaction.
+     *
+     * @message com.arjuna.mw.wst.client.JaxHCP_3 [com.arjuna.mw.wst.client.JaxHCP_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, CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+
+                if (soapHeaderElement != null)
+                {
+                    final CoordinationContextType cc = CoordinationContextHelper.deserialise(soapEnvelope, soapHeaderElement) ;
+                    if (cc != null)
+                    {
+                        final String coordinationType = cc.getCoordinationType().getValue() ;
+                        if (AtomicTransactionConstants.WSAT_PROTOCOL.equals(coordinationType))
+                        {
+                            final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextImple(cc) ;
+                            TransactionManagerFactory.transactionManager().resume(txContext) ;
+                        }
+                        else if (BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
+                        {
+                            final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextImple(cc);
+                            BusinessActivityManagerFactory.businessActivityManager().resume(txContext) ;
+                        }
+                        else
+                        {
+            			    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCP_1",
+    			                new Object[]{"com.arjuna.mw.wst.client.JaxRPCHeaderContextProcessor.resumeTransaction()"});
+
+            			    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCP_3",
+                                new Object[]{coordinationType});
+                        }
+                    }
+                }
+            }
+            catch (final Throwable th)
+            {
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCP_1",
+                    new Object[]{"com.arjuna.mw.wst.client.JaxRPCHeaderContextProcessor.resumeTransaction()"});
+
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCP_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) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,120 @@
+/*
+ * 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$
+ */
+
+package com.arjuna.mw.wst.client;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.handler.Handler;
+import javax.xml.rpc.handler.HandlerInfo;
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
+
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages using JaxRPC.
+ *
+ */
+
+public class JaxRPCHeaderContextProcessor extends JaxBaseHeaderContextProcessor implements Handler
+{
+    /**
+     * The handler information.
+     */
+    private HandlerInfo handlerInfo ;
+
+    /**
+     * Initialise the handler information.
+     * @param handlerInfo The handler information.
+     */
+    public void init(final HandlerInfo handlerInfo)
+    {
+        this.handlerInfo = handlerInfo ;
+    }
+
+    /**
+     * Destroy the handler.
+     */
+    public void destroy()
+    {
+    }
+
+    /**
+     * Get the headers.
+     * @return the headers.
+     */
+    public QName[] getHeaders()
+    {
+		return new QName[] {new QName(CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT)};
+    }
+
+    /**
+     * Handle the request.
+     * @param messageContext The current message context.
+     */
+
+    public boolean handleRequest(final MessageContext messageContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        final SOAPMessage soapMessage = soapMessageContext.getMessage() ;
+
+        return handleOutboundMessage(soapMessage);
+    }
+
+    /**
+     * Handle the response.
+     * @param messageContext The current message context.
+     */
+    public boolean handleResponse(final MessageContext messageContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        resumeTransaction(soapMessageContext.getMessage()) ;
+        return true ;
+    }
+
+    /**
+     * Handle the fault.
+     * @param messageContext The current message context.
+     */
+    public boolean handleFault(final MessageContext messageContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        resumeTransaction(soapMessageContext.getMessage()) ;
+        return true ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,122 @@
+/*
+ * 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 java.util.Set;
+import java.util.HashSet;
+
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+import javax.xml.soap.*;
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+
+/**
+ * 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 JaxWSHeaderContextProcessor extends JaxBaseHeaderContextProcessor implements SOAPHandler
+{
+    /**
+     * Process a message. Determines if it is inbound or outbound and dispatches accordingly.
+     *
+     * @param msgContext
+     * @return true
+     */
+    public boolean handleMessage(MessageContext 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(MessageContext 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(CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.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(MessageContext messageContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        final SOAPMessage soapMessage = soapMessageContext.getMessage() ;
+
+        resumeTransaction(soapMessage);
+        return true ;
+    }
+
+    /**
+     * Process the tx thread context and attach serialized version as msg header
+     *
+     * @param messageContext
+     * @return true
+     */
+    protected boolean handleOutbound(MessageContext messageContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        final SOAPMessage soapMessage = soapMessageContext.getMessage() ;
+
+        return handleOutboundMessage(soapMessage);
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+package com.arjuna.mw.wst.common;
+
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.webservices.adapters.DOMXMLStreamReader;
+import com.arjuna.webservices.adapters.DOMXMLStreamWriter;
+import com.arjuna.webservices.adapters.SAAJXMLStreamReader;
+import com.arjuna.webservices.adapters.SAAJXMLStreamWriter;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+/**
+ * Helper class for serialising Coordination Contexts into SOAP headers.
+ * @author kevin
+ */
+public class CoordinationContextHelper
+{
+    /**
+     * Serialise a coordination context to a SAAJ SOAP Header Element.
+     * @param env The SOAP envelope.
+     * @param headerElement The SOAP header element to populate.
+     * @param coordinationContext The coordination context.
+     * @throws XMLStreamException for errors during parsing.
+     */
+    public static void serialise(final SOAPEnvelope env, final SOAPHeaderElement headerElement, final CoordinationContextType coordinationContext)
+        throws XMLStreamException
+    {
+        final XMLStreamWriter out = new SAAJXMLStreamWriter(env, headerElement) ;
+        coordinationContext.writeContent(out) ;
+    }
+
+    /**
+     * Deserialise a coordination context from a SAAJ SOAP Header Element.
+     * @param env The SOAP envelope.
+     * @param headerElement The SOAP header element to deserialise.
+     * @return The coordination context.
+     * @throws XMLStreamException for errors during parsing.
+     */
+    public static CoordinationContextType deserialise(final SOAPEnvelope env, final SOAPHeaderElement headerElement)
+        throws XMLStreamException
+    {
+        final XMLStreamReader in = new SAAJXMLStreamReader(headerElement) ;
+        return new CoordinationContextType(in) ;
+    }
+
+    /**
+     * Serialise a coordination context to a DOM SOAP Header Element.
+     * @param headerElement The SOAP header element to populate.
+     * @param coordinationContext The coordination context.
+     * @throws XMLStreamException for errors during parsing.
+     */
+    public static void serialise(final Element headerElement, final CoordinationContextType coordinationContext)
+        throws XMLStreamException
+    {
+        final XMLStreamWriter out = new DOMXMLStreamWriter(headerElement) ;
+        coordinationContext.writeContent(out) ;
+    }
+
+    /**
+     * Deserialise a coordination context from a DOM SOAP Header Element.
+     * @param headerElement The SOAP header element to deserialise.
+     * @return The coordination context.
+     * @throws XMLStreamException for errors during parsing.
+     */
+    public static CoordinationContextType deserialise(final Element headerElement)
+        throws XMLStreamException
+    {
+        final XMLStreamReader in = new DOMXMLStreamReader(headerElement) ;
+        return new CoordinationContextType(in) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/Environment.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/Environment.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/Environment.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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: Environment.java,v 1.6 2004/09/09 08:48:48 kconner Exp $
+ */
+
+package com.arjuna.mw.wst.common;
+
+/**
+ */
+
+public interface Environment
+{
+
+    public static final String COORDINATOR_URL = "com.arjuna.mw.wst.coordinatorURL";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/SOAPUtil.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/SOAPUtil.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/SOAPUtil.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,127 @@
+/*
+ * 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 java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import javax.xml.soap.SOAPElement;
+
+/**
+ * Utility class for SOAP.
+ * @author kevin
+ */
+public class SOAPUtil
+{
+    /**
+     * Get an iterator containing just child elements.
+     * @param soapElement The parent soap element.
+     * @return The iterator of SOAPElements.
+     */
+    public static Iterator getChildElements(final SOAPElement soapElement)
+    {
+        return new SOAPElementIterator(soapElement.getChildElements()) ;
+    }
+    
+    /**
+     * An iterator class that skips any nodes which are not SOAPElements.
+     * @author kevin
+     */
+    private static final class SOAPElementIterator implements Iterator
+    {
+        /**
+         * The wrapped iterator.
+         */
+        private final Iterator elementIter ;
+        /**
+         * The current object.
+         */
+        private Object current ;
+        
+        /**
+         * Construct the iterator.
+         * @param elementIter The iterator being wrapped.
+         */
+        SOAPElementIterator(final Iterator elementIter)
+        {
+            this.elementIter = elementIter ;
+        }
+        
+        /**
+         * Are there any more elements?
+         * @return true if the iterator has more elements, false otherwise.
+         */
+        public boolean hasNext()
+        {
+            checkCurrent() ;
+            return (current != null) ;
+        }
+        
+        /**
+         * Get the next element.
+         * @return the next element.
+         * @throws NoSuchElementException if there are no more elements.
+         */
+        public Object next()
+            throws NoSuchElementException
+        {
+            checkCurrent() ;
+            if (current == null)
+            {
+                throw new NoSuchElementException("No more elements in iterator") ;
+            }
+            final Object result = current ;
+            current = null ;
+            return result ;
+        }
+        
+        /**
+         * Remove the current object. &nbsp;This method is not supported on this iterator.
+         * @throws UnsupportedOperationException if not supported.
+         * @throws IllegalStateException if the next method has not been called or
+         * remove has already been called on the current element.
+         */
+        public void remove()
+            throws UnsupportedOperationException
+        {
+            throw new UnsupportedOperationException("Remove not supported on this iterator") ;
+        }
+        
+        /**
+         * Check the current element.
+         */
+        private void checkCurrent()
+        {
+            if (current == null)
+            {
+                while (elementIter.hasNext())
+                {
+                    final Object  next = elementIter.next() ;
+                    if (next instanceof SOAPElement)
+                    {
+                        current = next ;
+                        break ;
+                    }
+                }
+            }
+        }
+    }
+}

Added: 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	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/deploy/WSTXInitialisation.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,200 @@
+/*
+ * 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.deploy;
+
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.text.MessageFormat;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+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
+ */
+public class WSTXInitialisation implements ServletContextListener
+{
+    /**
+     * The name of the WS-T configuration.
+     */
+    private static final String WS_T_CONFIG = "/wst.xml" ;
+    
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     * 
+     * @message com.arjuna.mw.wst.deploy.WSTXI_1 [com.arjuna.mw.wst.deploy.WSTXI_1] - WSTX Initialisation: init failed:
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        final WSTXInitialisation listener = this;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSTX) {
+           public void run() {
+               try
+               {
+                   Configuration.initialise("/wstx.xml");
+
+                   listener.configure();
+                   // Start recovery
+//            RecoveryManager.manager() ;
+               }
+               catch (Exception exception)
+               {
+                   wstxLogger.arjLoggerI18N.error("com.arjuna.mw.wst.deploy.WSTXI_1", exception);
+               }
+               catch (Error error)
+               {
+                   wstxLogger.arjLoggerI18N.error("com.arjuna.mw.wst.deploy.WSTXI_21", error);
+               }
+           }
+        };
+        // this is the last WST callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WSTX);
+    }
+    
+    /**
+     * Configure WS-T.
+     * 
+     * @message com.arjuna.mw.wst.deploy.WSTXI_21 [com.arjuna.mw.wst.deploy.WSTXI_21] - {0} not found.
+     * @message com.arjuna.mw.wst.deploy.WSTXI_22 [com.arjuna.mw.wst.deploy.WSTXI_22] - Failed to create document: {0}
+     * @message com.arjuna.mw.wst.deploy.WSTXI_23 [com.arjuna.mw.wst.deploy.WSTXI_23] - Missing WSTX Initialisation
+     */
+    private void configure()
+        throws Exception
+    {
+        // mostly original JNDI binder code.  Should be tidied up.
+        final InputStream is = ClassLoaderHelper.getResourceAsStream(getClass(), WS_T_CONFIG) ;
+
+        if (is == null)
+        {
+            final String pattern = wstxLogger.log_mesg.getString("com.arjuna.mw.wst.deploy.WSTXI_21") ;
+            throw new FileNotFoundException(MessageFormat.format(pattern, new Object[] {WS_T_CONFIG}));
+        }
+        
+        final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() ;
+        final DocumentBuilder builder = factory.newDocumentBuilder() ;
+        final Document doc = builder.parse(is);
+
+        if (doc == null)
+        {
+            final String pattern = wstxLogger.log_mesg.getString("com.arjuna.mw.wst.deploy.WSTXI_22") ;
+            throw new FileNotFoundException(MessageFormat.format(pattern, new Object[] {WS_T_CONFIG}));
+        }
+
+        final Element docElem = doc.getDocumentElement() ;
+        final String userTx = getService(docElem, "UserTransaction") ;
+        final String txManager = getService(docElem, "TransactionManager") ;
+        final String userBa = getService(docElem, "UserBusinessActivity") ;
+        final String baManager = getService(docElem, "BusinessActivityManager") ;
+
+        if ((userTx == null) || (txManager == null) || (userBa == null) || (baManager == null))
+        {
+            throw new FileNotFoundException(wstxLogger.log_mesg.getString("com.arjuna.mw.wst.deploy.WSTXI_23"));
+        }
+        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()) ;
+    }
+
+    /**
+     * Get the specified service.
+     * @param root The root element.
+     * @param name The name of the service.
+     * @return The service name or null if not present.
+     */
+    private static String getService(final Node root, final String name)
+    {
+        final NodeList children = root.getChildNodes();
+            
+        for (int i = 0; i < children.getLength(); i++)
+        {
+            final Node item = children.item(i) ;
+            
+            if ("service".equals(item.getNodeName()))
+            {
+                final Element type = (Element)item;
+                    
+                if (name.equals(type.getAttribute("name")))
+                {
+                    return getImplementation(type);
+                }
+            }
+        }
+        
+        return null;
+    }
+    
+    /**
+     * Get the specified service.
+     * @param service The service element.
+     * @return The service name or null if not present.
+     */
+    private static String getImplementation(final Node service)
+    {
+        final NodeList children = service.getChildNodes();
+        
+        for (int i = 0; i < children.getLength(); i++)
+        {
+            final Node item = children.item(i);
+            
+            if ("parameter".equals(item.getNodeName()))
+            {
+                final Element type = (Element)item;
+                
+                if ("className".equals(type.getAttribute("name")))
+                {
+                    return type.getAttribute("value");
+                }
+            }
+        }
+        
+        return null;
+    }
+
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+//        RecoveryManager.manager().stop() ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicCommitException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicCommitException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicCommitException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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: HeuristicCommitException.java,v 1.1 2003/02/03 11:01:25 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if a participant or transaction commit when the request was to
+ * roll back. Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicCommitException.java,v 1.1 2003/02/03 11:01:25 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicCommitException extends Exception
+{
+
+    public HeuristicCommitException ()
+    {
+	super();
+    }
+
+    public HeuristicCommitException (String s)
+    {
+	super(s);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicHazardException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicHazardException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicHazardException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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: HeuristicHazardException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the outcome of at least one participant is unknown.
+ * Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicHazardException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicHazardException extends Exception
+{
+
+    public HeuristicHazardException ()
+    {
+	super();
+    }
+
+    public HeuristicHazardException (String s)
+    {
+	super(s);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicMixedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicMixedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicMixedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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: HeuristicMixedException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if some of the participants commit while others rollback.
+ * Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicMixedException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicMixedException extends Exception
+{
+
+    public HeuristicMixedException ()
+    {
+	super();
+    }
+
+    public HeuristicMixedException (String s)
+    {
+	super(s);
+    }
+
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+/*
+ * 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: HeuristicRollbackException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the participants rolled back when the request was to commit.
+ * Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicRollbackException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicRollbackException extends Exception
+{
+
+    public HeuristicRollbackException ()
+    {
+	super();
+    }
+
+    public HeuristicRollbackException (String s)
+    {
+	super(s);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/SystemException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/SystemException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/SystemException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: SystemException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the transaction is unknown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SystemException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SystemException extends Exception
+{
+    
+    public SystemException ()
+    {
+	super();
+    }
+
+    public SystemException (String s)
+    {
+	super(s);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: TransactionRolledBackException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the transaction rolls back rather than commits.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionRolledBackException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionRolledBackException extends Exception
+{
+    
+    public TransactionRolledBackException ()
+    {
+	super();
+    }
+
+    public TransactionRolledBackException (String s)
+    {
+	super(s);
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownParticipantException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownParticipantException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownParticipantException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: UnknownParticipantException.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the transaction is unknown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnknownParticipantException.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnknownParticipantException extends Exception
+{
+    
+    public UnknownParticipantException ()
+    {
+	super();
+    }
+
+    public UnknownParticipantException (String s)
+    {
+	super(s);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownTransactionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownTransactionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/UnknownTransactionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: UnknownTransactionException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the transaction is unknown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnknownTransactionException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnknownTransactionException extends Exception
+{
+    
+    public UnknownTransactionException ()
+    {
+	super();
+    }
+
+    public UnknownTransactionException (String s)
+    {
+	super(s);
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/WrongStateException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/WrongStateException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/exceptions/WrongStateException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+/*
+ * 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: WrongStateException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.exceptions;
+
+/**
+ * Thrown if the transaction is unknown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: WrongStateException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class WrongStateException extends Exception
+{
+    
+    public WrongStateException ()
+    {
+	super();
+    }
+
+    public WrongStateException (String s)
+    {
+	super(s);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreement.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreement.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreement.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessAgreement.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ */
+
+public interface BusinessAgreement
+{
+
+    public void close () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    public void cancel () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    public void compensate () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    public void forget () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    public String identifier () throws SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessAgreementWithComplete.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ */
+
+public interface BusinessAgreementWithComplete extends BusinessAgreement
+{
+    
+    public void complete () throws WrongStateException, UnknownTransactionException, SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CompletionParticipant.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * The CompletionParticipant.
+ */
+
+public interface CompletionParticipant
+{
+
+    public void committed () throws UnknownTransactionException, SystemException;
+    public void aborted () throws UnknownTransactionException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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: CompletionWithAckParticipant.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+/**
+ * The CompletionWithAckParticipant. The signature is essentially the same
+ * as the CompletionParticipant, but we may want to be able to differentiate
+ * between the two types internally. Hence the two distinct interfaces.
+ */
+
+public interface CompletionWithAckParticipant extends CompletionParticipant
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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: OutcomeNotificationParticipant.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * The OutcomeNotificationParticipant. Essentially the second half of the
+ * traditional Synchronization.
+ */
+
+public interface OutcomeNotificationParticipant
+{
+
+    public void committed () throws UnknownTransactionException, SystemException;
+    public void aborted () throws UnknownTransactionException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/PhaseZeroParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/PhaseZeroParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/PhaseZeroParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: PhaseZeroParticipant.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * The PhaseZeroParticipant. This is half of a traditional Synchronization
+ * interface.
+ */
+
+public interface PhaseZeroParticipant
+{
+
+    public void phaseZero () throws UnknownTransactionException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/TwoPhaseParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/TwoPhaseParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/resources/TwoPhaseParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: TwoPhaseParticipant.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.resources;
+
+import com.arjuna.mw.wst.vote.Vote;
+
+import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * The TwoPhaseParticipant. As with all traditional TP implementations, the
+ * one-phase commit optimisation is supported.
+ */
+
+public interface TwoPhaseParticipant
+{
+
+    public Vote prepare () throws WrongStateException, HeuristicHazardException, HeuristicMixedException, UnknownTransactionException, SystemException;
+
+    public void commit () throws WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicRollbackException, UnknownTransactionException, SystemException;
+
+    public void rollback () throws WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCommitException, UnknownTransactionException, SystemException;
+
+    public void commitOnePhase () throws WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicRollbackException, UnknownTransactionException, SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,133 @@
+/*
+ * 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) 2005,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id$
+ *
+ * @author Malik SAHEB 
+ */
+
+package com.arjuna.mw.wst.service;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.common.CoordinationContextHelper;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+import electric.soap.ISOAPInterceptor;
+import electric.xml.Element;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages within WebMethods Glue.
+ *
+ * @message com.arjuna.mw.wst.service.GlueICI_1 [com.arjuna.mw.wst.service.GlueICI_1] - Error in: 
+ * @message com.arjuna.mw.wst.service.GlueICI_2 [com.arjuna.mw.wst.service.GlueICI_2] - Stack trace: 
+ * @message com.arjuna.mw.wst.service.GlueICI_3 [com.arjuna.mw.wst.service.GlueICI_3] - Unknown context type: 
+ */
+
+public class GlueIncomingContextInterceptor implements ISOAPInterceptor
+{
+    public void intercept( electric.soap.SOAPMessage soapMessage, electric.util.Context messageContext )
+    {
+        if (soapMessage != null)
+        {
+            try
+            {
+                final TransactionManager transactionManager = TransactionManagerFactory.transactionManager() ;
+                final BusinessActivityManager businessActivityManager = BusinessActivityManagerFactory.businessActivityManager() ;
+
+                if (transactionManager != null)
+                {
+                    final com.arjuna.mwlabs.wst.at.context.TxContextImple txContext =
+                        (com.arjuna.mwlabs.wst.at.context.TxContextImple)transactionManager.suspend() ;
+
+                    if (txContext != null)
+                    {
+                        messageContext.setProperty(AtomicTransactionConstants.WSAT_PROTOCOL, txContext) ;
+                    }
+                }
+
+                if (businessActivityManager != null)
+                {
+                    final com.arjuna.mwlabs.wst.ba.context.TxContextImple txContext =
+                        (com.arjuna.mwlabs.wst.ba.context.TxContextImple)businessActivityManager.suspend() ;
+
+                    if (txContext != null)
+                    {
+                        messageContext.setProperty(BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, txContext) ;
+                    }
+                }
+
+                final Element soapHeaderElement = soapMessage.getHeaderElement(CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+
+                if (soapHeaderElement != null)
+                {
+                    final CoordinationContextType cc = CoordinationContextHelper.deserialise(soapHeaderElement) ;
+
+                    final String coordinationType = cc.getCoordinationType().getValue() ;
+
+                    if (AtomicTransactionConstants.WSAT_PROTOCOL.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextImple(cc) ;
+                        transactionManager.resume(txContext) ;
+                    }
+                    else if (BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextImple(cc);
+                        businessActivityManager.resume(txContext) ;
+                    }
+                    else
+                    {
+            		    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.GlueICI_1",
+                            new Object[]{"com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor.intercept()"});
+
+            		    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.GlueICI_3",
+                            new Object[]{coordinationType});
+                    }
+                }
+            }
+            catch (final Throwable th) 
+            {
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.GlueICI_1",
+                    new Object[]{"com.arjuna.mw.wst.service.GlueIncomingContextInterceptor.intercept()"});
+
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.GlueICI_2",
+                    new Object[]{th});
+            }
+        }
+    }    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2005,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id$
+ */
+
+package com.arjuna.mw.wst.service;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+
+import electric.soap.ISOAPInterceptor;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages within WebMethods Glue.
+ *
+ * @message com.arjuna.mw.wst.service.GlueOCI_1 [com.arjuna.mw.wst.service.GlueOCI_1] - Error in: 
+ * @message com.arjuna.mw.wst.service.GlueOCI_2 [com.arjuna.mw.wst.service.GlueOCI_2] - Stack trace: 
+ */
+
+public class GlueOutgoingContextInterceptor implements ISOAPInterceptor
+{
+
+    public void intercept( electric.soap.SOAPMessage soapMessage, electric.util.Context messageContext )
+    {
+        try
+        {
+            final TransactionManager transactionManager = TransactionManagerFactory.transactionManager() ;
+            final com.arjuna.mwlabs.wst.at.context.TxContextImple atTXContext =
+                (com.arjuna.mwlabs.wst.at.context.TxContextImple)messageContext.getProperty(AtomicTransactionConstants.WSAT_PROTOCOL) ;
+
+            if (atTXContext != null)
+            {
+                transactionManager.resume(atTXContext) ;
+            }
+            else
+            {
+                transactionManager.suspend() ;
+            }
+
+            final BusinessActivityManager businessActivityManager = BusinessActivityManagerFactory.businessActivityManager() ;
+            final com.arjuna.mwlabs.wst.ba.context.TxContextImple baTXContext =
+                (com.arjuna.mwlabs.wst.ba.context.TxContextImple)messageContext.getProperty(BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME) ;
+
+            if (baTXContext != null)
+            {
+                businessActivityManager.resume(baTXContext) ;
+            }
+            else
+            {
+                businessActivityManager.suspend() ;
+            }
+        }
+        catch (final Throwable th) 
+        {
+    	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.GlueOCI_1",
+                new Object[]{"com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor.intercept()"});
+
+    	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.GlueOCI_2",
+                new Object[]{th});
+        }
+    }    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.mw.wst.common.CoordinationContextHelper;
+import com.arjuna.mw.wst.common.SOAPUtil;
+import com.arjuna.mw.wst.*;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+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.JaxHCP_1 [com.arjuna.mw.wst.service.JaxHCP_1] - Error in:
+ * @message com.arjuna.mw.wst.service.JaxHCP_2 [com.arjuna.mw.wst.service.JaxHCP_2] - Stack trace:
+ * @message com.arjuna.mw.wst.service.JaxHCP_3 [com.arjuna.mw.wst.service.JaxHCP_3] - Unknown context type:
+ */
+class JaxBaseHeaderContextProcessor
+{
+    /**
+     * 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, CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+
+                if (soapHeaderElement != null)
+                {
+                    final CoordinationContextType cc = CoordinationContextHelper.deserialise(soapEnvelope, soapHeaderElement) ;
+                    final String coordinationType = cc.getCoordinationType().getValue() ;
+                    if (AtomicTransactionConstants.WSAT_PROTOCOL.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextImple(cc) ;
+                        TransactionManagerFactory.transactionManager().resume(txContext) ;
+                        clearMustUnderstand(soapHeader, soapHeaderElement) ;
+                    }
+                    else if (BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextImple(cc);
+                        BusinessActivityManagerFactory.businessActivityManager().resume(txContext) ;
+                        clearMustUnderstand(soapHeader, soapHeaderElement) ;
+                    }
+                    else
+                    {
+                        wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCP_1",
+                                new Object[]{"com.arjuna.mw.wst.service.JaxRPCHeaderContextProcessor.handleRequest(MessageContext context)"});
+
+                        wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCP_3",
+                                new Object[]{coordinationType});
+                    }
+                }
+            }
+            catch (final Throwable th)
+            {
+                wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCP_1",
+                        new Object[]{"com.arjuna.mw.wst.service.JaxRPCHeaderContextProcessor.handleRequest(MessageContext context)"});
+
+                wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCP_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.JaxHCP_1",
+                    new Object[]{"com.arjuna.mw.wst.service.JaxRPCHeaderContextProcessor.suspendTransaction()"});
+
+            wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCP_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) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,117 @@
+/*
+ * 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$
+ */
+
+package com.arjuna.mw.wst.service;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.handler.Handler;
+import javax.xml.rpc.handler.HandlerInfo;
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFactory;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
+
+
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages using JaxRPC.
+ */
+public class JaxRPCHeaderContextProcessor extends JaxBaseHeaderContextProcessor implements Handler
+{
+    /**
+     * The handler information.
+     */
+    private HandlerInfo handlerInfo ;
+
+    /**
+     * Initialise the handler information.
+     * @param handlerInfo The handler information.
+     */
+    public void init(final HandlerInfo handlerInfo)
+    {
+        this.handlerInfo = handlerInfo ;
+    }
+
+    /**
+     * Destroy the handler.
+     */
+    public void destroy()
+    {
+    }
+
+    /**
+     * Get the headers.
+     * @return the headers.
+     */
+    public QName[] getHeaders()
+    {
+		return new QName[] {new QName(CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT)};
+    }
+
+    /**
+     * Handle the request.
+     * @param messageContext The current message context.
+     */
+    public boolean handleRequest(final MessageContext messageContext)
+    {
+		final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        final SOAPMessage soapMessage = soapMessageContext.getMessage() ;
+
+        return handleInboundMessage(soapMessage);
+    }
+
+    /**
+     * Handle the response.
+     * @param messageContext The current message context.
+     */
+    public boolean handleResponse(final MessageContext messageContext)
+    {
+        suspendTransaction() ;
+        return true ;
+    }
+
+    /**
+     * Handle the fault.
+     * @param messageContext The current message context.
+     */
+    public boolean handleFault(final MessageContext messageContext)
+    {
+        suspendTransaction() ;
+        return true ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,117 @@
+/*
+ * 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 java.util.Set;
+import java.util.HashSet;
+
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+import javax.xml.soap.*;
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+
+/**
+ * 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 JaxWSHeaderContextProcessor extends JaxBaseHeaderContextProcessor implements SOAPHandler
+{
+    /**
+     * Process a message. Determines if it is inbound or outbound and dispatches accordingly.
+     *
+     * @param msgContext
+     * @return true
+     */
+    public boolean handleMessage(MessageContext 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(MessageContext 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(CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.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(MessageContext 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(MessageContext messageContext)
+    {
+        suspendTransaction() ;
+        return true;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Aborted.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Aborted.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Aborted.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: Aborted.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.vote;
+
+/**
+ * Aborted: the participant has aborted and the transaction should also
+ * attempt to do so.
+ */
+
+public class Aborted implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Prepared.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Prepared.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Prepared.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+/*
+ * 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: Prepared.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.vote;
+
+/**
+ * Prepared: it is prepared to commit or rollback depending on the final
+ * transaction outcome, and it has made sufficient state updates persistent
+ * to accomplish this.
+ */
+
+public class Prepared implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/ReadOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/ReadOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/ReadOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: ReadOnly.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.vote;
+
+/**
+ * ReadOnly: does not need to be informed of the transaction outcome as no
+ * state updates were made.
+ */
+
+public class ReadOnly implements Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Vote.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Vote.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/vote/Vote.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Vote.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wst.vote;
+
+/**
+ * When asked to prepare, a 2PC participant returns one of three types of
+ * vote:
+ *
+ * ReadOnly: does not need to be informed of the transaction outcome as no
+ * state updates were made.
+ * Prepared: it is prepared to commit or rollback depending on the final
+ * transaction outcome, and it has made sufficient state updates persistent
+ * to accomplish this.
+ * Aborted: the participant has aborted and the transaction should also
+ * attempt to do so.
+ */
+
+public interface Vote
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+/*
+ * 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: TransactionManager.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx;
+
+import com.arjuna.mw.wstx.resource.Participant;
+import com.arjuna.mw.wstx.resource.Synchronization;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+import com.arjuna.mw.wstx.exceptions.DuplicateParticipantException;
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.InvalidTransactionException;
+import com.arjuna.mw.wstx.exceptions.InvalidParticipantException;
+import com.arjuna.mw.wstx.exceptions.DuplicateSynchronizationException;
+import com.arjuna.mw.wstx.exceptions.InvalidSynchronizationException;
+
+/**
+ * This is the service side component of the user interface. Since services
+ * or some entity acting on their behalf (e.g., an interceptor) must enlist
+ * participants with the transaction, this interface
+ * primarily concentrates on those methods. However, a service may well
+ * not be the final destination for a transaction, i.e., in order to perform
+ * its work, the service may have to make other remote invocations on other
+ * services and propagate the context, suspend it, etc. As such, all of the
+ * UserTransaction methods are also available to the service.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionManager.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface TransactionManager
+{
+    /**
+     * Enrol the specified participant in the current transaction such that
+     * it will be invoked during the two-phase commit protocol.
+     * It is illegal to call this method when no transaction is associated
+     * with the thread.
+     *
+     * @param participant The participant to enrol.
+     *
+     * @exception WrongStateException Thrown if the transaction is not in a state
+     * whereby participants can be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant
+     * has already been associated with the transaction.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception InvalidTransactionException Thrown if the transaction associated with
+     * the thread is invalid.
+     * @exception InvalidParticipantException Thrown if the participant reference
+     * is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlist (Participant participant) throws WrongStateException, DuplicateParticipantException, NoTransactionException, InvalidTransactionException, InvalidParticipantException, SystemException;
+    
+    /**
+     * Cause the specified participant to resign from the transaction.
+     *
+     * CAUTION: use with *extreme* care since if invoked at the wrong time
+     * it could lead to data corruption or state modifications that are
+     * no longer under the control of the transaction. You *must* ensure
+     * that no state changes have been made that should be controlled by
+     * the specified participant.
+     *
+     * @param participant The participant to resign.
+     *
+     * @exception InvalidTransactionException Thrown if the transaction associated with
+     * the thread is invalid.
+     * @exception NoTransactionException Thrown if no transaction is associated
+     * with the invoking thread.
+     * @exception InvalidParticipantException Thrown if the transaction does not know
+     * about the specified participant or the parameter is invalid.
+     * @exception WrongStateException Thrown if the transaction is not in a state
+     * that allows participants to resign.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void delist (Participant participant) throws InvalidTransactionException, NoTransactionException, InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * Enlist a synchronization with the current transaction. Synchronizations
+     * do not receive the two-phase commit messages but instead are invoked
+     * prior to its start and after it has completed.
+     *
+     * @param participant The synchronization to enroll.
+     *
+     * @exception WrongStateException Thrown if the transaction state is such
+     * that synchronizations cannot be enrolled.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception InvalidTransactionException Thrown if the transaction is not
+     * top-level.
+     * @exception InvalidSynchronizationException Thrown if the synchronization
+     * reference is invalid.
+     * @exception DuplicateSynchronizationException Thrown if the synchronization
+     * has already been registered with the transaction.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addSynchronization (Synchronization participant) throws WrongStateException, NoTransactionException, InvalidTransactionException, InvalidSynchronizationException, DuplicateSynchronizationException, SystemException;
+
+    /**
+     * Remove the specified synchronization participant from the transaction.
+     *
+     * @param participant The participant to remove.
+     *
+     * @exception InvalidTransactionException Thrown if the transaction is not
+     * top-level.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the current thread.
+     * @exception InvalidSynchronizationException Thrown if the transaction
+     * does not know about the specified synchronization.
+     * @exception WrongStateException Thrown if the state of the transaction is
+     * such that the synchronization cannot be removed.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void removeSynchronization (Synchronization participant) throws InvalidTransactionException, NoTransactionException, InvalidSynchronizationException, WrongStateException, SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/TransactionManagerFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,165 @@
+/*
+ * 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: TransactionManagerFactory.java,v 1.5 2005/03/10 15:37:12 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.mw.wstx.common.TransactionXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.HashMap;
+
+/**
+ * This class is used to obtain the TransactionManager implementation to
+ * use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionManagerFactory.java,v 1.5 2005/03/10 15:37:12 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionManagerFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the UserCoordinator implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wstx.TransactionManagerFactory_1 [com.arjuna.mw.wstx.TransactionManagerFactory_1] - Failed to create document: 
+     */
+
+    public static TransactionManager transactionManager () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(com.arjuna.mwlabs.wstx.model.as.twophase.TwoPhaseTxManager.class.getName());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wstx.TransactionManagerFactory_1",
+					      new Object[]{com.arjuna.mwlabs.wstx.model.as.twophase.TwoPhaseTxManager.class.getName()});
+	    }
+	    else
+	    {
+		if (!_protocolManager.present(doc))
+		    _protocolManager.addProtocol(doc, com.arjuna.mwlabs.wstx.model.as.twophase.TwoPhaseTxManager.class.getName());
+		
+		return transactionManager(doc);
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the UserCoordinator implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static TransactionManager transactionManager (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, TransactionXSD.transactionType);
+		String protocolType = child.getNodeValue();
+		TransactionManager tx = (TransactionManager) _implementations.get(protocolType);
+	
+		if (tx == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+	
+		    if (implementation instanceof String)
+		    {
+			Class txImpl = Class.forName((String) implementation);
+
+			tx = (TransactionManager) txImpl.newInstance();
+		    }
+		    else
+			tx = (TransactionManager) implementation;
+
+		    _implementations.put(protocolType, tx);
+		}
+
+		return tx;
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,237 @@
+/*
+ * 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: UserTransaction.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx;
+
+import com.arjuna.mw.wsas.status.Status;
+
+import com.arjuna.mw.wstx.transaction.*;
+
+import com.arjuna.mw.wstx.common.TxId;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+// TODO: obtain via configuration
+
+import com.arjuna.mwlabs.wstx.common.arjunacore.TxIdImple;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+
+import com.arjuna.mw.wstx.exceptions.InvalidTransactionException;
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.HeuristicHazardException;
+import com.arjuna.mw.wstx.exceptions.HeuristicMixedException;
+import com.arjuna.mw.wstx.exceptions.HeuristicCommitException;
+import com.arjuna.mw.wstx.exceptions.HeuristicRollbackException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+import com.arjuna.mw.wstx.exceptions.TransactionCommittedException;
+
+/**
+ * The user portion of the transaction API.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserTransaction.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface UserTransaction
+{
+
+    /**
+     * Start a new transaction. If there is already a transaction associated
+     * with the thread then it will be nested.
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * transaction is in a state that does not allow a new transaction to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin () throws WrongStateException, SystemException;
+
+    /**
+     * Commit the transaction. All participants that are still enlisted
+     * with the transaction are committed.
+     *
+     * @exception InvalidTransactionException Thrown if the current transaction is not
+     * known about by the transaction system.
+     * @exception WrongStateException Thrown if the current transaction is not in a
+     * state that allows commit to be called.
+     * @exception HeuristicHazardException Thrown if the participants generated a hazard
+     * heuristic.
+     * @exception HeuristicMixedException Thrown if the participants generated a mixed heuristic.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void commit () throws InvalidTransactionException, WrongStateException, HeuristicHazardException, HeuristicMixedException, SystemException, NoTransactionException, TransactionRolledBackException;
+
+    /**
+     * Abort the transaction. All participants that are still enlisted
+     * with the transaction are rolled back.
+     *
+     * @exception InvalidTransactionException Thrown if the current transaction is not
+     * known about by the transaction system.
+     * @exception WrongStateException Thrown if the current transaction is not in a
+     * state that allows cancel to be called.
+     * @exception HeuristicHazardException Thrown if the participants generated a hazard
+     * heuristic.
+     * @exception HeuristicMixedException Thrown if the participants generated a mixed heuristic.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void rollback () throws InvalidTransactionException, WrongStateException, HeuristicHazardException, HeuristicMixedException, SystemException, NoTransactionException, TransactionCommittedException;
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current transaction. If there is no
+     * transaction associated with the thread then NO_TRANSACTION
+     * will be returned.
+     */
+
+    public Status status () throws SystemException;
+
+    /**
+     * What is the name of the current transaction? Use only for
+     * debugging purposes.
+     *
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the name of the transaction.
+     */
+
+    public String transactionName () throws NoTransactionException, SystemException;
+    
+    /**
+     * Suspend all transactions associated with this thread. The thread then
+     * becomes associated with no transaction.
+     *
+     * @exception SystemException if any error occurs.
+     *
+     * @return a representation of the context associated with the thread,
+     * or null if there is no context.
+     */
+
+    public TransactionHierarchy suspend () throws SystemException;
+    
+    /**
+     * Associate this thread with the specified context. Any current
+     * associations are lost.
+     *
+     * @param tx The context representation to associate (may be
+     * null).
+     *
+     * @exception InvalidTransactionException Thrown if the context is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (TransactionHierarchy tx) throws InvalidTransactionException, SystemException;
+
+    /**
+     * @return a representation of the context currently associated with
+     * the invoking thread, or null if there is none.
+     */
+
+    public TransactionHierarchy currentTransaction () throws SystemException;
+
+    /**
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the current thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the qualifiers that are currently associated with the
+     * transaction, or null if there are none.
+     */
+
+    public Qualifier[] qualifiers () throws NoTransactionException, SystemException;
+
+    /**
+     * Set the state of the transaction such that the only possible outcome is
+     * for it to rollback.
+     *
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the current thread.
+     * @exception WrongStateException Thrown if the state of the transaction is
+     * such that it is not possible to put it into a rollback-only state, e.g.,
+     * it is committing.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setRollbackOnly () throws NoTransactionException, WrongStateException, SystemException;
+
+    /**
+     * Get the timeout value currently associated with the transaction.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException;
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * transactions. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException;
+
+    /**
+     * @exception NoTransactionException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the unique transaction id for the current transaction. This
+     * may or may not be the same as the activity id.
+     */
+
+    public TxId identifier () throws NoTransactionException, SystemException;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransactionFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransactionFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/UserTransactionFactory.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,164 @@
+/*
+ * 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: UserTransactionFactory.java,v 1.5 2005/03/10 15:37:12 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.mw.wstx.common.TransactionXSD;
+
+import com.arjuna.mw.wscf.protocols.*;
+import com.arjuna.mw.wscf.utils.*;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+import java.util.HashMap;
+
+/**
+ * Return the UserTransaction implementation to use.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserTransactionFactory.java,v 1.5 2005/03/10 15:37:12 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UserTransactionFactory
+{
+
+    /**
+     * @exception ProtocolNotRegisteredException Thrown if the default
+     * protocol is not available.
+     *
+     * @return the UserCoordinator implementation to use. The default
+     * coordination protocol is used (two-phase commit) with its
+     * associated implementation.
+     *
+     * @message com.arjuna.mw.wstx.UserTransactionFactory_1 [com.arjuna.mw.wstx.UserTransactionFactory_1] - Failed to create document: 
+     */
+
+    public static UserTransaction userTransaction () throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    ProtocolLocator pl = new ProtocolLocator(com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx.class.getName());
+	    org.w3c.dom.Document doc = pl.getProtocol();
+	    
+	    if (doc == null)
+	    {
+		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wstx.UserTransactionFactory_1",
+					      new Object[]{com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx.class.getName()});
+	    }
+	    else
+	    {
+		if (!_protocolManager.present(doc))
+		    _protocolManager.addProtocol(doc, com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx.class.getName());
+		
+		return userTransaction(doc);
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+
+	return null;
+    }
+
+    /**
+     * Obtain a reference to a coordinator that implements the specified
+     * protocol.
+     *
+     * @param protocol The XML definition of the type of
+     * coordination protocol required.
+     *
+     * @exception ProtocolNotRegisteredException Thrown if the requested
+     * protocol is not available.
+     *
+     * @return the UserCoordinator implementation to use.
+     */
+    
+    /*
+     * Have the type specified in XML. More data may be specified, which
+     * can be passed to the implementation in the same way ObjectName was.
+     */
+
+    public static UserTransaction userTransaction (org.w3c.dom.Document protocol) throws ProtocolNotRegisteredException, SystemException
+    {
+	try
+	{
+	    synchronized (_implementations)
+	    {
+		org.w3c.dom.Text child = DomUtil.getTextNode(protocol, TransactionXSD.transactionType);
+		String protocolType = child.getNodeValue();
+		UserTransaction tx = (UserTransaction) _implementations.get(protocolType);
+	
+		if (tx == null)
+		{
+		    Object implementation = _protocolManager.getProtocolImplementation(protocol);
+	
+		    if (implementation instanceof String)
+		    {
+			Class txImpl = Class.forName((String) implementation);
+			
+			tx = (UserTransaction) txImpl.newInstance();
+		    }
+		    else
+			tx = (UserTransaction) implementation;
+
+		    _implementations.put(protocolType, tx);
+		}
+
+		return tx;
+	    }
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    throw ex;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	    
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private static ProtocolManager _protocolManager = ProtocolRegistry.sharedManager();
+    private static HashMap         _implementations = new HashMap();
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Environment.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Environment.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Environment.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+/*
+ * 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: Environment.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+/**
+ */
+
+public class Environment
+{
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TransactionXSD.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TransactionXSD.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TransactionXSD.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TransactionXSD.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionXSD.java,v 1.1 2003/02/03 11:01:27 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionXSD
+{
+    
+    public static final String transactionType = "transaction-type";
+    public static final String transactionProtocol = "transaction-protocol";
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TxId.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TxId.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/TxId.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TxId.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * The transaction identifier. Allows different implementations.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TxId.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $ 
+ * @since 1.0.
+ */
+
+public interface TxId
+{
+
+    public byte[] value ();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Vote.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Vote.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/Vote.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+/*
+ * 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: Vote.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+/**
+ * All votes from prepare are instances of this interface.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Vote.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ * @since 1.0.
+ */
+
+public abstract class Vote
+{
+
+    /**
+     * @return any qualifiers that may be associated with the vote. May be
+     * null.
+     */
+
+    public Qualifier[] getQualifiers ()
+    {
+	return _qualifiers;
+    }
+
+    public abstract String toString ();
+
+    /**
+     * Currently only check actual vote type and not the qualifiers.
+     */
+
+    public abstract boolean equals (Object o);
+    
+    protected Vote ()
+    {
+	this(null);
+    }
+    
+    protected Vote (Qualifier[] quals)
+    {
+	_qualifiers = quals;
+    }
+
+    protected Qualifier[] _qualifiers;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteCommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteCommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteCommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: VoteCommit.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+/**
+ * The inferior votes to that it can confirm. It will typically
+ * not have confirmed at this stage but will wait for the transaction
+ * outcome. Failure to do so may result in heuristics (contradictions).
+ *
+ * @author Mark Little (mark_little at hp.com)
+ * @version $Id: VoteCommit.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ * @since XTS 1.0.
+ */
+
+public class VoteCommit extends Vote
+{
+
+    public VoteCommit ()
+    {
+	super();
+    }
+    
+    public VoteCommit (Qualifier[] quals)
+    {
+	super(quals);
+    }
+    
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteCommit)
+	    return true;
+	else
+	    return false;
+    }
+    
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "VoteCommit";
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteReadOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteReadOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteReadOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+/*
+ * 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: VoteReadOnly.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+/**
+ * The inferior has not done any work that affects the transaction.
+ * It is effectively resigning.
+ *
+ * WARNING: this should be used with care, since the participant will
+ * not then find out the actual transaction outcome.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteReadOnly.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class VoteReadOnly extends Vote
+{
+
+    public VoteReadOnly ()
+    {
+	super();
+    }
+    
+    public VoteReadOnly (Qualifier[] quals)
+    {
+	super(quals);
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteReadOnly)
+	    return true;
+	else
+	    return false;
+    }
+
+    public String toString ()
+    {
+	return "VoteReadOnly";
+    }
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteRollback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteRollback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/common/VoteRollback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: VoteRollback.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.common;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+/**
+ * The participant votes that is has rolled back. The transaction service
+ * may inform the participant of the final decision (hopefully to rollback
+ * as well), but it need not.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VoteRollback.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $ 
+ * @since 1.0.
+ */
+
+public class VoteRollback extends Vote
+{
+
+    public VoteRollback ()
+    {
+	super();
+    }
+    
+    public VoteRollback (Qualifier[] quals)
+    {
+	super(quals);
+    }
+
+    public boolean equals (Object o)
+    {
+	if (o == null)
+	    return false;
+
+	if (o instanceof VoteRollback)
+	    return true;
+	else
+	    return false;
+    }
+
+    /**
+     * @return a printable version of the vote.
+     */
+
+    public String toString ()
+    {
+	return "VoteRollback";
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateParticipantException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateParticipantException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateParticipantException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: DuplicateParticipantException.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if an enrol attempt is made for a participant with an identifier
+ * that has already been used to enrol.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DuplicateParticipantException.java,v 1.1 2002/11/25 11:00:51 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DuplicateParticipantException extends WSASException
+{
+    
+    public DuplicateParticipantException ()
+    {
+        super();
+    }
+
+    public DuplicateParticipantException (String s)
+    {
+        super(s);
+    }
+    
+    public DuplicateParticipantException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateSynchronizationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateSynchronizationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/DuplicateSynchronizationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: DuplicateSynchronizationException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if an enrol attempt is made for a synchronization with an identifier
+ * that has already been used to enrol.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DuplicateSynchronizationException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DuplicateSynchronizationException extends WSASException
+{
+    
+    public DuplicateSynchronizationException ()
+    {
+	super();
+    }
+
+    public DuplicateSynchronizationException (String s)
+    {
+	super(s);
+    }
+
+    public DuplicateSynchronizationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicCommitException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicCommitException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicCommitException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,66 @@
+/*
+ * 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: HeuristicCommitException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if a participant or transaction commit when the request was to
+ * roll back. Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicCommitException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicCommitException extends WSASException
+{
+
+    public HeuristicCommitException ()
+    {
+	super();
+    }
+
+    public HeuristicCommitException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicCommitException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicHazardException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicHazardException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicHazardException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,66 @@
+/*
+ * 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: HeuristicHazardException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if the outcome of at least one participant is unknown.
+ * Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicHazardException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicHazardException extends WSASException
+{
+
+    public HeuristicHazardException ()
+    {
+	super();
+    }
+
+    public HeuristicHazardException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicHazardException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicMixedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicMixedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicMixedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,66 @@
+/*
+ * 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: HeuristicMixedException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if some of the participants commit while others rollback.
+ * Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicMixedException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicMixedException extends WSASException
+{
+
+    public HeuristicMixedException ()
+    {
+	super();
+    }
+
+    public HeuristicMixedException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicMixedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicRollbackException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicRollbackException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/HeuristicRollbackException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,66 @@
+/*
+ * 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: HeuristicRollbackException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if the participants rolled back when the request was to commit.
+ * Can only happen for a participant if it has received a
+ * previous prepare message.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: HeuristicRollbackException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class HeuristicRollbackException extends WSASException
+{
+
+    public HeuristicRollbackException ()
+    {
+	super();
+    }
+
+    public HeuristicRollbackException (String s)
+    {
+	super(s);
+    }
+
+    public HeuristicRollbackException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidParticipantException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidParticipantException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidParticipantException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: InvalidParticipantException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if a resign is attempted on a participant that the transaction
+ * did not know about.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidParticipantException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidParticipantException extends WSASException
+{
+    
+    public InvalidParticipantException ()
+    {
+	super();
+    }
+
+    public InvalidParticipantException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidParticipantException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidSynchronizationException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidSynchronizationException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidSynchronizationException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: InvalidSynchronizationException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if a resign is attempted on a synchronization that the transaction
+ * did not know about.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidSynchronizationException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidSynchronizationException extends WSASException
+{
+    
+    public InvalidSynchronizationException ()
+    {
+	super();
+    }
+
+    public InvalidSynchronizationException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidSynchronizationException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidTransactionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidTransactionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/InvalidTransactionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: InvalidTransactionException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if the transaction (or imported context) is invalid.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: InvalidTransactionException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InvalidTransactionException extends WSASException
+{
+
+    public InvalidTransactionException ()
+    {
+	super();
+    }
+
+    public InvalidTransactionException (String s)
+    {
+	super(s);
+    }
+
+    public InvalidTransactionException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+    
+}
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/NoTransactionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/NoTransactionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/NoTransactionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NoTransactionException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if no transaction is associated with the current thread.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NoTransactionException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NoTransactionException extends WSASException
+{
+    
+    public NoTransactionException ()
+    {
+	super();
+    }
+
+    public NoTransactionException (String s)
+    {
+	super(s);
+    }
+
+    public NoTransactionException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionCommittedException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionCommittedException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionCommittedException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TransactionCommittedException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if the transaction commits rather than rolls back.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionCommittedException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionCommittedException extends WSASException
+{
+    
+    public TransactionCommittedException ()
+    {
+	super();
+    }
+
+    public TransactionCommittedException (String s)
+    {
+	super(s);
+    }
+
+    public TransactionCommittedException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionRolledBackException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionRolledBackException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/TransactionRolledBackException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TransactionRolledBackException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if the transaction rolls back rather than commits.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionRolledBackException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionRolledBackException extends WSASException
+{
+    
+    public TransactionRolledBackException ()
+    {
+	super();
+    }
+
+    public TransactionRolledBackException (String s)
+    {
+	super(s);
+    }
+
+    public TransactionRolledBackException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/UnknownTransactionException.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/UnknownTransactionException.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/exceptions/UnknownTransactionException.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UnknownTransactionException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.exceptions;
+
+import com.arjuna.mw.wsas.exceptions.WSASException;
+
+/**
+ * Thrown if the transaction is unknown.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UnknownTransactionException.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class UnknownTransactionException extends WSASException
+{
+    
+    public UnknownTransactionException ()
+    {
+	super();
+    }
+
+    public UnknownTransactionException (String s)
+    {
+	super(s);
+    }
+
+    public UnknownTransactionException (String s, int errorcode)
+    {
+	super(s, errorcode);
+    }
+ 
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2005,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: wstxLogger.java,v 1.2 2005/05/19 12:13:40 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.logging;
+
+import com.arjuna.common.util.logging.*;
+
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+
+import java.util.*;
+
+public class wstxLogger
+{
+
+    public static LogNoi18n      arjLogger;
+    public static Logi18n        arjLoggerI18N;
+    public static ResourceBundle log_mesg;
+
+    private static String language;
+    private static String country;
+    private static Locale currentLocale;
+    private static String dirLocale;
+
+    static
+    {
+    /** Ensure the properties are loaded before initialising the logger **/
+    arjPropertyManager.getPropertyManager();
+        
+	arjLogger = LogFactory.getLogNoi18n("com.arjuna.mw.wstx.logging.wstxLogger");
+
+	language = commonPropertyManager.propertyManager.getProperty("language","en");
+	country  = commonPropertyManager.propertyManager.getProperty("country","US");
+
+	currentLocale = new Locale(language,country);
+	log_mesg = ResourceBundle.getBundle("wstx_msg",currentLocale);
+	
+	arjLoggerI18N = LogFactory.getLogi18n("com.arjuna.mw.wstx.logging.wstxLoggerI18N",
+					     "wstx_msg_"+language+"_"+country);
+	
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Participant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Participant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Participant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,198 @@
+/*
+ * 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: Participant.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.resource;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wstx.common.Vote;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.status.Status;
+
+import com.arjuna.ats.arjuna.state.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+import com.arjuna.mw.wstx.exceptions.HeuristicHazardException;
+import com.arjuna.mw.wstx.exceptions.HeuristicMixedException;
+import com.arjuna.mw.wstx.exceptions.HeuristicCommitException;
+import com.arjuna.mw.wstx.exceptions.HeuristicRollbackException;
+import com.arjuna.mw.wstx.exceptions.InvalidParticipantException;
+
+/**
+ * This is the interface that all two-phase aware participants must define.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Participant.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Participant
+{
+
+    /**
+     * Prepare the participant.
+     *
+     * @param qualifiers Any additional information.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot prepare.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing prepare
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the vote.
+     */
+    
+    public Vote prepare (Qualifier[] qualifiers) throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, SystemException;
+
+    /**
+     * Commit the participant.
+     *
+     * @param qualifiers Any additional information.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot confirm.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing confirm
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception HeuristicRollbackException Thrown if the participant rolls
+     * back rather than commits.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void commit (Qualifier[] qualifiers) throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicRollbackException, SystemException;
+
+    /**
+     * Rollback the participant.
+     *
+     * @param qualifiers Any additional information.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing cancel
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception HeuristicCommitException Thrown if the participant commits
+     * rather than rolls back.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void rollback (Qualifier[] qualifiers) throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCommitException, SystemException;
+
+    /**
+     * Commit the participant in a single phase.
+     *
+     * @param qualifiers Any additional information.
+     *
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid
+     *            (e.g., refers to an unknown participant.)
+     * @exception WrongStateException Thrown if the state of the participant is such that
+     *            it cannot cancel.
+     * @exception HeuristicHazardException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean it cannot determine what the result of issuing cancel
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the participant finds that
+     *            some of its enlisted participants have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception HeuristicRollbackException Thrown if the participant rolls
+     * back rather than commit.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void commitOnePhase (Qualifier[] qualifiers) throws InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicRollbackException, SystemException;
+
+    /**
+     * Inform the participant that is can forget the heuristic result.
+     *
+     * @param qualifiers Any additional qualifiers that may affect
+     *                    the operation.
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid.
+     * @exception WrongStateException Thrown if the participant is in an invalid state.
+     * @exception SystemException Thrown in the event of a general fault.
+     */
+
+    public void forget (Qualifier[] qualifiers) throws InvalidParticipantException, WrongStateException, SystemException;
+
+    /**
+     * @param qualifiers Any additional qualifiers that may affect
+     *                    the operation.
+     * @exception InvalidParticipantException Thrown if the participant identity is invalid.
+     * @exception SystemException Thrown in the event of a general error.
+     *
+     * @return the current status of the specified participant.
+     */
+
+    public Status status (Qualifier[] qualifiers) throws InvalidParticipantException, SystemException;
+
+    /**
+     * @return the name of this participant.
+     */
+
+    public String name ();
+    
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the participant during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os);
+
+    public boolean unpackState (InputObjectState os);
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Synchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Synchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/resource/Synchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Synchronization.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.resource;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.status.Status;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * This is the interface that all synchronization participants must define.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Synchronization.java,v 1.1 2002/11/25 11:00:52 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface Synchronization
+{
+
+    /**
+     * The transaction that the instance is enrolled with is about to
+     * commit.
+     * 
+     * @exception SystemException Thrown if any error occurs. This will cause
+     * the transaction to roll back.
+     */
+
+    public void beforeCompletion () throws SystemException;
+
+    /**
+     * The transaction that the instance is enrolled with has completed and
+     * the state in which is completed is passed as a parameter.
+     *
+     * @param cs The state in which the transaction completed.
+     *
+     * @exception SystemException Thrown if any error occurs. This has no
+     * affect on the outcome of the transaction.
+     */
+
+    public void afterCompletion (CompletionStatus cs) throws SystemException;
+
+    /**
+     * @return the name of this inferior.
+     */
+
+    public String name ();
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committed.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committed.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committed.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Committed.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The transaction has committed.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Committed.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Committed implements Status
+{
+
+    public static Committed instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.Committed";
+    }
+
+    private Committed ()
+    {
+    }
+
+    private static final Committed _instance = new Committed();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committing.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committing.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/Committing.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Committing.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The transaction is in the process of committing.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: Committing.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class Committing implements Status
+{
+
+    public static Committing instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.Committing";
+    }
+
+    private Committing ()
+    {
+    }
+
+    private static final Committing _instance = new Committing();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/NoTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/NoTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/NoTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NoTransaction.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * There is no transaction associated with the current thread.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: NoTransaction.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NoTransaction implements Status
+{
+
+    public static NoTransaction instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.NoTransaction";
+    }
+
+    private NoTransaction ()
+    {
+    }
+
+    private static final NoTransaction _instance = new NoTransaction();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollbackOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollbackOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollbackOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,64 @@
+/*
+ * 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: RollbackOnly.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The transaction is in a state which means that the only eventual outcome
+ * is for it to rollback.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: RollbackOnly.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class RollbackOnly implements Status
+{
+
+    public static RollbackOnly instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.RollbackOnly";
+    }
+
+    private RollbackOnly ()
+    {
+    }
+
+    private static final RollbackOnly _instance = new RollbackOnly();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RolledBack.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RolledBack.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RolledBack.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: RolledBack.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The transaction has rolled back.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: RolledBack.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class RolledBack implements Status
+{
+
+    public static RolledBack instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.RolledBack";
+    }
+
+    private RolledBack ()
+    {
+    }
+
+    private static final RolledBack _instance = new RolledBack();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollingBack.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollingBack.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/status/RollingBack.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: RollingBack.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.status;
+
+import com.arjuna.mw.wsas.status.Status;
+
+/**
+ * The transaction is rolling back.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: RollingBack.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class RollingBack implements Status
+{
+
+    public static RollingBack instance ()
+    {
+	return _instance;
+    }
+    
+    public String toString ()
+    {
+	return "Status.RollingBack";
+    }
+
+    private RollingBack ()
+    {
+    }
+
+    private static final RollingBack _instance = new RollingBack();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHandle.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHandle.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHandle.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,84 @@
+/*
+ * 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: TransactionHandle.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.transaction;
+
+/**
+ * TransactionHandle is used as a representation of a single transaction
+ * when it is suspended from a running thread and may be later
+ * resumed. The implementation of the token can be as lightweight
+ * as required by the underlying implementation in order that it
+ * can uniquely represent all activity instances.
+ *
+ * Since this is a client-facing class, it is unlikely that the
+ * application user will typically want to see the entire activity
+ * context in order to simply suspend it from the thread.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: TransactionHandle.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface TransactionHandle
+{
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     *
+     * Two instances are equal if the refer to the same transaction.
+     */
+
+    public boolean equals (Object obj);
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     */
+
+    public int hashCode ();
+
+    /**
+     * @return whether or not this is a valid handle.
+     */
+
+    public boolean valid ();
+
+    /**
+     * @return the activity identifier.
+     */
+
+    public String tid ();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHierarchy.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHierarchy.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wstx/transaction/TransactionHierarchy.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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: TransactionHierarchy.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ */
+
+package com.arjuna.mw.wstx.transaction;
+
+/**
+ * This class represents a handle on a stack of transactions.
+ * It should only be used for suspending and resuming the
+ * thread-to-transaction association.
+ *
+ * The transaction at the top of the stack is the current transaction.
+ *
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: TransactionHierarchy.java,v 1.1 2002/11/25 11:00:53 nmcl Exp $
+ * @since 1.0.
+ */
+
+public interface TransactionHierarchy
+{
+    /**
+     * @return the number of transactions associated with this stack.
+     */
+
+    public int size ();
+    
+    /**
+     * @return whether or not this is a valid context. If a single entry in
+     * the context is invalid then we assume the entire context is.
+     */
+
+    public boolean valid ();
+
+    /**
+     * @param index index of the specific transaction in the stack.
+     * @exception IndexOutOfBoundsException Thrown if the transaction number
+     * is too large or small.
+     * @return the transaction handle.
+     */
+
+    public TransactionHandle transaction (int index) throws IndexOutOfBoundsException;
+
+    /**
+     * @return the current transaction in the context.
+     */
+
+    public TransactionHandle current ();
+
+    /**
+     * Obtain a copy of this context. Although the context may be shared
+     * between different threads, the same instance of the context should
+     * not be.
+     *
+     * @return the context copy.
+     */
+
+    public TransactionHierarchy copy ();
+
+    /**
+     * Overrides Object.equals
+     *
+     * Two contexts are equal if both hierarchies are identical.
+     */
+
+    public boolean equals (Object obj);
+
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     */
+
+    public int hashCode ();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,264 @@
+/*
+ * 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.ArjunaContextImple;
+import com.arjuna.mwlabs.wst.at.participants.CleanupSynchronization;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.InvalidProtocolException;
+
+public class ContextFactoryImple implements ContextFactory, LocalFactory
+{
+	public ContextFactoryImple ()
+	{
+		try
+		{
+			_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+            _theRegistrar = new RegistrarImple();
+		}
+		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 InvalidCreateParametersException
+	 *             if a parameter passed is invalid this activity identifier.
+	 * 
+	 * @message com.arjuna.mwlabs.wst.at.ContextFactoryImple_1
+	 *          [com.arjuna.mwlabs.wst.at.ContextFactoryImple_1] - Invalid type
+	 *          URI: < {0} , {1} >
+	 * @message com.arjuna.mwlabs.wst.at.ContextFactoryImple_3
+	 *          [com.arjuna.mwlabs.wst.at.ContextFactoryImple_3] - Invalid type
+	 *          URI:
+	 */
+
+	public CoordinationContextType create (final String coordinationTypeURI, final Long expires,
+            final CoordinationContextType currentContext)
+			throws InvalidCreateParametersException
+	{
+		if (coordinationTypeURI.equals(AtomicTransactionConstants.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 ArjunaContextImple arjunaContext = ArjunaContextImple.getContext() ;
+                final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+                
+                final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+                coordinationContext.setCoordinationType(new URI(coordinationTypeURI)) ;
+                coordinationContext.setIdentifier(new AttributedURIType("urn:"+arjunaContext.getTransactionIdentifier())) ;
+                final int transactionExpires = arjunaContext.getTransactionExpires() ;
+                if (transactionExpires > 0)
+                {
+                    coordinationContext.setExpires(new AttributedUnsignedIntType(transactionExpires)) ;
+                }
+                final EndpointReferenceType registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+                InstanceIdentifier.setEndpointInstanceIdentifier(registrationCoordinator, arjunaContext.getTransactionIdentifier()) ;
+                coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+				/*
+				 * Now add the registrar for this specific coordinator to the
+				 * mapper.
+				 */
+
+				_coordManager.enlistSynchronization(new CleanupSynchronization(_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 (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+			{
+				ex.printStackTrace();
+				
+				throw new InvalidCreateParametersException();
+			}
+			catch (com.arjuna.mw.wsas.exceptions.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.ContextFactoryImple_1", new Object[]
+			{ AtomicTransactionConstants.WSAT_PROTOCOL, coordinationTypeURI });
+
+			throw new InvalidCreateParametersException(
+					wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.ContextFactoryImple_3")
+							+ " < "
+							+ AtomicTransactionConstants.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 CleanupSynchronization(subordinateTransaction.get_uid().stringForm(), _theRegistrar));
+
+			_theRegistrar.associate(subordinateTransaction);
+			
+			return subordinateTransaction;
+		}
+		catch (Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+	
+	public final RegistrarImple registrar ()
+	{
+		return _theRegistrar;
+	}
+
+	private CoordinatorManager _coordManager;
+	private RegistrarImple _theRegistrar;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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.13.4.1 2005/11/22 10:36:21 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at;
+
+import com.arjuna.mw.wsc.context.Context;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+
+public class ContextImple implements Context
+{
+
+	public ContextImple (final CoordinationContextType ctx)
+	{
+		_coordContext = ctx;
+	}
+
+	public boolean equals (Object obj)
+	{
+		if (obj instanceof ContextImple)
+		{
+			ContextImple ci = (ContextImple) 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 DomUtil.nodeAsString(toXML());
+
+		return "AtomicTransactionIdentifier: " + _coordContext.getIdentifier().getValue();
+	}
+
+	private CoordinationContextType _coordContext;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,349 @@
+/*
+ * 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: RegistrarImple.java,v 1.20.4.1 2005/11/22 10:36:21 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at;
+
+import java.util.HashMap;
+
+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.CompletionCoordinatorImple;
+import com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant;
+import com.arjuna.mwlabs.wst.at.participants.VolatileTwoPhaseCommitParticipant;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.Registrar;
+import com.arjuna.wsc.RegistrarMapper;
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.stub.Durable2PCStub;
+import com.arjuna.wst.stub.Volatile2PCStub;
+
+/*
+ * TODO
+ * 
+ * This entire architecture needs reworking. The WSAS and WSCF modules are based
+ * on the original pre-WS-CAF work and now out-of-date. They are more generic
+ * than required and pass through so many different levels of indirection that
+ * it confuses the code path and makes it difficult to see what is going on.
+ * 
+ * The notion of an activity is fine in the general context of WS-CAF and
+ * WS-C/Tx, but within the implementation, it causes us to do too much
+ * thread-to-activity related work. It would be like having to go through the JTA
+ * UT and TM interfaces in order to do anywork on the transaction!
+ */
+
+public class RegistrarImple implements Registrar
+{
+	public RegistrarImple ()
+        throws ProtocolNotRegisteredException, SystemException
+	{
+		_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+		// register with mapper using tx id as protocol identifier.
+        final RegistrarMapper mapper = RegistrarMapper.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 serviceAddress
+	 *            the address of the service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void install (final String protocolIdentifier)
+	{
+	}
+
+	/**
+	 * Registers the interest of participant in a particular protocol.
+	 * 
+	 * @param participantProtocolServiceAddress
+	 *            the address of the participant protocol service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 * 
+	 * @return the PortReference of the coordinator protocol service
+	 * 
+	 * @throws AlreadyRegisteredException
+	 *             if the participant is already registered for this
+	 *             coordination protocol under this activity identifier
+	 * @throws InvalidProtocolException
+	 *             if the coordination protocol is not supported
+	 * @throws InvalidStateException
+	 *             if the state of the coordinator no longer allows registration
+	 *             for this coordination protocol
+	 * @throws NoActivityException
+	 *             if the activity does not exist.
+	 * 
+	 * @message com.arjuna.mwlabs.wst.at.RegistrarImple_1
+	 *          [com.arjuna.mwlabs.wst.at.Registrar_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 EndpointReferenceType register(final EndpointReferenceType participantProtocolService,
+        final String protocolIdentifier, final InstanceIdentifier 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 (com.arjuna.mw.wsas.exceptions.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 Durable2PCStub participantStub = new Durable2PCStub(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 Volatile2PCStub participantStub = new Volatile2PCStub(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 CompletionCoordinatorParticipant participant = new CompletionCoordinatorImple(_coordManager, hier, true) ;
+                CompletionCoordinatorProcessor.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.RegistrarImple_1", new Object[]
+			{ AtomicTransactionConstants.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 serviceAddress
+	 *            the address of the service
+	 * @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 EndpointReferenceType registerWithSubordinate(final SubordinateCoordinator theTx,
+        final EndpointReferenceType 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 Durable2PCStub participantStub = new Durable2PCStub(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 Volatile2PCStub participantStub = new Volatile2PCStub(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.RegistrarImple_1", new Object[]
+			{ AtomicTransactionConstants.WSAT_PROTOCOL, protocolIdentifier });
+
+			throw new InvalidProtocolException();
+		}
+	}
+
+    private EndpointReferenceType getCompletionCoordinator(final InstanceIdentifier instanceIdentifier)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String completionCoordinatorURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR) ;
+        final EndpointReferenceType completionCoordinator = new EndpointReferenceType(new AttributedURIType(completionCoordinatorURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(completionCoordinator, instanceIdentifier) ;
+        return completionCoordinator ;
+    }
+
+    private EndpointReferenceType getCoordinator(final String participantId)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String coordinatorURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COORDINATOR) ;
+        final EndpointReferenceType coordinator = new EndpointReferenceType(new AttributedURIType(coordinatorURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(coordinator, participantId) ;
+        return coordinator ;
+    }
+
+	private CoordinatorManager _coordManager = null;
+	private HashMap _hierarchies = new HashMap();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,257 @@
+/*
+ * 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 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.twophase.arjunacore.ACCoordinator;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+
+/**
+ * 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 ArjunaContextImple implements SOAPContext
+{
+
+	public ArjunaContextImple ()
+	{
+		_context = null;
+	}
+
+	public ArjunaContextImple (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 java.lang.IllegalArgumentException();
+		}
+	}
+    
+    /**
+     * @return the context document object.
+     */
+    private synchronized Element context()
+    {
+        if (_context == null)
+        {
+            DocumentBuilder builder = com.arjuna.mw.wscf.utils.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.
+                 */
+
+                org.w3c.dom.Element identifier = doc.createElement("wsu:"+_identifier);
+                identifier.appendChild(doc.createTextNode(_identifierValues[0]));
+                
+                _context.appendChild(identifier);
+
+                org.w3c.dom.Element expires = doc.createElement("wsu:"+_expires);
+                expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[0])));
+
+                _context.appendChild(expires);
+
+                org.w3c.dom.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)
+                {
+                    org.w3c.dom.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 ArjunaContextImple.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.ArjunaContextImple_1 [com.arjuna.mwlabs.wst.at.context.ArjunaContextImple_1] - ignoring context: 
+     */
+    public static ArjunaContextImple getContext()
+    {
+        ContextManager cxman = new ContextManager();
+        Context[] contexts = cxman.contexts();
+
+        for (int i = 0; i < contexts.length; i++)
+        {
+            if (contexts[i].identifier().equals(ArjunaContextImple.class.getName()))
+            {
+                if (contexts[i] instanceof ArjunaContextImple)
+                {
+                    return (ArjunaContextImple)contexts[i] ;
+                }
+                else
+                {
+                    wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.at.context.ArjunaContextImple_1",
+                            new Object[]{contexts[i]});
+                }
+                break;
+            }
+        }
+        return null ;
+    }
+    
+	private org.w3c.dom.Element _context;
+    private String[] _identifierValues ;
+    private int[] _expiresValues ;
+
+	private static final String _wscoorNamespace = CoordinationConstants.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 = CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT;
+	private static final String _identifier = CoordinationConstants.WSCOOR_ELEMENT_IDENTIFIER;
+	private static final String _expires = CoordinationConstants.WSCOOR_ELEMENT_EXPIRES;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/DeploymentContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/DeploymentContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/DeploymentContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,54 @@
+/*
+ * 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: DeploymentContextImple.java,v 1.1.24.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.context;
+
+import com.arjuna.mw.wsas.context.*;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContextImple.java,v 1.1.24.1 2005/11/22 10:36:15 kconner Exp $
+ * @since 1.0.
+ */
+
+public class DeploymentContextImple implements DeploymentContext
+{
+
+    public DeploymentContextImple ()
+    {
+    }
+    
+    public Context context ()
+    {
+        return ArjunaContextImple.getContext() ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.8.4.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.context;
+
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mwlabs.wst.at.ContextImple;
+import com.arjuna.webservices.wscoor.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 TxContextImple implements TxContext
+{
+
+	public TxContextImple (CoordinationContextType ctx)
+	{
+		_context = new ContextImple(ctx);
+	}
+
+	public TxContextImple (com.arjuna.mw.wsc.context.Context 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 com.arjuna.mw.wsc.context.Context context ()
+	{
+		return _context;
+	}
+
+	public String toString ()
+	{
+		return _context.toString();
+	}
+
+	private com.arjuna.mw.wsc.context.Context _context;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/coordinator/TxState.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/coordinator/TxState.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/coordinator/TxState.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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: TxState.java,v 1.1 2003/04/04 15:00:56 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.coordinator;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import java.util.Hashtable;
+
+public class TxState
+{
+
+    public static final int COMMITTED = 0;
+    public static final int ABORTED = 1;
+    public static final int UNKNOWN = 2;
+    public static final int HEURISTIC = 3;
+    
+    public static final void setState (ActivityHierarchy hier, int state)
+    {
+	_states.put(hier, new Integer(state));
+    }
+    
+    public static final int getState (ActivityHierarchy hier)
+    {
+	Integer i = (Integer) _states.get(hier);
+	
+	if (i != null)
+	    return i.intValue();
+	else
+	    return TxState.UNKNOWN;
+    }
+    
+    public static final void removeState (ActivityHierarchy hier)
+    {
+	_states.remove(hier);
+    }
+
+    private static Hashtable _states = new Hashtable();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/ContextManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/ContextManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/ContextManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,155 @@
+/*
+ * 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: ContextManager.java,v 1.4 2005/03/10 15:37:14 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.local;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.wst.*;
+
+import com.arjuna.mw.wst.TxContext;
+
+import java.util.*;
+
+/**
+ * @message com.arjuna.mwlabs.wst.at.local.ContextManager_1 [com.arjuna.mwlabs.wst.at.local.ContextManager_1] - One context was null!
+ */
+
+public class ContextManager
+{
+    
+    public static final ContextManager contextManager ()
+    {
+	return _instance;
+    }
+    
+    public final void initialise (LocalContextFactoryImple factory)
+    {
+	_factory = factory;
+    }
+    
+    public final TxContext suspend () throws SystemException
+    {
+	ActivityHierarchy wstxHier = null;
+
+	try
+	{
+	    wstxHier = _factory.coordinatorManager().suspend();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+
+	TxContext txCtx = (TxContext) _threadTxData.get();
+	if (txCtx != null)
+        {
+	    _threadTxData.set(null) ;
+        }
+	
+	if ((txCtx != null) && (wstxHier != null)) // should be equal!
+	{
+	    _contextMapper.put(txCtx, wstxHier);
+	    
+	    return txCtx;
+	}
+	else
+	{
+	    if ((txCtx == null) && (wstxHier == null))
+		return null;
+	    else
+	    {
+		throw new SystemException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.local.ContextManager_1"));
+	    }
+	}
+    }
+
+    public final TxContext currentTransaction () throws SystemException
+    {
+	return (TxContext) _threadTxData.get();
+    }
+
+    // resume overwrites. Should we check first a la JTA?
+
+    public final void resume (TxContext tx) throws UnknownTransactionException, SystemException
+    {
+	ActivityHierarchy wstxHier = null;
+	boolean imported = true;
+	
+	if (tx != null)
+	{
+	    wstxHier = (ActivityHierarchy) _contextMapper.remove(tx);
+	
+	    if (wstxHier == null)
+		imported = false;
+	}
+        _threadTxData.set(tx);
+	
+	try
+	{
+	    if (imported)
+		_factory.coordinatorManager().resume(wstxHier);
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public final void tidyup ()
+    {
+	TxContext txCtx = (TxContext) _threadTxData.get();
+	
+	if (txCtx != null)
+	{
+	    _threadTxData.set(null) ;
+	    _contextMapper.remove(txCtx);
+	}
+    }
+
+    protected ContextManager ()
+    {
+    }
+
+    private static ThreadLocal _threadTxData = new ThreadLocal();
+    private static HashMap     _contextMapper = new HashMap();
+
+    private static LocalContextFactoryImple _factory = null;
+
+    private static ContextManager _instance = new ContextManager();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalContextFactoryImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalContextFactoryImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalContextFactoryImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,192 @@
+/*
+ * 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: LocalContextFactoryImple.java,v 1.5.4.1 2005/11/22 10:36:10 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.local;
+
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+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.wst.at.context.ArjunaContextImple;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+
+public class LocalContextFactoryImple implements ContextFactory
+{
+
+	public LocalContextFactoryImple ()
+	{
+		try
+		{
+			_coordManager = CoordinatorManagerFactory.coordinatorManager();
+		}
+		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)
+	{
+	}
+
+	/**
+	 * 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 InvalidCreateParametersException
+	 *             if a parameter passed is invalid this activity identifier.
+	 * 
+	 * @message com.arjuna.mwlabs.wst.at.local.LocalContextFactoryImple_1
+	 *          [com.arjuna.mwlabs.wst.at.local.LocalContextFactoryImple_1] -
+	 *          Invalid type URI: < {0} , {1} >
+	 * @message com.arjuna.mwlabs.wst.at.local.LocalContextFactoryImple_11
+	 *          [com.arjuna.mwlabs.wst.at.local.LocalContextFactoryImple_11] -
+	 *          Invalid type URI:
+	 */
+
+	public CoordinationContextType create (final String coordinationTypeURI,
+            final Long expires, final CoordinationContextType currentContext)
+			throws InvalidCreateParametersException
+	{
+		if (coordinationTypeURI.equals(AtomicTransactionConstants.WSAT_PROTOCOL))
+		{
+			try
+			{
+				_coordManager.suspend();
+
+				_coordManager.begin();
+
+				DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+				ArjunaContextImple arjunaContext = (ArjunaContextImple)manager.context();
+
+                final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+                
+                final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+                coordinationContext.setCoordinationType(new URI(coordinationTypeURI)) ;
+                coordinationContext.setIdentifier(new AttributedURIType("urn:"+arjunaContext.getTransactionIdentifier())) ;
+                final int transactionExpires = arjunaContext.getTransactionExpires() ;
+                if (transactionExpires > 0)
+                {
+                    coordinationContext.setExpires(new AttributedUnsignedIntType(transactionExpires)) ;
+                }
+                final EndpointReferenceType registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+                InstanceIdentifier.setEndpointInstanceIdentifier(registrationCoordinator, arjunaContext.getTransactionIdentifier()) ;
+                coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+				return coordinationContext;
+			}
+			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.at.local.LocalContextFactoryImple_1", new Object[]
+			{ AtomicTransactionConstants.WSAT_PROTOCOL, coordinationTypeURI });
+
+			throw new InvalidCreateParametersException(
+					wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.local.LocalContextFactoryImple_11"
+							+ " <"
+							+ AtomicTransactionConstants.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)
+	{
+	}
+
+	public CoordinatorManager coordinatorManager ()
+	{
+		return _coordManager;
+	}
+
+	private CoordinatorManager _coordManager;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalRegistrarImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalRegistrarImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/LocalRegistrarImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,144 @@
+/*
+ * 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: LocalRegistrarImple.java,v 1.8 2005/05/19 12:13:42 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.local;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+
+import com.arjuna.mwlabs.wst.at.participants.*;
+
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.wst.*;
+
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+
+/**
+ * This class simulates the use of the real RegistrarImple, which we can't use
+ * in a local environment simply because we do not have URIs to register: we
+ * have real participants!
+ */
+
+public class LocalRegistrarImple
+{
+
+	public LocalRegistrarImple ()
+	{
+		try
+		{
+			_coordManager = CoordinatorManagerFactory.coordinatorManager();
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+	}
+
+	/**
+	 * Registers the interest of participant in a particular protocol.
+	 * 
+	 * @param participantProtocolServiceAddress
+	 *            the address of the participant protocol service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 * 
+	 * @throws AlreadyRegisteredException
+	 *             if the participant is already registered for this
+	 *             coordination protocol under this activity identifier
+	 * @throws InvalidProtocolException
+	 *             if the coordination protocol is not supported
+	 * @throws InvalidStateException
+	 *             if the state of the coordinator no longer allows registration
+	 *             for this coordination protocol
+	 * @throws NoActivityException
+	 *             if the activity does not exist.
+	 * 
+	 * @message com.arjuna.mwlabs.wst.at.local.LocalRegistrarImple_1
+	 *          [com.arjuna.mwlabs.wst.at.local.LocalRegistrarImple_1] - Invalid
+	 *          type URI: < {0} , {1} >
+	 */
+
+	public void register (Object participant, String protocolIdentifier)
+			throws AlreadyRegisteredException, InvalidProtocolException,
+			InvalidStateException, NoActivityException
+	{
+		// TODO check for AlreadyRegisteredException
+
+		if (protocolIdentifier.equals(AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC))
+		{
+			// enlist participant that wraps the requester URI.
+
+			try
+			{
+				_coordManager.enlistParticipant(new DurableTwoPhaseCommitParticipant(
+						(Durable2PCParticipant) participant,
+						new Uid().toString()));
+			}
+			catch (Exception ex)
+			{
+				throw new InvalidStateException();
+			}
+		}
+		else
+		{
+			if (protocolIdentifier.equals(AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC))
+			{
+				try
+				{
+					_coordManager.enlistSynchronization(new VolatileTwoPhaseCommitParticipant(
+							(Volatile2PCParticipant) participant));
+				}
+				catch (Exception ex)
+				{
+					throw new InvalidStateException();
+				}
+			}
+			else
+			{
+				wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.at.local.LocalRegistrarImple_1", new Object[]
+				{ AtomicTransactionConstants.WSAT_PROTOCOL, protocolIdentifier });
+
+				throw new InvalidProtocolException();
+			}
+		}
+	}
+
+	private CoordinatorManager _coordManager;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/TransactionManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/TransactionManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/TransactionManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,143 @@
+/*
+ * 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: TransactionManagerImple.java,v 1.13.4.1 2005/11/22 10:36:10 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.local;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.wst.*;
+
+import com.arjuna.wsc.AlreadyRegisteredException;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+
+/**
+ * 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 TransactionManagerImple extends TransactionManager
+{
+
+	public TransactionManagerImple ()
+	{
+		_contextManager = ContextManager.contextManager();
+		_contextManager.initialise(UserTransactionImple._factory);
+	}
+
+	public void enlistForDurableTwoPhase (Durable2PCParticipant tpp, String id)
+			throws WrongStateException, UnknownTransactionException,
+			AlreadyRegisteredException, SystemException
+	{
+		try
+		{
+			_registrar.register(tpp, AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC);
+		}
+		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
+		{
+			_registrar.register(tpp, AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC);
+		}
+		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();
+		}
+	}
+
+	/**
+	 * @message com.arjuna.mwlabs.wst.at.local.TransactionManagerImple_1
+	 *          [com.arjuna.mwlabs.wst.at.local.TransactionManagerImple_1] - Not
+	 *          implemented!
+	 */
+
+	public int replay () throws SystemException
+	{
+		throw new SystemException(
+				wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.local.TransactionManagerImple_1"));
+	}
+
+	public void resume (TxContext tx) throws UnknownTransactionException,
+			SystemException
+	{
+		_contextManager.resume(tx);
+	}
+
+	public TxContext suspend () throws SystemException
+	{
+		return _contextManager.suspend();
+	}
+
+	public TxContext currentTransaction () throws SystemException
+	{
+		return _contextManager.currentTransaction();
+	}
+
+	final LocalRegistrarImple getRegistrar ()
+	{
+		return _registrar;
+	}
+
+	private final ContextManager _contextManager ;
+
+	private static LocalRegistrarImple _registrar = new LocalRegistrarImple();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/UserTransactionImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/UserTransactionImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/local/UserTransactionImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UserTransactionImple.java,v 1.16.4.1 2005/11/22 10:36:10 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.local;
+
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwlabs.wst.at.context.TxContextImple;
+import com.arjuna.mwlabs.wst.at.participants.CompletionCoordinatorImple;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * 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.
+ */
+
+public class UserTransactionImple extends UserTransaction
+{
+
+	public UserTransactionImple ()
+	{
+		_completionCoordinator = new CompletionCoordinatorImple(
+				_factory.coordinatorManager(), null, false);
+
+		_contextManager = ContextManager.contextManager();
+		_contextManager.initialise(_factory);
+	}
+
+	public void begin () throws WrongStateException, SystemException
+	{
+		begin(0);
+	}
+
+	public void begin (int timeout) throws WrongStateException, SystemException
+	{
+		try
+		{
+			if (_contextManager.currentTransaction() != null)
+				throw new WrongStateException();
+
+			final CoordinationContextType ctx = _factory.create(AtomicTransactionConstants.WSAT_PROTOCOL, null, null);
+
+			TxContextImple theContext = new TxContextImple(ctx);
+
+			_contextManager.resume(theContext);
+		}
+		catch (com.arjuna.wst.UnknownTransactionException ex)
+		{
+			ex.printStackTrace();
+
+			throw new SystemException(ex.toString());
+		}
+		catch (com.arjuna.wsc.InvalidCreateParametersException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+
+		/*
+		 * At this point we would normally register a completion participant.
+		 * 
+		 * Registrar reg =
+		 * _registrarMapper.getRegistrar(_factory.coordinatorManager().identifier().toString());
+		 * 
+		 * reg.register(Protocols.Completion, null);
+		 */
+	}
+
+	public void commit () throws TransactionRolledBackException,
+			UnknownTransactionException, SystemException
+	{
+		try
+		{
+			_completionCoordinator.commit();
+		}
+		catch (TransactionRolledBackException ex)
+		{
+			throw ex;
+		}
+		catch (UnknownTransactionException ex)
+		{
+			throw ex;
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		finally
+		{
+			_contextManager.tidyup();
+		}
+	}
+
+	public void rollback () throws UnknownTransactionException, SystemException
+	{
+		try
+		{
+			_completionCoordinator.rollback();
+		}
+		catch (UnknownTransactionException ex)
+		{
+			throw ex;
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		finally
+		{
+			_contextManager.tidyup();
+		}
+	}
+
+	public String transactionIdentifier ()
+	{
+		try
+		{
+			return _factory.coordinatorManager().identifier().toString();
+		}
+		catch (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+		{
+			return "NoTransaction";
+		}
+		catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+		{
+			return "Unknown";
+		}
+	}
+
+	public String toString ()
+	{
+		return transactionIdentifier();
+	}
+
+	static LocalContextFactoryImple _factory = new LocalContextFactoryImple();
+
+	private final CompletionCoordinatorImple _completionCoordinator ;
+
+	private ContextManager _contextManager = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.RegistrarImple;
+
+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 CleanupSynchronization implements Synchronization
+{
+
+	public CleanupSynchronization (String cleanupId, RegistrarImple 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 RegistrarImple _theRegistrar;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,171 @@
+/*
+ * 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: CompletionCoordinatorImple.java,v 1.6.24.1 2005/11/22 10:36:22 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.participants;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CompletionCoordinatorImple.java,v 1.6.24.1 2005/11/22 10:36:22 kconner Exp $
+ * @since 1.0.
+ */
+
+public class CompletionCoordinatorImple implements com.arjuna.wst.CompletionCoordinatorParticipant
+{
+
+    public CompletionCoordinatorImple (CoordinatorManager cm, ActivityHierarchy hier, final boolean deactivate)
+    {
+	_cm = cm;
+	_hier = hier;
+    this.deactivate = deactivate ;
+    }
+    
+    public void commit () throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier != null)
+		_cm.resume(_hier);
+
+	    _cm.confirm();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    //	    throw new HeuristicHazardException();
+	    
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.model.twophase.exceptions.CoordinatorCancelledException ex)
+	{
+	    throw new TransactionRolledBackException();
+	}
+	catch (com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicMixedException ex)
+	{
+	    //	    throw new HeuristicMixedException();
+
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicHazardException ex)
+	{
+	    //	    throw new HeuristicHazardException();
+
+	    throw new SystemException(ex.toString());
+
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	finally
+	{
+	    if (deactivate)
+	        CompletionCoordinatorProcessor.getProcessor().deactivateParticipant(this);
+	}
+    }
+    
+    public void rollback () throws UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier != null)
+		_cm.resume(_hier);
+	    
+	    _cm.cancel();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.model.twophase.exceptions.CoordinatorConfirmedException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicMixedException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.model.twophase.exceptions.HeuristicHazardException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	finally
+	{
+        if (deactivate)
+            CompletionCoordinatorProcessor.getProcessor().deactivateParticipant(this);
+	}
+    }
+
+    private CoordinatorManager   _cm;
+    private ActivityHierarchy    _hier;
+    private final boolean deactivate ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/DurableTwoPhaseCommitParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/DurableTwoPhaseCommitParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/DurableTwoPhaseCommitParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,305 @@
+/*
+ * 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: DurableTwoPhaseCommitParticipant.java,v 1.1.2.2 2004/08/09 12:34:24 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.participants;
+
+import com.arjuna.wst.Durable2PCParticipant;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+import com.arjuna.mw.wscf.model.twophase.vote.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.SystemCommunicationException;
+import com.arjuna.mwlabs.wst.util.PersistableParticipantHelper;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DurableTwoPhaseCommitParticipant.java,v 1.1.2.2 2004/08/09
+ *          12:34:24 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DurableTwoPhaseCommitParticipant implements Participant
+{
+    // default ctor for crash recovery
+    public DurableTwoPhaseCommitParticipant() {
+    }
+
+    public DurableTwoPhaseCommitParticipant (Durable2PCParticipant resource, String identifier)
+	{
+		_resource = resource;
+		_id = identifier;
+	}
+
+	public Vote prepare () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, SystemException
+	{
+		try
+		{
+			if (_resource != null)
+			{
+				com.arjuna.wst.Vote vt = _resource.prepare();
+
+				if (vt instanceof com.arjuna.wst.ReadOnly)
+				{
+					_readonly = true;
+
+					return new VoteReadOnly();
+				}
+				else
+				{
+					if (vt instanceof com.arjuna.wst.Prepared)
+						return new VoteConfirm();
+					else
+					{
+						_rolledback = true;
+
+						return new VoteCancel();
+					}
+				}
+			}
+			else
+				return new VoteCancel();
+		}
+		//	catch (com.arjuna.mw.wst.exceptions.WrongStateException ex)
+		catch (com.arjuna.wst.WrongStateException ex)
+		{
+			throw new WrongStateException(ex.toString());
+		}
+		/*
+		 * catch (com.arjuna.mw.wst.exceptions.HeuristicHazardException ex {
+		 * throw new HeuristicHazardException(ex.toString()); } catch
+		 * (com.arjuna.mw.wst.exceptions.HeuristicMixedException ex) { throw new
+		 * HeuristicMixedException(ex.toString()); }
+		 */
+		//	catch (com.arjuna.mw.wst.exceptions.SystemException ex)
+		catch (com.arjuna.wst.SystemException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	public void confirm () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicCancelException, SystemException
+	{
+		if (_resource != null)
+		{
+			try
+			{
+				if (!_readonly)
+				{
+					_resource.commit();
+				}
+			}
+			//	    catch (com.arjuna.mw.wst.exceptions.WrongStateException ex)
+			catch (com.arjuna.wst.WrongStateException ex)
+			{
+				throw new WrongStateException(ex.toString());
+			}
+			/*
+			 * catch (com.arjuna.mw.wst.exceptions.HeuristicHazardException ex) {
+			 * throw new HeuristicHazardException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicMixedException ex) { throw
+			 * new HeuristicMixedException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicRollbackException ex) {
+			 * throw new HeuristicCancelException(ex.toString()); }
+			 */
+			//	    catch (com.arjuna.mw.wst.exceptions.SystemException ex)
+			catch (com.arjuna.wst.SystemException ex)
+			{
+				if(ex instanceof com.arjuna.wst.stub.SystemCommunicationException) {
+                    throw new SystemCommunicationException(ex.toString());
+                } else {
+                    throw new SystemException(ex.toString());
+                }
+            }
+		}
+		else
+			throw new InvalidParticipantException();
+	}
+
+	public void cancel () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicConfirmException, SystemException
+	{
+		if (_resource != null)
+		{
+			try
+			{
+				if (!_rolledback)
+					_resource.rollback();
+			}
+			//	    catch (com.arjuna.mw.wst.exceptions.WrongStateException ex)
+			catch (com.arjuna.wst.WrongStateException ex)
+			{
+				throw new WrongStateException(ex.toString());
+			}
+			/*
+			 * catch (com.arjuna.mw.wst.exceptions.HeuristicHazardException ex) {
+			 * throw new HeuristicHazardException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicMixedException ex) { throw
+			 * new HeuristicMixedException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicCommitException ex) {
+			 * throw new HeuristicConfirmException(ex.toString()); }
+			 */
+			//	    catch (com.arjuna.mw.wst.exceptions.SystemException ex)
+			catch (com.arjuna.wst.SystemException ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+		else
+			throw new InvalidParticipantException();
+	}
+
+	// TODO mark ParticipantCancelledException explicitly?
+
+	public void confirmOnePhase () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicCancelException, SystemException
+	{
+		if (_resource != null)
+		{
+			Vote v = null;
+
+			try
+			{
+				v = prepare();
+			}
+			catch (Exception ex)
+			{
+				ex.printStackTrace();
+
+				v = new VoteCancel();
+			}
+
+                        if (v instanceof VoteReadOnly)
+                        {
+                            _readonly = true;
+                        }
+                        else if (v instanceof VoteCancel)
+			{
+				_rolledback = false;
+
+				// TODO only do this if we didn't return VoteCancel
+
+				cancel();
+
+				throw new ParticipantCancelledException();
+			}
+			else
+			{
+				if (v instanceof VoteConfirm)
+				{
+					try
+					{
+						confirm();
+					}
+					catch (HeuristicHazardException ex)
+					{
+						throw ex;
+					}
+					catch (HeuristicMixedException ex)
+					{
+						throw ex;
+					}
+					catch (HeuristicCancelException ex)
+					{
+						throw ex;
+					}
+					catch (Exception ex)
+					{
+						throw new HeuristicHazardException();
+					}
+				}
+				else
+				{
+					cancel(); // TODO error
+
+					throw new HeuristicHazardException();
+				}
+			}
+		}
+		else
+			throw new InvalidParticipantException();
+	}
+
+	public void forget () throws InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+	}
+
+	public void unknown () throws SystemException
+	{
+		/*
+		 * If the transaction is unknown, then we assume it rolled back.
+		 */
+
+		try
+		{
+			cancel();
+		}
+		catch (Exception ex)
+		{
+			// TODO
+		}
+	}
+
+	public String id () throws SystemException
+	{
+		return _id;
+	}
+
+	public boolean save_state (OutputObjectState os)
+	{
+        return PersistableParticipantHelper.save_state(os, _resource) ;
+	}
+
+	public boolean restore_state (InputObjectState os)
+	{
+        _resource = (Durable2PCParticipant)PersistableParticipantHelper.restore_state(os) ;
+        return true ;
+	}
+
+	private Durable2PCParticipant _resource;
+	private String _id;
+	private boolean _readonly;
+	private boolean _rolledback;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/VolatileTwoPhaseCommitParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/VolatileTwoPhaseCommitParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/VolatileTwoPhaseCommitParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,211 @@
+/*
+ * 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: VolatileTwoPhaseCommitParticipant.java,v 1.1.2.2 2004/08/09 12:34:24 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.participants;
+
+import com.arjuna.wst.Volatile2PCParticipant;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+import com.arjuna.mw.wscf.model.twophase.exceptions.*;
+
+import com.arjuna.mw.wscf.exceptions.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: VolatileTwoPhaseCommitParticipant.java,v 1.1.2.2 2004/08/09
+ *          12:34:24 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class VolatileTwoPhaseCommitParticipant implements Synchronization
+{
+
+	public VolatileTwoPhaseCommitParticipant (Volatile2PCParticipant resource)
+	{
+		_resource = resource;
+	}
+
+	/**
+	 * The transaction that the instance is enrolled with is about to commit.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs. This will cause the
+	 *                transaction to roll back.
+	 */
+
+	public void beforeCompletion () throws SystemException
+	{
+		try
+		{
+			if (_resource != null)
+			{
+				// com.arjuna.mw.wst.vote.Vote vt = _resource.prepare();
+				com.arjuna.wst.Vote vt = _resource.prepare();
+
+				if (vt instanceof com.arjuna.wst.ReadOnly)
+					_readonly = true;
+				else
+				{
+					if (vt instanceof com.arjuna.wst.Prepared)
+					{
+						// do nothing
+					}
+					else
+						throw new SystemException();
+				}
+			}
+			else
+				throw new SystemException();
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		catch (Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	/**
+	 * The transaction that the instance is enrolled with has completed and the
+	 * state in which is completed is passed as a parameter.
+	 * 
+	 * @param CompletionStatus
+	 *            cs The state in which the transaction completed.
+	 * 
+	 * @exception SystemException
+	 *                Thrown if any error occurs. This has no affect on the
+	 *                outcome of the transaction.
+	 */
+
+	public void afterCompletion (int status) throws SystemException
+	{
+		if (!_readonly)
+		{
+			try
+			{
+				switch (status)
+				{
+				case CoordinationResult.CONFIRMED:
+					confirm();
+					break;
+				default:
+					cancel();
+					break;
+				}
+			}
+			catch (SystemException ex)
+			{
+				throw ex;
+			}
+			catch (Exception ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+	}
+
+	private final void confirm () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicCancelException, SystemException
+	{
+		if (_resource != null)
+		{
+			try
+			{
+				_resource.commit();
+			}
+			// catch (com.arjuna.mw.wst.exceptions.WrongStateException ex)
+			catch (com.arjuna.wst.WrongStateException ex)
+			{
+				throw new WrongStateException(ex.toString());
+			}
+			/*
+			 * catch (com.arjuna.mw.wst.exceptions.HeuristicHazardException ex) {
+			 * throw new HeuristicHazardException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicMixedException ex) { throw
+			 * new HeuristicMixedException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicRollbackException ex) {
+			 * throw new HeuristicCancelException(ex.toString()); }
+			 */
+			// catch (com.arjuna.mw.wst.exceptions.SystemException ex)
+			catch (com.arjuna.wst.SystemException ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+		else
+			throw new InvalidParticipantException();
+	}
+
+	private final void cancel () throws InvalidParticipantException,
+			WrongStateException, HeuristicHazardException,
+			HeuristicMixedException, HeuristicConfirmException, SystemException
+	{
+		if (_resource != null)
+		{
+			try
+			{
+				_resource.rollback();
+			}
+			// catch (com.arjuna.mw.wst.exceptions.WrongStateException ex)
+			catch (com.arjuna.wst.WrongStateException ex)
+			{
+				throw new WrongStateException(ex.toString());
+			}
+			/*
+			 * catch (com.arjuna.mw.wst.exceptions.HeuristicHazardException ex) {
+			 * throw new HeuristicHazardException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicMixedException ex) { throw
+			 * new HeuristicMixedException(ex.toString()); } catch
+			 * (com.arjuna.mw.wst.exceptions.HeuristicCommitException ex) {
+			 * throw new HeuristicConfirmException(ex.toString()); }
+			 */
+			// catch (com.arjuna.mw.wst.exceptions.SystemException ex)
+			catch (com.arjuna.wst.SystemException ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+		else
+			throw new InvalidParticipantException();
+	}
+
+	private Volatile2PCParticipant _resource = null;
+
+	private boolean _readonly = false;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/ContextManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/ContextManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/ContextManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ContextManager.java,v 1.3 2005/05/19 12:13:43 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.remote;
+
+import com.arjuna.wst.*;
+
+import com.arjuna.mw.wst.TxContext;
+
+/**
+ */
+
+// publish via JNDI for each address space?
+public class ContextManager
+{
+
+	public ContextManager ()
+	{
+	}
+
+	// resume overwrites. Should we check first a la JTA?
+
+	public void resume (TxContext tx) throws UnknownTransactionException,
+			SystemException
+	{
+		_threadTxData.set(tx);
+	}
+
+	public TxContext suspend () throws SystemException
+	{
+		final TxContext ctx = currentTransaction();
+		
+		if (ctx != null)
+		{
+			_threadTxData.set(null);
+		}
+		
+		return ctx;
+	}
+
+	public TxContext currentTransaction () throws SystemException
+	{
+		return (TxContext) _threadTxData.get();
+	}
+
+	private static ThreadLocal _threadTxData = new ThreadLocal();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,249 @@
+/*
+ * 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: TransactionManagerImple.java,v 1.19.4.1 2005/11/22 10:36:09 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.remote;
+
+import com.arjuna.ats.arjuna.common.Uid;
+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.TxContextImple;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.RegistrationCoordinator;
+import com.arjuna.wst.Durable2PCParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.Volatile2PCParticipant;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.ParticipantEngine;
+
+/**
+ * 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 TransactionManagerImple extends TransactionManager
+{
+	public TransactionManagerImple ()
+	{
+	}
+
+	public void enlistForDurableTwoPhase (Durable2PCParticipant tpp, String id)
+			throws WrongStateException, UnknownTransactionException,
+			AlreadyRegisteredException, SystemException
+	{
+		try
+		{
+			final EndpointReferenceType coordinator = registerParticipant(getParticipant(id) , AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC);
+
+			ParticipantProcessor.getProcessor().activateParticipant(new ParticipantEngine(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 EndpointReferenceType coordinator = registerParticipant(getParticipant(id), AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC);
+
+			ParticipantProcessor.getProcessor().activateParticipant(new ParticipantEngine(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.TransactionManagerImple_1
+	 *          [com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple_1] -
+	 *          Not implemented!
+	 */
+
+	public int replay () throws SystemException
+	{
+		throw new SystemException(
+				wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple_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 EndpointReferenceType enlistForCompletion (final EndpointReferenceType participantEndpoint)
+			throws WrongStateException, UnknownTransactionException,
+			AlreadyRegisteredException, SystemException
+	{
+		try
+		{
+			TxContextImple currentTx = (TxContextImple) _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 EndpointReferenceType getParticipant(final String id)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String serviceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_PARTICIPANT) ;
+        final EndpointReferenceType participant = new EndpointReferenceType(new AttributedURIType(serviceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participant, id) ;
+        return participant ;
+    }
+
+	private final EndpointReferenceType registerParticipant (final EndpointReferenceType participant, final String protocol)
+			throws InvalidProtocolException, InvalidStateException, NoActivityException, SystemException
+	{
+		TxContextImple currentTx = null;
+
+		try
+		{
+			currentTx = (TxContextImple) _ctxManager.suspend();
+
+			if (currentTx == null)
+				throw new com.arjuna.wsc.NoActivityException();
+
+            final CoordinationContextType coordinationContext = currentTx.context().getCoordinationContext() ;
+            final String messageId = new Uid().stringForm() ;
+            return RegistrationCoordinator.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/UserTransactionImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,400 @@
+/*
+ * 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: UserTransactionImple.java,v 1.21.4.1 2005/11/22 10:36:09 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.remote;
+
+import java.util.Hashtable;
+import java.io.InputStream;
+
+import com.arjuna.ats.arjuna.common.Uid;
+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.ContextImple;
+import com.arjuna.mwlabs.wst.at.context.TxContextImple;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ActivationCoordinator;
+import com.arjuna.wsc.InvalidCreateParametersException;
+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.CompletionStub;
+
+/**
+ * @message com.arjuna.mwlabs.wst.at.remote.UserTransactionImple_2
+ *          [com.arjuna.mwlabs.wst.at.remote.UserTransactionImple_2] - Received
+ *          context is null!
+ */
+public class UserTransactionImple extends UserTransaction
+{
+
+	public UserTransactionImple ()
+	{
+		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 SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                _activationCoordinatorService = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+			}
+		}
+		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.Context ctx = startTransaction(timeout);
+
+			_ctxManager.resume(new TxContextImple(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 (com.arjuna.wst.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
+		{
+			TransactionManagerImple tm = (TransactionManagerImple) TransactionManager.getTransactionManager();
+
+			final String id = ((TxContextImple) tm.currentTransaction()).identifier();
+			final EndpointReferenceType 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.Context 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 = new Uid().stringForm() ;
+            final CoordinationContextType coordinationContext = ActivationCoordinator.createCoordinationContext(
+                    _activationCoordinatorService, messageId, AtomicTransactionConstants.WSAT_PROTOCOL, expires, null) ;
+            if (coordinationContext == null)
+            {
+                throw new SystemException(
+                    wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.remote.UserTransactionImple_2"));
+            }
+            return new ContextImple(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
+	{
+		TxContextImple ctx = null;
+		String id = null;
+
+		try
+		{
+			ctx = (TxContextImple) _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 EndpointReferenceType completionCoordinator = (EndpointReferenceType) _completionCoordinators.get(id);
+
+			if (completionCoordinator == null)
+				throw new SecurityException();
+
+			CompletionStub completionStub = new CompletionStub(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
+	{
+		TxContextImple ctx = null;
+		String id = null;
+
+		try
+		{
+			ctx = (TxContextImple) _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).
+			 */
+
+			EndpointReferenceType completionCoordinator = (EndpointReferenceType) _completionCoordinators.get(id);
+
+			if (completionCoordinator == null)
+				throw new SecurityException();
+
+			CompletionStub completionStub = new CompletionStub(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);
+		}
+	}
+
+    private EndpointReferenceType getCompletionParticipant(final String id)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String serviceURI = soapRegistry.getServiceURI(AtomicTransactionConstants.SERVICE_COMPLETION_INITIATOR) ;
+        final EndpointReferenceType participant = new EndpointReferenceType(new AttributedURIType(serviceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participant, id) ;
+        return participant ;
+    }
+
+	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/BusinessActivityTerminatorImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,211 @@
+/*
+ * 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: BusinessActivityTerminatorImple.java,v 1.3.18.1 2005/11/22 10:36:14 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+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.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+import com.arjuna.wst.BusinessActivityTerminator;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+public class BusinessActivityTerminatorImple implements BusinessActivityTerminator
+{
+    public BusinessActivityTerminatorImple ()
+        throws SystemException
+    {
+        try
+        {
+            _coordManager = CoordinatorManagerFactory.coordinatorManager();
+            _hier = _coordManager.currentActivity();
+        }
+        catch (ProtocolNotRegisteredException pnre)
+        {
+            throw new SystemException(pnre.toString());
+        }
+        catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+        {
+            throw new SystemException(ex.toString());
+        }
+    }
+    
+    public void close () throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        try
+        {
+            if (_hier == null)
+            throw new UnknownTransactionException();
+
+            _coordManager.resume(_hier);
+        
+            _coordManager.close();
+        }
+        catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+        {
+            throw new UnknownTransactionException();
+        }
+        catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+        {
+            throw new SystemException(ex.toString());
+        }
+        catch (com.arjuna.mw.wscf.model.sagas.exceptions.CoordinatorCancelledException ex)
+        {
+            throw new TransactionRolledBackException();
+        }
+        catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+        {
+            throw new UnknownTransactionException();
+        }
+        catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+        {
+            throw new SystemException(ex.toString());
+        }
+        catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+        {
+            throw new SystemException(ex.toString());
+        }
+        catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+        {
+            throw new SystemException(ex.toString());
+        }
+        catch (UnknownTransactionException ex)
+        {
+            throw ex;
+        }
+        finally
+        {
+            TerminationCoordinatorProcessor.getProcessor().deactivateParticipant(this) ;
+        }
+    }
+
+    public void cancel () throws UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier == null)
+		throw new UnknownTransactionException();
+
+	    _coordManager.resume(_hier);
+	
+	    _coordManager.cancel();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.model.sagas.exceptions.CoordinatorConfirmedException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (UnknownTransactionException ex)
+	{
+	    throw ex;
+	}
+	finally
+	{
+        TerminationCoordinatorProcessor.getProcessor().deactivateParticipant(this) ;
+	}
+    }
+
+    /**
+     * Complete doesn't mean go away, it just means that all work you need to
+     * accomplish the commit/rollback has been received.
+     */
+
+    public void complete () throws UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier == null)
+		throw new UnknownTransactionException();
+
+	    _coordManager.resume(_hier);
+	
+	    _coordManager.complete();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (UnknownTransactionException ex)
+	{
+	    throw ex;
+	}
+    }
+
+    private CoordinatorManager                   _coordManager = null;
+    private ActivityHierarchy                    _hier = null;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * 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.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+
+public class ContextFactoryImple implements ContextFactory
+{
+
+    public ContextFactoryImple ()
+    {
+        try
+        {
+            _coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+            _theRegistrar = new RegistrarImple();
+        }
+        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 InvalidCreateParametersException if a parameter passed is invalid
+     *         this activity identifier.
+     *
+     * @message com.arjuna.mwlabs.wst.ba.ContextFactoryImple_1 [com.arjuna.mwlabs.wst.ba.ContextFactoryImple_1] - Invalid type URI: < {0} , {1} >
+     * @message com.arjuna.mwlabs.wst.ba.ContextFactoryImple_3 [com.arjuna.mwlabs.wst.ba.ContextFactoryImple_3] - Invalid type URI: 
+     */
+
+    public CoordinationContextType create (final String coordinationTypeURI,
+            final Long expires, final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException
+    {
+        if (BusinessActivityConstants.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 SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+            final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+            
+            final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+            coordinationContext.setCoordinationType(new URI(coordinationTypeURI)) ;
+            coordinationContext.setIdentifier(new AttributedURIType("urn:"+arjunaContext.getTransactionIdentifier())) ;
+            final int transactionExpires = arjunaContext.getTransactionExpires() ;
+            if (transactionExpires > 0)
+            {
+                coordinationContext.setExpires(new AttributedUnsignedIntType(transactionExpires)) ;
+            }
+            final EndpointReferenceType registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+            InstanceIdentifier.setEndpointInstanceIdentifier(registrationCoordinator, arjunaContext.getTransactionIdentifier()) ;
+            coordinationContext.setRegistrationService(registrationCoordinator) ;
+            
+            TerminationCoordinatorProcessor.getProcessor().activateParticipant(new BusinessActivityTerminatorImple(), 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.ContextFactoryImple_1",
+					  new Object[]{BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, coordinationTypeURI});
+
+	    throw new InvalidCreateParametersException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.ba.ContextFactoryImple_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 serviceAddress the address of the service
+     * @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 RegistrarImple registrar ()
+    {
+	return _theRegistrar;
+    }
+
+    private CoordinatorManager                   _coordManager;
+    private RegistrarImple                       _theRegistrar;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * 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 com.arjuna.webservices.wscoor.CoordinationContextType;
+
+public class ContextImple implements com.arjuna.mw.wsc.context.Context
+{
+    public ContextImple (CoordinationContextType ctx)
+    {
+        _coordContext = ctx;
+    }
+
+    public boolean equals (Object obj)
+    {
+        if (obj instanceof ContextImple)
+        {
+    	    ContextImple ci = (ContextImple) 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;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,272 @@
+/*
+ * 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 java.util.HashMap;
+
+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.BusinessAgreementWithCoordinatorCompletionImple;
+import com.arjuna.mwlabs.wst.ba.participants.BusinessAgreementWithParticipantCompletionImple;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wsc.Registrar;
+import com.arjuna.wsc.RegistrarMapper;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine;
+import com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub;
+import com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub;
+
+public class RegistrarImple implements Registrar
+{
+
+	public RegistrarImple () throws ProtocolNotRegisteredException,
+			SystemException
+	{
+		_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+		// register with mapper using tx id as protocol identifier.
+		final RegistrarMapper mapper = RegistrarMapper.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 serviceAddress
+	 *            the address of the service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void install (String protocolIdentifier)
+	{
+	}
+
+	/**
+	 * Registers the interest of participant in a particular protocol.
+	 * 
+	 * @param participantProtocolServiceAddress
+	 *            the address of the participant protocol service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 * 
+	 * @return the PortReference of the coordinator protocol service
+	 * 
+	 * @throws AlreadyRegisteredException
+	 *             if the participant is already registered for this
+	 *             coordination protocol under this activity identifier
+	 * @throws InvalidProtocolException
+	 *             if the coordination protocol is not supported
+	 * @throws InvalidStateException
+	 *             if the state of the coordinator no longer allows registration
+	 *             for this coordination protocol
+	 * @throws NoActivityException
+	 *             if the activity does not exist.
+	 * 
+	 * @message com.arjuna.mwlabs.wst.ba.RegistrarImple_1
+	 *          [com.arjuna.mwlabs.wst.ba.RegistrarImple_1] - Invalid type URI: <
+	 *          {0} , {1} >
+	 */
+
+	public EndpointReferenceType register (
+			final EndpointReferenceType participantProtocolService,
+			final String protocolIdentifier,
+			final InstanceIdentifier 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 (com.arjuna.mw.wsas.exceptions.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 ParticipantCompletionCoordinatorEngine engine = new ParticipantCompletionCoordinatorEngine(id, participantProtocolService) ;
+				BusinessAgreementWithParticipantCompletionImple participant = new BusinessAgreementWithParticipantCompletionImple(
+						new BusinessAgreementWithParticipantCompletionStub(engine), id);
+                engine.setCoordinator(participant.participantManager()) ;
+
+				_coordManager.enlistParticipant(participant);
+
+				_coordManager.suspend();
+
+				return getParticipantManager(
+						BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_COORDINATOR,
+						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 CoordinatorCompletionCoordinatorEngine engine = new CoordinatorCompletionCoordinatorEngine(id, participantProtocolService) ;
+					BusinessAgreementWithCoordinatorCompletionImple participant = new BusinessAgreementWithCoordinatorCompletionImple(
+							new BusinessAgreementWithCoordinatorCompletionStub(engine), id);
+                    engine.setCoordinator(participant.participantManager()) ;
+
+					_coordManager.enlistParticipant(participant);
+
+					_coordManager.suspend();
+
+					return getParticipantManager(
+							BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_COORDINATOR,
+							id);
+				}
+				catch (Exception ex)
+				{
+					throw new InvalidStateException();
+				}
+			}
+			else
+				if (ArjunaTXConstants.WSARJTX_PROTOCOL_TERMINATION.equals(protocolIdentifier))
+				{
+					try
+					{
+						return getParticipantManager(
+								ArjunaTXConstants.SERVICE_TERMINATION_COORDINATOR,
+								instanceIdentifier.getInstanceIdentifier());
+					}
+					catch (Exception ex)
+					{
+						throw new InvalidStateException();
+					}
+				}
+				else
+				{
+					wstxLogger.arjLoggerI18N
+							.warn(
+									"com.arjuna.mwlabs.wst.ba.RegistrarImple_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 serviceAddress
+	 *            the address of the service
+	 * @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 EndpointReferenceType getParticipantManager (final String service,
+			final String id)
+	{
+		final SoapRegistry soapRegistry = SoapRegistry.getRegistry();
+		final String participantManagerParticipantURI = soapRegistry
+				.getServiceURI(service);
+		final EndpointReferenceType participantManagerParticipant = new EndpointReferenceType(
+				new AttributedURIType(participantManagerParticipantURI));
+		InstanceIdentifier.setEndpointInstanceIdentifier(
+				participantManagerParticipant, id);
+		return participantManagerParticipant;
+	}
+
+	private CoordinatorManager _coordManager = null;
+
+	private HashMap _hierarchies = new HashMap();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,258 @@
+/*
+ * 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;
+
+/**
+ * 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 ArjunaContextImple implements SOAPContext
+{
+
+    public ArjunaContextImple ()
+    {
+        _context = null;
+    }
+    
+    public ArjunaContextImple (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 java.lang.IllegalArgumentException();
+    	}
+    }
+    
+    /**
+     * @return the context document object.
+     */
+    private synchronized Element context()
+    {
+        if (_context == null)
+        {
+            DocumentBuilder builder = com.arjuna.mw.wscf.utils.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.
+                 */
+
+                org.w3c.dom.Element identifier = doc.createElement("wsu:"+_identifier);
+                identifier.appendChild(doc.createTextNode(_identifierValues[0]));
+        
+                _context.appendChild(identifier);
+        
+                org.w3c.dom.Element expires = doc.createElement("wsu:"+_expires);
+                expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[0])));
+        
+                _context.appendChild(expires);
+                
+                org.w3c.dom.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)
+                {
+                    org.w3c.dom.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 ArjunaContextImple.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.ArjunaContextImple_1 [com.arjuna.mwlabs.wst.ba.context.ArjunaContextImple_1] - ignoring context: 
+     */
+    public static ArjunaContextImple getContext()
+    {
+        ContextManager cxman = new ContextManager();
+        Context[] contexts = cxman.contexts();
+
+        for (int i = 0; i < contexts.length; i++)
+        {
+            if (contexts[i].identifier().equals(ArjunaContextImple.class.getName()))
+            {
+                if (contexts[i] instanceof ArjunaContextImple)
+                {
+                    return (ArjunaContextImple)contexts[i] ;
+                }
+                else
+                {
+                    wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.ba.context.ArjunaContextImple_1",
+                            new Object[]{contexts[i]});
+                }
+                break;
+            }
+        }
+        return null ;
+    }
+
+    private org.w3c.dom.Element _context;
+    private String[] _identifierValues ;
+    private int[] _expiresValues ;
+
+    private static final String _wscoorNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wscoor";
+    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 = "CoordinationContext";
+    private static final String _identifier = "Identifier";
+    private static final String _expires = "Expires";
+    private static final String _coordinationType = "CoordinationType";
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/DeploymentContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/DeploymentContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/DeploymentContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,55 @@
+/*
+ * 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: DeploymentContextImple.java,v 1.2.20.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.context;
+
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.DeploymentContext;
+
+/**
+ * @author Mark Little (mark at arjuna.com)
+ * @version $Id: DeploymentContextImple.java,v 1.2.20.1 2005/11/22 10:36:15 kconner Exp $
+ * @since 1.0.
+ */
+
+public class DeploymentContextImple implements DeploymentContext
+{
+
+    public DeploymentContextImple ()
+    {
+    }
+    
+    public Context context ()
+    {
+        return ArjunaContextImple.getContext();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.ContextImple;
+import com.arjuna.webservices.wscoor.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 TxContextImple implements TxContext
+{
+
+    public TxContextImple (CoordinationContextType ctx)
+    {
+        _context = new ContextImple(ctx);
+    }
+
+    public TxContextImple (com.arjuna.mw.wsc.context.Context 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 com.arjuna.mw.wsc.context.Context context ()
+    {
+        return _context;
+    }
+
+    public String toString ()
+    {
+        return _context.toString();
+    }
+
+    private com.arjuna.mw.wsc.context.Context _context;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BAParticipantManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BAParticipantManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BAParticipantManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,165 @@
+/*
+ * 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.4.8.1 2005/11/22 10:36:17 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.local;
+
+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;
+
+/**
+ * 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 BAParticipantManagerImple implements com.arjuna.wst.BAParticipantManager
+{
+
+    public BAParticipantManagerImple (String participantId)
+    {
+	try
+	{
+	    _coordManager = CoordinatorManagerFactory.coordinatorManager();
+	    _participantId = participantId;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+	
+    public void exit () throws WrongStateException, UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    _coordManager.delistParticipant(_participantId);
+	}
+	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 (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void completed () throws WrongStateException, UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    _coordManager.participantCompleted(_participantId);
+	}
+    	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 (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void faulted () throws SystemException
+    {
+	try
+	{
+	    _coordManager.participantFaulted(_participantId);
+	}
+	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());
+	}
+    }
+
+    /**
+     * Fault.
+     */
+
+    public void fault () throws SystemException
+    {
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+    
+    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 String             _participantId = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BusinessActivityManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BusinessActivityManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/BusinessActivityManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,133 @@
+/*
+ * 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.3.8.1 2005/11/22 10:36:16 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.local;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * 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 BusinessActivityManagerImple extends BusinessActivityManager
+{
+
+    public BusinessActivityManagerImple ()
+    {
+	_contextManager = ContextManager.contextManager();
+	_contextManager.initialise(UserBusinessActivityImple._factory);
+    }
+	
+    public com.arjuna.wst.BAParticipantManager enlistForBusinessAgreementWithParticipantCompletion (BusinessAgreementWithParticipantCompletionParticipant pzp, String id) throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException
+    {
+	try
+	{
+	    _registrar.register(pzp, BusinessActivityConstants.WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION, id);
+
+	    return new BAParticipantManagerImple(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 com.arjuna.wst.BAParticipantManager enlistForBusinessAgreementWithCoordinatorCompletion (BusinessAgreementWithCoordinatorCompletionParticipant tpp, String id) throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException
+    {
+	try
+	{
+	    _registrar.register(tpp, BusinessActivityConstants.WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION, id);
+
+	    return new BAParticipantManagerImple(id);
+	}
+	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();
+	}
+    }
+
+    public void resume (TxContext tx) throws UnknownTransactionException, SystemException
+    {
+	_contextManager.resume(tx);
+    }
+    
+    public TxContext suspend () throws SystemException
+    {
+	return _contextManager.suspend();
+    }
+
+    public TxContext currentTransaction () throws SystemException
+    {
+	return _contextManager.currentTransaction();
+    }
+
+    final LocalRegistrarImple getRegistrar ()
+    {
+	return _registrar;
+    }
+
+    private ContextManager _contextManager = null;
+    
+    private static LocalRegistrarImple _registrar = new LocalRegistrarImple();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/ContextManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/ContextManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/ContextManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,155 @@
+/*
+ * 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: ContextManager.java,v 1.4 2005/03/10 15:37:16 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.local;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.wst.*;
+
+import com.arjuna.mw.wst.TxContext;
+
+import java.util.*;
+
+/**
+ * @message com.arjuna.mwlabs.wst.ba.local.ContextManager_1 [com.arjuna.mwlabs.wst.ba.local.ContextManager_1] - One context was null!
+ */
+
+public class ContextManager
+{
+    
+    public static final ContextManager contextManager ()
+    {
+	return _instance;
+    }
+    
+    public final void initialise (LocalContextFactoryImple factory)
+    {
+	_factory = factory;
+    }
+    
+    public final TxContext suspend () throws SystemException
+    {
+	ActivityHierarchy wstxHier = null;
+
+	try
+	{
+	    wstxHier = _factory.coordinatorManager().suspend();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+
+	TxContext txCtx = (TxContext) _threadTxData.get();
+	if (txCtx != null)
+	{
+	    _threadTxData.set(null) ;
+	}
+	
+	if ((txCtx != null) && (wstxHier != null)) // should be equal!
+	{
+	    _contextMapper.put(txCtx, wstxHier);
+	    
+	    return txCtx;
+	}
+	else
+	{
+	    if ((txCtx == null) && (wstxHier == null))
+		return null;
+	    else
+	    {
+		throw new SystemException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.ba.local.ContextManager_1"));
+	    }
+	}
+    }
+
+    public final TxContext currentTransaction () throws SystemException
+    {
+	return (TxContext) _threadTxData.get();
+    }
+
+    // resume overwrites. Should we check first a la JTA?
+
+    public final void resume (TxContext tx) throws UnknownTransactionException, SystemException
+    {
+	ActivityHierarchy wstxHier = null;
+	boolean imported = true;
+	
+	if (tx != null)
+	{
+	    wstxHier = (ActivityHierarchy) _contextMapper.remove(tx);
+	
+	    if (wstxHier == null)
+		imported = false;
+	}
+        _threadTxData.set(tx);
+	
+	try
+	{
+	    if (imported)
+		_factory.coordinatorManager().resume(wstxHier);
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public final void tidyup ()
+    {
+	TxContext txCtx = (TxContext) _threadTxData.get();
+	
+	if (txCtx != null)
+	{
+	    _threadTxData.set(null) ;
+	    _contextMapper.remove(txCtx);
+	}
+    }
+
+    protected ContextManager ()
+    {
+    }
+
+    private static ThreadLocal _threadTxData = new ThreadLocal();
+    private static HashMap     _contextMapper = new HashMap();
+
+    private static LocalContextFactoryImple _factory = null;
+
+    private static ContextManager _instance = new ContextManager();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalContextFactoryImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalContextFactoryImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalContextFactoryImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,176 @@
+/*
+ * 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: LocalContextFactoryImple.java,v 1.4.4.1 2005/11/22 10:36:16 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.local;
+
+import com.arjuna.mw.wsas.context.DeploymentContext;
+import com.arjuna.mw.wsas.context.DeploymentContextFactory;
+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.at.context.ArjunaContextImple;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.stax.URI;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.AttributedUnsignedIntType;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ContextFactory;
+import com.arjuna.wsc.InvalidCreateParametersException;
+
+public class LocalContextFactoryImple implements ContextFactory
+{
+
+    public LocalContextFactoryImple ()
+    {
+	try
+	{
+	    _coordManager = CoordinatorManagerFactory.coordinatorManager();
+	}
+	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)
+    {
+    }
+
+    /**
+     * 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 InvalidCreateParametersException if a parameter passed is invalid
+     *         this activity identifier.
+     *
+     * @message com.arjuna.mwlabs.wst.ba.LocalContextFactoryImple_1 [com.arjuna.mwlabs.wst.ba.local.LocalContextFactoryImple_1] - Invalid type URI: < {0} , {1} >
+     * @message com.arjuna.mwlabs.wst.ba.local.LocalContextFactoryImple_11 [com.arjuna.mwlabs.wst.ba.local.LocalContextFactoryImple_11] - Invalid type URI:
+     */
+
+    public CoordinationContextType create (final String coordinationTypeURI, final Long expires,
+        final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException
+    {
+    	if (BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationTypeURI))
+    	{
+    	    try
+    	    {
+        		_coordManager.suspend();
+        
+        		_coordManager.begin();
+        
+        		DeploymentContext manager = DeploymentContextFactory.deploymentContext();
+                ArjunaContextImple arjunaContext = (ArjunaContextImple)manager.context();
+
+                final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                final String registrationCoordinatorURI = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR) ;
+                
+                final CoordinationContextType coordinationContext = new CoordinationContextType() ;
+                coordinationContext.setCoordinationType(new URI(coordinationTypeURI)) ;
+                coordinationContext.setIdentifier(new AttributedURIType(arjunaContext.getTransactionIdentifier())) ;
+                final int transactionExpires = arjunaContext.getTransactionExpires() ;
+                if (transactionExpires > 0)
+                {
+                    coordinationContext.setExpires(new AttributedUnsignedIntType(transactionExpires)) ;
+                }
+                final EndpointReferenceType registrationCoordinator = new EndpointReferenceType(new AttributedURIType(registrationCoordinatorURI)) ;
+                InstanceIdentifier.setEndpointInstanceIdentifier(registrationCoordinator, arjunaContext.getTransactionIdentifier()) ;
+                coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+                return coordinationContext;
+    	    }
+    	    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.local.LocalContextFactoryImple_1",
+    					  new Object[]{BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, coordinationTypeURI});
+    
+    	    throw new InvalidCreateParametersException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.ba.local.LocalContextFactoryImple_11"+" <"+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 (final String coordinationTypeURI)
+    {
+    }
+
+    public CoordinatorManager coordinatorManager ()
+    {
+	return _coordManager;
+    }
+
+    private CoordinatorManager _coordManager;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalRegistrarImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalRegistrarImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/LocalRegistrarImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,129 @@
+/*
+ * 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: LocalRegistrarImple.java,v 1.5 2005/03/10 15:37:16 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.local;
+
+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.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.InvalidProtocolException;
+import com.arjuna.wsc.InvalidStateException;
+import com.arjuna.wsc.NoActivityException;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+
+/**
+ * This class simulates the use of the real RegistrarImple, which we can't
+ * use in a local environment simply because we do not have URIs to register:
+ * we have real participants!
+ */
+
+public class LocalRegistrarImple
+{
+
+    public LocalRegistrarImple ()
+    {
+	try
+	{
+	    _coordManager = CoordinatorManagerFactory.coordinatorManager();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+    /**
+     * Registers the interest of participant in a particular protocol.
+     *
+     * @param participantProtocolServiceAddress the address of the participant protocol service
+     * @param protocolIdentifier the protocol identifier
+     *
+     * @throws AlreadyRegisteredException if the participant is already registered for this coordination protocol under
+     *         this activity identifier
+     * @throws InvalidProtocolException if the coordination protocol is not supported
+     * @throws InvalidStateException if the state of the coordinator no longer allows registration for this
+     *         coordination protocol
+     * @throws NoActivityException if the activity does not exist.
+     *
+     * @message com.arjuna.mwlabs.wst.ba.local.LocalRegistrarImple_1 [com.arjuna.mwlabs.wst.ba.local.LocalRegistrarImple_1] - Invalid type URI: < {0} , {1} >
+     */
+
+    /*
+     * Should send back BAParticipantManager reference in the context?
+     * Or is it just another call on the usual coordinator reference?
+     */
+
+    public void register (Object participant, String protocolIdentifier, String participantId) throws AlreadyRegisteredException, InvalidProtocolException, InvalidStateException, NoActivityException
+    {
+	// TODO check for AlreadyRegisteredException
+	
+	if (protocolIdentifier.equals(BusinessActivityConstants.WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION))
+	{
+	    // enlist participant that wraps the requester URI.
+
+	    try
+	    {
+		_coordManager.enlistParticipant(new com.arjuna.mwlabs.wst.ba.participants.BusinessAgreementWithParticipantCompletionImple((BusinessAgreementWithParticipantCompletionParticipant) participant, participantId));
+	    }
+	    catch (Exception ex)
+	    {
+		throw new InvalidStateException();
+	    }
+	}
+	else
+	{
+	    if (protocolIdentifier.equals(BusinessActivityConstants.WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION))
+	    {
+		try
+		{
+		    _coordManager.enlistParticipant(new com.arjuna.mwlabs.wst.ba.participants.BusinessAgreementWithCoordinatorCompletionImple((BusinessAgreementWithCoordinatorCompletionParticipant) participant, participantId));
+		}
+		catch (Exception ex)
+		{
+		    throw new InvalidStateException();
+		}
+	    }
+	    else
+	    {
+		wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.ba.local.LocalRegistrarImple_1",
+					      new Object[]{BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, protocolIdentifier});
+
+		throw new InvalidProtocolException();
+	    }
+	}
+    }
+    
+    private CoordinatorManager _coordManager;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/UserBusinessActivityImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/UserBusinessActivityImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/local/UserBusinessActivityImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,188 @@
+/*
+ * 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: UserBusinessActivityImple.java,v 1.3.6.1 2005/11/22 10:36:17 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.local;
+
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwlabs.wst.ba.context.TxContextImple;
+import com.arjuna.mwlabs.wst.ba.participants.TerminationCoordinatorImple;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+/**
+ * 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.
+ */
+
+public class UserBusinessActivityImple extends UserBusinessActivity
+{
+    public UserBusinessActivityImple ()
+    {
+    	_terminationCoordinator = new TerminationCoordinatorImple(_factory.coordinatorManager(), null);
+    
+    	_contextManager = ContextManager.contextManager();
+    	_contextManager.initialise(_factory);
+    }
+    
+    public void begin () throws WrongStateException, SystemException
+    {
+    	begin(0);
+    }
+    
+    public void begin (int timeout) throws WrongStateException, SystemException
+    {
+    	try
+    	{
+    	    if (_contextManager.currentTransaction() != null)
+    		throw new WrongStateException();
+    	    
+    	    CoordinationContextType ctx = _factory.create(BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, null, null);
+    
+    	    TxContextImple theContext = new TxContextImple(ctx);
+    
+    	    _contextManager.resume(theContext);
+    	}
+    	catch (com.arjuna.wst.UnknownTransactionException ex)
+    	{
+    	    ex.printStackTrace();
+    	    
+    	    throw new SystemException(ex.toString());
+    	}
+    	catch (com.arjuna.wsc.InvalidCreateParametersException ex)
+    	{
+    	    throw new SystemException(ex.toString());
+    	}
+    
+    	/*
+    	 * At this point we would normally register a completion participant.
+    	 *
+    	 * Registrar reg = _registrarMapper.getRegistrar(_factory.coordinatorManager().identifier().toString());
+    	 *
+    	 * reg.register(Protocols.Completion, null);
+    	 */
+    }
+
+    public void close () throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+    	try
+    	{
+    	    _terminationCoordinator.close();
+    	}
+    	catch (TransactionRolledBackException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (SystemException ex)
+    	{
+    	    throw ex;
+    	}
+    	finally
+    	{
+    	    _contextManager.tidyup();
+    	}
+    }
+    
+    public void cancel () throws UnknownTransactionException, SystemException
+    {
+    	try
+    	{
+    	    _terminationCoordinator.cancel();
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (SystemException ex)
+    	{
+    	    throw ex;
+    	}
+    	finally
+    	{
+    	    _contextManager.tidyup();
+    	}
+    }
+
+    public void complete () throws UnknownTransactionException, SystemException
+    {
+    	try
+    	{
+    	    _terminationCoordinator.complete();
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (SystemException ex)
+    	{
+    	    throw ex;
+    	}
+    	finally
+    	{
+    	    _contextManager.tidyup();
+    	}
+    }
+
+    public String transactionIdentifier ()
+    {
+    	try
+    	{
+    	    return _factory.coordinatorManager().identifier().toString();
+    	}
+    	catch (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+    	{
+    	    return "NoBusinessActivity";
+    	}
+    	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+    	{
+    	    return "Unknown";
+    	}
+    }
+
+    public String toString ()
+    {
+        return transactionIdentifier();
+    }
+
+    static LocalContextFactoryImple _factory = new LocalContextFactoryImple();
+
+    private TerminationCoordinatorImple _terminationCoordinator = null;
+    private ContextManager              _contextManager = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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 BusinessAgreementWithCoordinatorCompletionImple extends
+		BusinessAgreementWithParticipantCompletionImple implements
+		com.arjuna.mw.wscf.model.sagas.participants.ParticipantWithComplete
+{
+
+	public BusinessAgreementWithCoordinatorCompletionImple (
+			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();
+	}
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,229 @@
+/*
+ * 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: BusinessAgreementWithParticipantCompletionImple.java,v 1.1.2.2
+ *          2004/08/09 12:34:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BusinessAgreementWithParticipantCompletionImple implements
+		com.arjuna.mw.wscf.model.sagas.participants.Participant
+{
+//
+	public BusinessAgreementWithParticipantCompletionImple (
+			BusinessAgreementWithParticipantCompletionParticipant resource,
+			String id)
+	{
+		_resource = resource;
+		_identifier = id;
+		_baParticipantManager = new com.arjuna.mwlabs.wst.ba.remote.BAParticipantManagerImple(
+				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 InvalidParticipantException
+	 *                Thrown if the participant identity is invalid.
+	 * @exception WrongStateException
+	 *                Thrown if the participant is in an invalid state.
+	 * @exception 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.BAParticipantManager 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.BAParticipantManager _baParticipantManager = null;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/TerminationCoordinatorImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/TerminationCoordinatorImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/TerminationCoordinatorImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,192 @@
+/*
+ * 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: TerminationCoordinatorImple.java,v 1.2.20.1 2005/11/22 10:36:19 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.participants;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TerminationCoordinatorImple.java,v 1.2.20.1 2005/11/22 10:36:19 kconner Exp $
+ * @since 1.0.
+ */
+
+// Why is this here in participants package?
+
+public class TerminationCoordinatorImple// implements com.arjuna.wst.TerminationCoordinator
+{
+
+    public TerminationCoordinatorImple (CoordinatorManager cm, ActivityHierarchy hier)
+    {
+	_cm = cm;
+	_hier = hier;
+    }
+    
+    public void close () throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier != null)
+		_cm.resume(_hier);
+
+	    _cm.close();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.model.sagas.exceptions.CoordinatorCancelledException ex)
+	{
+	    throw new TransactionRolledBackException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	finally
+	{
+	    //	    if (_ccd != null)
+	    // _ccd.deactivateObject(this);
+	}
+    }
+    
+    public void cancel () throws UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier != null)
+		_cm.resume(_hier);
+	    
+	    _cm.cancel();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.model.sagas.exceptions.CoordinatorConfirmedException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	finally
+	{
+	    //	    if (_ccd != null)
+	    //		_ccd.deactivateObject(this);
+	}
+    }
+
+    public void complete () throws UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier != null)
+		_cm.resume(_hier);
+	    
+	    _cm.complete();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.ProtocolViolationException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.NoCoordinatorException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.model.sagas.exceptions.CoordinatorConfirmedException ex)
+	{
+	    throw new SystemException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoPermissionException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	finally
+	{
+	    //	    if (_ccd != null)
+	    //		_ccd.deactivateObject(this);
+	}
+    }
+    
+    private CoordinatorManager   _cm;
+    private ActivityHierarchy    _hier;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,199 @@
+/*
+ * 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;
+
+/**
+ * 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 BAParticipantManagerImple implements com.arjuna.wst.BAParticipantManager
+{
+
+    public BAParticipantManagerImple (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 (com.arjuna.mw.wsas.exceptions.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 (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void fault () throws SystemException
+    {
+	try
+	{
+        if (_hier == null)
+            throw new UnknownTransactionException();
+            
+            _coordManager.resume(_hier);
+
+            _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 unknown () throws SystemException
+    {
+	// ??
+    }
+    
+    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;
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,209 @@
+/*
+ * 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.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mwlabs.wst.ba.context.TxContextImple;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.RegistrationCoordinator;
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine;
+import com.arjuna.wst.stub.BACoordinatorCompletionParticipantManagerStub;
+import com.arjuna.wst.stub.BAParticipantCompletionParticipantManagerStub;
+
+/**
+ * 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 BusinessActivityManagerImple extends BusinessActivityManager
+{
+    public BusinessActivityManagerImple ()
+    {
+    }
+	
+    public BAParticipantManager enlistForBusinessAgreementWithParticipantCompletion (BusinessAgreementWithParticipantCompletionParticipant bap, String id)
+        throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException
+    {
+        final EndpointReferenceType participant = getParticipant(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT, id) ;
+    	try
+    	{
+            EndpointReferenceType baPMEndpoint = registerParticipant(participant, BusinessActivityConstants.WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION);
+            final ParticipantCompletionParticipantEngine engine = new ParticipantCompletionParticipantEngine(id, baPMEndpoint, bap) ;
+            ParticipantCompletionParticipantProcessor.getProcessor().activateParticipant(engine, id) ;
+    
+            return new BAParticipantCompletionParticipantManagerStub(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 BAParticipantManager enlistForBusinessAgreementWithCoordinatorCompletion (BusinessAgreementWithCoordinatorCompletionParticipant bawcp, String id) throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException
+    {
+        final EndpointReferenceType participant = getParticipant(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT, id) ;
+    	try
+    	{
+    	    EndpointReferenceType baPMEndpoint = registerParticipant(participant, BusinessActivityConstants.WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION);
+            final CoordinatorCompletionParticipantEngine engine = new CoordinatorCompletionParticipantEngine(id, baPMEndpoint, bawcp) ;
+            CoordinatorCompletionParticipantProcessor.getProcessor().activateParticipant(engine, id) ;
+        
+            return new BACoordinatorCompletionParticipantManagerStub(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 EndpointReferenceType registerParticipant(final EndpointReferenceType participant, final String protocol)
+        throws com.arjuna.wsc.InvalidProtocolException, com.arjuna.wsc.InvalidStateException, com.arjuna.wsc.NoActivityException, SystemException
+    {
+    	TxContextImple currentTx = null;
+    
+    	try
+    	{
+    	    currentTx = (TxContextImple) _ctxManager.currentTransaction();
+    	    
+    	    if (currentTx == null)
+        		throw new com.arjuna.wsc.NoActivityException();
+
+            final CoordinationContextType coordinationContext = currentTx.context().getCoordinationContext() ;
+            final String messageId = new Uid().stringForm() ;
+            return RegistrationCoordinator.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 EndpointReferenceType getParticipant(final String participantService, final String id)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String participantServiceURI = soapRegistry.getServiceURI(participantService) ;
+        final EndpointReferenceType endpoint = new EndpointReferenceType(new AttributedURIType(participantServiceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(endpoint, id) ;
+        return endpoint ;
+    }
+    
+    private ContextManager _ctxManager = new ContextManager();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/ContextManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/ContextManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/ContextManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ContextManager.java,v 1.3.8.1 2005/11/22 10:36:08 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.remote;
+
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+
+/**
+ */
+
+// publish via JNDI for each address space?
+
+public class ContextManager
+{
+
+    public ContextManager ()
+    {
+    }
+    
+    // resume overwrites. Should we check first a la JTA?
+
+    public void resume (TxContext tx) throws UnknownTransactionException, SystemException
+    {
+        _threadTxData.set(tx);
+    }
+    
+    public TxContext suspend () throws SystemException
+    {
+        final TxContext ctx = currentTransaction() ;
+        if (ctx != null)
+        {
+            _threadTxData.set(null) ;
+        }
+	return ctx;
+    }
+
+    public TxContext currentTransaction () throws SystemException
+    {
+	return (TxContext) _threadTxData.get();
+    }
+    
+    private static ThreadLocal _threadTxData = new ThreadLocal();
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,321 @@
+/*
+ * 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: UserBusinessActivityImple.java,v 1.10.4.1 2005/11/22 10:36:07 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.remote;
+
+import com.arjuna.ats.arjuna.common.Uid;
+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.ContextImple;
+import com.arjuna.mwlabs.wst.ba.context.TxContextImple;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsaddr.AttributedURIType;
+import com.arjuna.webservices.wsaddr.EndpointReferenceType;
+import com.arjuna.webservices.wsarj.InstanceIdentifier;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationContextType;
+import com.arjuna.wsc.ActivationCoordinator;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.RegistrationCoordinator;
+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.BusinessActivityTerminatorStub;
+
+/**
+ * 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.UserBusinessActivityImple_1 [com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityImple_1] - Invalid address.
+ * @message com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityImple_2 [com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityImple_2] - Received context is null!
+ * @message com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityImple_3 [com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityImple_3] - No termination context!
+ */
+
+public class UserBusinessActivityImple extends UserBusinessActivity
+{
+    public UserBusinessActivityImple ()
+    {
+        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 SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+                _activationCoordinatorService = soapRegistry.getServiceURI(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR) ;
+            }
+        }
+        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.Context ctx = startTransaction(timeout);
+    
+    	    _ctxManager.resume(new TxContextImple(ctx));
+    	}
+    	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 close () throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+    	TxContextImple ctx = null;
+    
+    	try
+    	{
+    	    ctx = (TxContextImple) _ctxManager.suspend();
+            
+            final String id = ctx.identifier() ;
+            final EndpointReferenceType terminatorCoordinator = getTerminationCoordinator(ctx) ;
+            
+    	    BusinessActivityTerminatorStub terminatorStub = new BusinessActivityTerminatorStub(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
+    {
+    	TxContextImple ctx = null;
+    
+    	try
+    	{
+            ctx = (TxContextImple) _ctxManager.suspend();
+            
+            final String id = ctx.identifier() ;
+            final EndpointReferenceType terminatorCoordinator = getTerminationCoordinator(ctx) ;
+            
+            BusinessActivityTerminatorStub terminatorStub = new BusinessActivityTerminatorStub(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 TxContextImple ctx = ((TxContextImple) _ctxManager.currentTransaction()) ;
+            final String id = ctx.identifier() ;
+            final EndpointReferenceType terminatorCoordinator = getTerminationCoordinator(ctx) ;
+            
+            BusinessActivityTerminatorStub terminatorStub = new BusinessActivityTerminatorStub(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 (com.arjuna.wst.SystemException ex)
+    	{
+    	    return "Unknown";
+    	}
+    	catch (NullPointerException ex)
+    	{
+    	    return "Unknown";
+    	}
+    }
+
+    public String toString ()
+    {
+    	return transactionIdentifier();
+    }
+
+    private final com.arjuna.mw.wsc.context.Context startTransaction (int timeout) throws com.arjuna.wsc.InvalidCreateParametersException, SystemException
+    {
+        try
+        {
+            final Long expires = (timeout > 0 ? new Long(timeout) : null) ;
+            final String messageId = new Uid().stringForm() ;
+            final CoordinationContextType coordinationContext = ActivationCoordinator.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.UserBusinessActivityImple_2"));
+            }
+            return new ContextImple(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 EndpointReferenceType getTerminationCoordinator(final TxContextImple ctx)
+        throws SystemException
+    {
+        final CoordinationContextType coordinationContext = ctx.context().getCoordinationContext() ;
+        final String messageId = new Uid().stringForm() ;
+        try
+        {
+            return RegistrationCoordinator.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.UserBusinessActivityImple_3"));
+        }
+    }
+    
+    private EndpointReferenceType getParticipantProtocolService(final String id)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final String serviceURI = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_TERMINATION_PARTICIPANT) ;
+        final EndpointReferenceType participant = new EndpointReferenceType(new AttributedURIType(serviceURI)) ;
+        InstanceIdentifier.setEndpointInstanceIdentifier(participant, id) ;
+        return participant ;
+    }
+
+    private final void tidyup ()
+    {
+    	try
+    	{
+    	    _ctxManager.suspend();
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+    	}
+    }
+    
+    private ContextManager _ctxManager = new ContextManager();
+    private String _activationCoordinatorService;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/util/PersistableParticipantHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/util/PersistableParticipantHelper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/util/PersistableParticipantHelper.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,122 @@
+/*
+ * 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.mwlabs.wst.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.util.ClassLoaderHelper;
+import com.arjuna.wst.PersistableParticipant;
+
+/**
+ * Helper class for persisting participants.
+ * @author kevin
+ */
+public class PersistableParticipantHelper
+{
+
+    /**
+     * Save the resource state.
+     * @param os The output object stream.
+     * @param resource The resource to persist.
+     * @return true if successful, false otherwise.
+     * @message com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_1 [com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_1] - Participant not persistable.
+     * @message com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_2 [com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_2] - Error persisting participant.
+     */
+    public static boolean save_state(final OutputObjectState os, final Object resource)
+    {
+        if (resource != null)
+        {
+            try
+            {
+                if (resource instanceof Serializable)
+                {
+                    os.packBoolean(true) ;
+                    final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
+                    final ObjectOutputStream oos = new ObjectOutputStream(baos) ;
+                    oos.writeObject(resource) ;
+                    oos.flush() ;
+                    os.packBytes(baos.toByteArray()) ;
+                }
+                else if (resource instanceof PersistableParticipant)
+                {
+                    final PersistableParticipant participant = (PersistableParticipant)resource ;
+                    os.packBoolean(false) ;
+                    os.packString(resource.getClass().getName()) ;
+                    participant.saveState(os) ;
+                }
+                else
+                {
+                    wstxLogger.arjLoggerI18N.error("com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_1") ;
+                    return false ;
+                }
+                return true ;
+            }
+            catch(final Throwable th)
+            {
+                wstxLogger.arjLoggerI18N.error("com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_2", th) ;
+                return false ;
+            }
+        }
+        else
+            return false;
+    }
+
+    /**
+     * Restore the resource state.
+     * @param is The input object stream.
+     * @return The resource if successful, null otherwise.
+     * @message com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_3 [com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_3] - Error restoring participant.
+     */
+    public static Object restore_state(final InputObjectState ios)
+    {
+        try
+        {
+            final boolean serializable = ios.unpackBoolean() ;
+            if (serializable)
+            {
+                final ByteArrayInputStream bais = new ByteArrayInputStream(ios.unpackBytes()) ;
+                final ObjectInputStream ois = new ObjectInputStream(bais) ;
+                return ois.readObject() ;
+            }
+            else
+            {
+                final String className = ios.unpackString() ;
+                final Class resourceClass = ClassLoaderHelper.forName(PersistableParticipantHelper.class, className) ; // returns Class not instance
+                final Object resource = resourceClass.newInstance();
+                ((PersistableParticipant)resource).restoreState(ios) ;
+                return resource ;
+            }
+        }
+        catch (final Throwable th)
+        {
+            wstxLogger.arjLoggerI18N.error("com.arjuna.mwlabs.wst.util.PersistableParticipantHelper_3", th) ;
+            return null ;
+        }
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/common/arjunacore/TxIdImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/common/arjunacore/TxIdImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/common/arjunacore/TxIdImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: TxIdImple.java,v 1.3 2004/03/15 13:25:23 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.common.arjunacore;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.mw.wstx.common.TxId;
+
+/**
+ * This implementation of TxId uses the ArjunaCore Uid class.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TxIdImple.java,v 1.3 2004/03/15 13:25:23 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TxIdImple extends Uid implements TxId
+{
+
+    public TxIdImple ()
+    {
+	super();
+
+	_value = stringForm().getBytes();
+    }
+    
+    public TxIdImple (String id)
+    {
+	super(id);
+
+	_value = stringForm().getBytes();
+    }
+
+    public TxIdImple (Uid id)
+    {
+	super(id);
+	
+	_value = stringForm().getBytes();
+    }
+    
+    public byte[] value ()
+    {
+	return _value;
+    }
+    
+    private byte[] _value;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/TwoPhaseTxManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/TwoPhaseTxManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/TwoPhaseTxManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TwoPhaseTxManager.java,v 1.2 2003/03/04 12:59:29 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.model.as.twophase;
+
+import com.arjuna.mw.wscf.model.as.CoordinatorManager;
+import com.arjuna.mw.wscf.model.as.CoordinatorManagerFactory;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.common.*;
+
+import com.arjuna.mw.wstx.resource.Participant;
+import com.arjuna.mw.wstx.resource.Synchronization;
+
+import com.arjuna.mw.wstx.TransactionManager;
+
+import com.arjuna.mwlabs.wstx.model.as.twophase.resource.ParticipantAction;
+import com.arjuna.mwlabs.wstx.model.as.twophase.resource.SynchronizationAction;
+
+import com.arjuna.mw.wstx.exceptions.DuplicateParticipantException;
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.InvalidTransactionException;
+import com.arjuna.mw.wstx.exceptions.InvalidParticipantException;
+import com.arjuna.mw.wstx.exceptions.DuplicateSynchronizationException;
+import com.arjuna.mw.wstx.exceptions.InvalidSynchronizationException;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wsas.exceptions.ActiveChildException;
+
+/**
+ * This is the service side component of the user interface. Since services
+ * or some entity acting on their behalf (e.g., an interceptor) must enlist
+ * participants with the transaction (atom or cohesion), this interface
+ * primarily concentrates on those methods. However, a service may well
+ * not be the final destination for a transaction, i.e., in order to perform
+ * its work, the service may have to make other remote invocations on other
+ * services and propagate the context, suspend it, etc. As such, all of the
+ * UserTransaction methods are also available to the service.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TwoPhaseTxManager.java,v 1.2 2003/03/04 12:59:29 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TwoPhaseTxManager implements TransactionManager
+{
+
+    public TwoPhaseTxManager ()
+    {
+	try
+	{
+	    _coordinatorManager = CoordinatorManagerFactory.coordinatorManager();
+	}
+	catch (Exception ex)
+	{
+	    // TODO
+
+	    ex.printStackTrace();
+	    
+	    _coordinatorManager = null;
+	}
+    }
+    
+    /**
+     * Enrol the specified participant in the current transaction.
+     * It is illegal to call this method when no transaction is associated
+     * with the thread.
+     *
+     * @param Participant participant The participant to enrol.
+     * @exception WrongStateException Thrown if the transaction is not in a state
+     * whereby participants can be enrolled.
+     * @exception DuplicateParticipantException Thrown if the participant identifier
+     * has already been associated with a participant.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception InvalidTransactionException Thrown if the transaction associated with
+     * the thread is invalid.
+     * @exception InvalidParticipantException Thrown if the participant reference
+     * is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void enlist (Participant participant) throws WrongStateException, DuplicateParticipantException, NoTransactionException, InvalidTransactionException, InvalidParticipantException, SystemException
+    {
+	try
+	{
+	    _coordinatorManager.addParticipant(new ParticipantAction(participant), Priorities.PARTICIPANT, null);
+	}
+	catch (com.arjuna.mw.wscf.exceptions.DuplicateParticipantException ex)
+	{
+	    throw new DuplicateParticipantException();
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.InvalidParticipantException ex)
+	{
+	    throw new InvalidParticipantException();
+	}
+    }
+    
+    /**
+     * Cause the specified participant to resign from the transaction.
+     * CAUTION: use with *extreme* care since if invoked at the wrong time
+     * it could lead to data corruption or state modifications that are
+     * no longer under the control of the transaction. You *must* ensure
+     * that no state changes have been made that should be controlled by
+     * the specified participant.
+     *
+     * @param Participant participant The participant to resign.
+     * @exception InvalidTransactionException Thrown if the transaction associated with
+     * the thread is invalid.
+     * @exception NoTransactionException Thrown if no transaction is associated
+     * with the invoking thread.
+     * @exception InvalidParticipantException Thrown if the transaction does not know
+     * about the specified participant or the parameter is invalid.
+     * @exception WrongStateException Thrown if the transaction is not in a state
+     * that allows participants to resign.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void delist (Participant participant) throws InvalidTransactionException, NoTransactionException, InvalidParticipantException, WrongStateException, SystemException
+    {
+	// TODO: support it!
+
+	throw new WrongStateException();
+    }
+
+    /**
+     * Enlist a synchronization with the current transaction. Synchronizations
+     * do not receive the two-phase commit messages but instead are invoked
+     * prior to its start and after it has completed.
+     *
+     * @param Synchronization participant The synchronization to enroll.
+     *
+     * @exception WrongStateException Thrown if the transaction state is such
+     * that synchronizations cannot be enrolled.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception InvalidTransactionException Thrown if the transaction is not
+     * top-level.
+     * @exception InvalidSynchronizationException Thrown if the synchronization
+     * reference is invalid.
+     * @exception DuplicateSynchronizationException Thrown if the synchronization
+     * has already been registered with the transaction.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void addSynchronization (Synchronization participant) throws WrongStateException, NoTransactionException, InvalidTransactionException, InvalidSynchronizationException, DuplicateSynchronizationException, SystemException
+    {
+	try
+	{
+	    _coordinatorManager.addParticipant(new SynchronizationAction(participant), Priorities.SYNCHRONIZATION, null);
+	}
+	catch (com.arjuna.mw.wscf.exceptions.DuplicateParticipantException ex)
+	{
+	    throw new DuplicateSynchronizationException();
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.InvalidParticipantException ex)
+	{
+	    throw new InvalidSynchronizationException();
+	}
+    }
+
+    /**
+     * Remove the specified synchronization participant from the transaction.
+     *
+     * @param Synchronization participant The participant to remove.
+     *
+     * @exception InvalidTransactionException Thrown if the transaction is not
+     * top-level.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the current thread.
+     * @exception InvalidSynchronizationException Thrown if the transaction
+     * does not know about the specified synchronization.
+     * @exception WrongStateException Thrown if the state of the transaction is
+     * such that the synchronization cannot be removed.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void removeSynchronization (Synchronization participant) throws SystemException, InvalidTransactionException, NoTransactionException, InvalidSynchronizationException, WrongStateException
+    {
+	throw new WrongStateException();
+    }
+
+    private CoordinatorManager _coordinatorManager;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/UserTwoPhaseTx.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/UserTwoPhaseTx.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/UserTwoPhaseTx.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,563 @@
+/*
+ * 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: UserTwoPhaseTx.java,v 1.2 2005/03/10 15:37:17 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.model.as.twophase;
+
+import com.arjuna.mw.wstx.logging.wstxLogger;
+
+import com.arjuna.mw.wstx.UserTransaction;
+
+import com.arjuna.mw.wstx.transaction.*;
+import com.arjuna.mw.wstx.status.*;
+
+import com.arjuna.mw.wstx.common.TxId;
+
+import com.arjuna.mwlabs.wstx.transaction.*;
+
+import com.arjuna.mwlabs.wstx.common.arjunacore.TxIdImple;
+
+import com.arjuna.mw.wsas.status.*;
+
+import com.arjuna.mw.wsas.activity.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+import com.arjuna.mw.wsas.completionstatus.Success;
+import com.arjuna.mw.wsas.completionstatus.Failure;
+import com.arjuna.mw.wsas.completionstatus.FailureOnly;
+
+import com.arjuna.mw.wscf.UserCoordinator;
+import com.arjuna.mw.wscf.UserCoordinatorFactory;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+import com.arjuna.mw.wscf.common.CoordinatorId;
+
+import com.arjuna.mwlabs.wscf.model.as.coordinator.arjunacore.CoordinatorIdImple;
+
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.status.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.InvalidTimeoutException;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.NoPermissionException;
+import com.arjuna.mw.wsas.exceptions.ActiveChildException;
+
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+
+import com.arjuna.mw.wstx.exceptions.InvalidTransactionException;
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.HeuristicHazardException;
+import com.arjuna.mw.wstx.exceptions.HeuristicMixedException;
+import com.arjuna.mw.wstx.exceptions.HeuristicCommitException;
+import com.arjuna.mw.wstx.exceptions.HeuristicRollbackException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+import com.arjuna.mw.wstx.exceptions.TransactionCommittedException;
+
+/**
+ * The user portion of the transaction API.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: UserTwoPhaseTx.java,v 1.2 2005/03/10 15:37:17 nmcl Exp $
+ * @since 1.0.
+ *
+ * @message com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_2 [com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_2] - Transaction has active children.
+ * @message com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_3 [com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_3] - Unknown end result!
+ */
+
+public class UserTwoPhaseTx implements UserTransaction
+{
+
+    public UserTwoPhaseTx ()
+    {
+	try
+	{
+	    /*
+	     * TODO: currently relies on the fact that the default
+	     * coordination protocol is two-phase. Needs to be explicit.
+	     */
+
+	    _theCoordinator = UserCoordinatorFactory.userCoordinator();
+	}
+	catch (SystemException ex)
+	{
+	    // TODO
+
+	    ex.printStackTrace();
+	    
+	    _theCoordinator = null;
+	}
+	catch (ProtocolNotRegisteredException ex)
+	{
+	    ex.printStackTrace();
+	    
+	    _theCoordinator = null;
+	}
+    }
+    
+    /**
+     * Start a new transaction. If there is already a transaction associated
+     * with the thread then it will be interposed (nesting is to come!)
+     *
+     * @exception WrongStateException Thrown if the any currently associated
+     * transaction is in a state that does not allow a new transaction to be
+     * enlisted.
+     * @exception SystemException Thrown in any other situation.
+     */
+
+    public void begin () throws WrongStateException, SystemException
+    {
+	_theCoordinator.start();
+    }
+
+    /**
+     * Commit the transaction. All participants that are still enlisted
+     * with the transaction are committed.
+     *
+     * @exception InvalidTransactionException Thrown if the current transaction is not
+     * known about by the transaction system.
+     * @exception WrongStateException Thrown if the current transaction is not in a
+     * state that allows commit to be called.
+     * @exception HeuristicHazardException Thrown if the participants generated a hazard
+     * heuristic.
+     * @exception HeuristicMixedException Thrown if the participants generated a mixed heuristic.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void commit () throws InvalidTransactionException, WrongStateException, HeuristicHazardException, HeuristicMixedException, NoTransactionException, TransactionRolledBackException, SystemException
+    {
+	try
+	{
+	    Outcome result = _theCoordinator.end(Success.instance());
+	 
+	    parseOutcome(result, true);
+	}
+	catch (ActiveChildException ex)
+	{
+	    throw new InvalidTransactionException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_2"));
+	}
+	catch (TransactionCommittedException ex)
+	{
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new InvalidTransactionException();
+	}
+	catch (WrongStateException ex)
+	{
+	    throw ex;
+	}
+	catch (ProtocolViolationException ex)
+	{
+	    throw new HeuristicHazardException(ex.toString());
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+	catch (NoPermissionException ex)
+	{
+	    throw new InvalidTransactionException(ex.toString());
+	}
+	catch (HeuristicHazardException ex)
+	{
+	    throw ex;
+	}
+    }
+
+    /**
+     * Abort the transaction. All participants that are still enlisted
+     * with the transaction are rolled back.
+     *
+     * @exception InvalidTransactionException Thrown if the current transaction is not
+     * known about by the transaction system.
+     * @exception WrongStateException Thrown if the current transaction is not in a
+     * state that allows cancel to be called.
+     * @exception HeuristicHazardException Thrown if the participants generated a hazard
+     * heuristic.
+     * @exception HeuristicMixedException Thrown if the participants generated a mixed heuristic.
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void rollback () throws InvalidTransactionException, WrongStateException, HeuristicHazardException, HeuristicMixedException, NoTransactionException, TransactionCommittedException, SystemException
+    {
+	try
+	{
+	    Outcome result = _theCoordinator.end(Failure.instance());
+
+	    parseOutcome(result, false);
+	}
+	catch (ActiveChildException ex)
+	{
+	    throw new InvalidTransactionException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_2"));
+	}
+	catch (TransactionRolledBackException ex)
+	{
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new InvalidTransactionException();
+	}
+	catch (WrongStateException ex)
+	{
+	    throw ex;
+	}
+	catch (ProtocolViolationException ex)
+	{
+	    throw new HeuristicHazardException(ex.toString());
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+	catch (NoPermissionException ex)
+	{
+	    throw new InvalidTransactionException(ex.toString());
+	}
+	catch (HeuristicHazardException ex)
+	{
+	    throw ex;
+	}
+    }
+
+    /**
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the status of the current transaction. If there is no
+     * transaction associated with the thread then NO_TRANSACTION
+     * will be returned.
+     */
+
+    public Status status () throws SystemException
+    {
+	Status s = _theCoordinator.status();
+	
+	if (s instanceof Cancelling)
+	    s = RollingBack.instance();
+	else
+	{
+	    if (s instanceof CancelOnly)
+		s = RollbackOnly.instance();
+	    else
+	    {
+		if (s instanceof Confirming)
+		    s = Committing.instance();
+		else
+		{
+		    if (s instanceof Confirmed)
+			s = Committed.instance();
+		    else
+		    {
+			if (s instanceof Cancelled)
+			    s = RolledBack.instance();
+			else
+			{
+			    if (s instanceof NoActivity)
+				s = NoTransaction.instance();
+			}
+		    }
+		}
+	    }
+	}
+
+	return s;
+    }
+
+    /**
+     * What is the name of the current transaction? Use only for
+     * debugging purposes.
+     *
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the invoking thread.
+     *
+     * @return the name of the transaction.
+     */
+
+    public String transactionName () throws NoTransactionException, SystemException
+    {
+	try
+	{
+	    return _theCoordinator.activityName();
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+    }
+    
+    /**
+     * Suspend all transactions associated with this thread. The thread then
+     * becomes associated with no transaction (atom or cohesion).
+     *
+     * @exception SystemException if any error occurs.
+     *
+     * @return a representation of the context associated with the thread,
+     * or null if there is no context.
+     */
+
+    public TransactionHierarchy suspend () throws SystemException
+    {
+	ActivityHierarchy hier = _theCoordinator.suspend();
+	
+	if (hier != null)
+	    return new TransactionHierarchyImple(hier);
+	else
+	    return null;
+    }
+    
+    /**
+     * Associate this thread with the specified context. Any current
+     * associations are lost.
+     *
+     * @param TransactionHierarchy tx The context representation to associate (may be
+     * null).
+     *
+     * @exception InvalidTransactionException Thrown if the context is invalid.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void resume (TransactionHierarchy tx) throws InvalidTransactionException, SystemException
+    {
+	ActivityHierarchy hier;
+
+	if (tx == null)
+	    hier = null;
+	else
+	{
+	    if (tx instanceof TransactionHierarchyImple)
+	    {
+		hier = ((TransactionHierarchyImple) tx).activityHierarchy();
+	    }
+	    else
+		throw new InvalidTransactionException();
+	}
+
+	try
+	{
+	    _theCoordinator.resume(hier);
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new InvalidTransactionException();
+	}
+    }
+
+    /**
+     * @return a representation of the context currently associated with
+     * the invoking thread, or null if there is none.
+     */
+
+    public TransactionHierarchy currentTransaction () throws SystemException
+    {
+	ActivityHierarchy hier = _theCoordinator.currentActivity();
+	
+	if (hier != null)
+	    return new TransactionHierarchyImple(hier);
+	else
+	    return null;
+    }
+
+    /**
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the current thread.
+     * @exception SystemException Thrown if any other error occurs.
+     *
+     * @return the qualifiers that are currently associated with the
+     * transaction, or null if there are none.
+     */
+
+    public Qualifier[] qualifiers () throws NoTransactionException, SystemException
+    {
+	try
+	{
+	    return _theCoordinator.qualifiers();
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+    }
+
+    /**
+     * Set the state of the transaction such that the only possible outcome is
+     * for it to rollback.
+     *
+     * @exception NoTransactionException Thrown if there is no transaction
+     * associated with the current thread.
+     * @exception WrongStateException Thrown if the state of the transaction is
+     * such that it is not possible to put it into a rollback-only state, e.g.,
+     * it is committing.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setRollbackOnly () throws NoTransactionException, WrongStateException, SystemException
+    {
+	try
+	{
+	    _theCoordinator.setCompletionStatus(FailureOnly.instance());
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+    }
+
+    /**
+     * Get the timeout value currently associated with transactions.
+     *
+     * @exception SystemException Thrown if any error occurs.
+     *
+     * @return the timeout value in seconds, or 0 if no application specified
+     * timeout has been provided.
+     */
+
+    public int getTimeout () throws SystemException
+    {
+	// TODO
+
+	return 0;
+    }
+
+    /**
+     * Set the timeout to be associated with all subsequently created
+     * activities. A default value of 0 is automatically associated with
+     * each thread and this means that no application specified timeout is
+     * set for activities.
+     *
+     * @param int timeout The timeout (in seconds) to associate with all
+     * subsequently created activities. This value must be 0 or greater.
+     *
+     * @exception InvalidTimeoutException Thrown if the timeout value provided
+     * is negative, too large, or if timeouts are simply not supported by
+     * the activity implementation.
+     * @exception SystemException Thrown if any other error occurs.
+     */
+
+    public void setTimeout (int timeout) throws InvalidTimeoutException, SystemException
+    {
+	// TODO
+    }
+
+    /**
+     * @exception NoTransactionException Thrown if there is no activity
+     * associated with the invoking thread.
+     * @exception SystemException Thrown if some other error occurred.
+     *
+     * @return the unique transaction id for the current transaction. This
+     * may or may not be the same as the activity id.
+     *
+     * @message com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_1 [com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_1] - Unknown coordinator identifier type {0}
+     */
+
+    public TxId identifier () throws NoTransactionException, SystemException
+    {
+	try
+	{
+	    CoordinatorId coordId = _theCoordinator.identifier();
+
+	    if (coordId instanceof CoordinatorIdImple)
+		return new TxIdImple((CoordinatorIdImple) coordId);
+	    else
+	    {
+		wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_1",
+					      new Object[]{coordId});
+	    
+		return null;
+	    }
+	}
+	catch (NoActivityException ex)
+	{
+	    throw new NoTransactionException();
+	}
+    }
+    
+    private final void parseOutcome (Outcome out, boolean commit) throws InvalidTransactionException, WrongStateException, HeuristicHazardException, HeuristicMixedException, TransactionRolledBackException, TransactionCommittedException
+    {
+	try
+	{
+	    if ((out.completedStatus().equals(Failure.instance()) ||
+		 out.completedStatus().equals(FailureOnly.instance())) && commit)
+	    {
+		throw new TransactionRolledBackException();
+	    }
+	}
+	catch (SystemException ex)
+	{
+	    throw new HeuristicHazardException();
+	}
+	
+	if (out instanceof CoordinationOutcome)
+	{
+	    int res = ((CoordinationOutcome) out).result();
+
+	    switch (res)
+	    {
+	    case TwoPhaseResult.CANCELLED:
+	    case TwoPhaseResult.HEURISTIC_CANCEL:
+		{
+		    if (commit)
+			throw new TransactionRolledBackException();
+		}
+		break;
+	    case TwoPhaseResult.CONFIRMED:
+	    case TwoPhaseResult.HEURISTIC_CONFIRM:
+		{
+		    if (!commit)
+			throw new TransactionCommittedException();
+		}
+		break;
+	    case TwoPhaseResult.HEURISTIC_MIXED:
+		throw new HeuristicMixedException();
+	    case TwoPhaseResult.HEURISTIC_HAZARD:
+		throw new HeuristicHazardException();
+	    case TwoPhaseResult.FINISH_OK:
+		break;
+	    case TwoPhaseResult.FINISH_ERROR:
+	    default:
+		throw new HeuristicHazardException();
+	    }
+	}
+	else
+	    throw new HeuristicHazardException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wstx.model.as.twophase.UserTwoPhaseTx_3"));
+    }
+    
+    private UserCoordinator _theCoordinator;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/ParticipantAction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/ParticipantAction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/ParticipantAction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,258 @@
+/*
+ * 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: ParticipantAction.java,v 1.3 2004/03/15 13:25:23 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.model.as.twophase.resource;
+
+import com.arjuna.ats.arjuna.state.*;
+
+import com.arjuna.mw.wstx.resource.Participant;
+
+import com.arjuna.mw.wstx.common.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.messages.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.*;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wstx.exceptions.*;
+
+import java.util.Hashtable;
+
+/**
+ * This class represents the two-phase aware participants that are enrolled
+ * with the transaction. It wraps the actual participants that have two-phase
+ * operations on them and translated to/from the low-level WSCF protocol.
+ * 
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ParticipantAction.java,v 1.3 2004/03/15 13:25:23 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ParticipantAction implements com.arjuna.mw.wscf.model.as.coordinator.Participant
+{
+
+    public ParticipantAction (Participant res)
+    {
+	_resource = res;
+    }
+    
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	if (_resource == null)
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+
+	Outcome result = new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+	
+	if ((notification instanceof NestedPrepare) || (notification instanceof TopLevelPrepare))
+	{
+	    result = doPrepare(notification.qualifiers());
+	}
+
+	if ((notification instanceof NestedConfirm) || (notification instanceof TopLevelConfirm))
+	{
+	    result = doCommit(notification.qualifiers());
+	}
+	
+	if ((notification instanceof NestedCancel) || (notification instanceof TopLevelCancel))
+	{
+	    result = doAbort(notification.qualifiers());
+	}
+
+	if ((notification instanceof NestedOnePhaseCommit) || (notification instanceof TopLevelOnePhaseCommit))
+	{
+	    result = doOnePhaseCommit(notification.qualifiers());
+	}
+
+	if (notification instanceof ForgetHeuristic)
+	{
+	    result = doForget(notification.qualifiers());
+	}
+	
+	return result;
+    }
+
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return true;
+    }
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return true;
+    }
+
+    private final Outcome doPrepare (Qualifier[] qualifiers) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	Outcome result = new VoteCancel();
+	
+	try
+	{
+	    com.arjuna.mw.wstx.common.Vote v = _resource.prepare(qualifiers);
+	    
+	    if (v instanceof VoteCommit)
+		return new VoteConfirm();
+	    else
+	    {
+		if (v instanceof com.arjuna.mw.wstx.common.VoteReadOnly)
+		    return new com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.VoteReadOnly();
+	    }
+	}
+	catch (InvalidParticipantException ex)
+	{
+	}
+	catch (HeuristicHazardException ex)
+	{
+	    throw new ProtocolViolationException(ex.toString());
+	}
+	catch (HeuristicMixedException ex)
+	{
+	    throw new ProtocolViolationException(ex.toString());
+	}
+
+	return result;
+    }
+
+    public String identity () throws SystemException
+    {
+	return "ParticipantAction";
+    }
+    
+    private final Outcome doCommit (Qualifier[] qualifiers) throws SystemException, WrongStateException
+    {
+	try
+	{
+	    _resource.commit(qualifiers);
+	    
+	    return new CoordinationOutcome(TwoPhaseResult.CONFIRMED);
+	}
+	catch (InvalidParticipantException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+	}
+	catch (HeuristicHazardException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_HAZARD);
+	}
+	catch (HeuristicMixedException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_MIXED);
+	}
+	catch (HeuristicRollbackException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_CANCEL);
+	}
+    }
+
+    private final Outcome doOnePhaseCommit (Qualifier[] qualifiers) throws SystemException, WrongStateException
+    {
+	try
+	{
+	    _resource.commitOnePhase(qualifiers);
+	    
+	    return new CoordinationOutcome(TwoPhaseResult.CONFIRMED);
+	}
+	catch (InvalidParticipantException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+	}
+	catch (HeuristicHazardException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_HAZARD);
+	}
+	catch (HeuristicMixedException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_MIXED);
+	}
+	catch (HeuristicRollbackException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_CANCEL);
+	}
+    }
+
+    private final Outcome doAbort (Qualifier[] qualifiers) throws WrongStateException, SystemException
+    {
+	try
+	{
+	    _resource.rollback(qualifiers);
+	    
+	    return new CoordinationOutcome(TwoPhaseResult.CANCELLED);
+	}
+	catch (InvalidParticipantException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+	}
+	catch (HeuristicHazardException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_HAZARD);
+	}
+	catch (HeuristicMixedException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_MIXED);
+	}
+	catch (HeuristicCommitException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.HEURISTIC_CANCEL);
+	}
+    }
+
+    private final Outcome doForget (Qualifier[] qualifiers) throws WrongStateException, SystemException
+    {
+	try
+	{
+	    _resource.forget(qualifiers);
+	    
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_OK);
+	}
+	catch (InvalidParticipantException ex)
+	{
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+	}
+    }
+
+    private Participant _resource;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/SynchronizationAction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/SynchronizationAction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/model/as/twophase/resource/SynchronizationAction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SynchronizationAction.java,v 1.3 2004/03/15 13:25:23 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.model.as.twophase.resource;
+
+import com.arjuna.ats.arjuna.state.*;
+
+import com.arjuna.mw.wstx.resource.Synchronization;
+
+import com.arjuna.mw.wstx.common.*;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wscf.model.as.coordinator.Message;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.messages.*;
+import com.arjuna.mw.wscf.model.as.coordinator.twophase.outcomes.*;
+
+import com.arjuna.mw.wscf.model.twophase.common.TwoPhaseResult;
+import com.arjuna.mw.wscf.model.twophase.outcomes.*;
+
+import com.arjuna.mw.wsas.activity.Outcome;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wsas.exceptions.ProtocolViolationException;
+
+import com.arjuna.mw.wstx.exceptions.*;
+
+import java.util.Hashtable;
+
+/**
+ * This class represents the synchronization-phase aware participants that are
+ * enrolled with the transaction. It wraps the actual participants that have
+ * pre- and post- two-phase operations on them and translated to/from the
+ * low-level WSCF protocol.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SynchronizationAction.java,v 1.3 2004/03/15 13:25:23 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SynchronizationAction implements com.arjuna.mw.wscf.model.as.coordinator.Participant
+{
+
+    public SynchronizationAction (Synchronization res)
+    {
+	_resource = res;
+    }
+    
+    public Outcome processMessage (Message notification) throws WrongStateException, ProtocolViolationException, SystemException
+    {
+	if (_resource == null)
+	    return new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+
+	Outcome result = new CoordinationOutcome(TwoPhaseResult.FINISH_ERROR);
+
+	if (notification instanceof BeforeCompletion)
+	{
+	    try
+	    {
+		_resource.beforeCompletion();
+
+		return null;
+	    }
+	    catch (SystemException ex)
+	    {
+		throw ex;
+	    }
+	}
+
+	if (notification instanceof AfterCompletion)
+	{
+	    try
+	    {
+		_resource.afterCompletion(((AfterCompletion) notification).status());
+
+		return null;
+	    }
+	    catch (SystemException ex)
+	    {
+		throw ex;
+	    }
+	}
+
+	return result;
+    }
+
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return true;
+    }
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return false;
+    }
+
+    public String identity () throws SystemException
+    {
+	return "SynchronizationAction";
+    }
+    
+    private Synchronization _resource;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHandleImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHandleImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHandleImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,117 @@
+/*
+ * 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: TransactionHandleImple.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.transaction;
+
+import com.arjuna.mw.wstx.transaction.TransactionHandle;
+
+import com.arjuna.mw.wsas.activity.ActivityHandle;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+/**
+ * TransactionHandle is used as a representation of a single transaction
+ * when it is suspended from a running thread and may be later
+ * resumed. The implementation of the token can be as lightweight
+ * as required by the underlying implementation in order that it
+ * can uniquely represent all activity instances.
+ *
+ * Since this is a client-facing class, it is unlikely that the
+ * application user will typically want to see the entire activity
+ * context in order to simply suspend it from the thread.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionHandleImple.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionHandleImple implements TransactionHandle
+{
+
+    public TransactionHandleImple (ActivityHandle handle)
+    {
+	_handle = handle;
+    }
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     *
+     * Two instances are equal if the refer to the same transaction.
+     */
+
+    public boolean equals (Object obj)
+    {
+	if (obj == null)
+	    return false;
+	else
+	{
+	    if (obj instanceof TransactionHandleImple)
+		return _handle.equals(((TransactionHandleImple) obj)._handle);
+	    else
+		return false;
+	}
+    }
+    
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     */
+
+    public int hashCode ()
+    {
+	return _handle.hashCode();
+    }
+
+    /**
+     * @return whether or not this is a valid handle.
+     */
+
+    public boolean valid ()
+    {
+	return _handle.valid();
+    }
+
+    /**
+     * @return the activity identifier.
+     */
+
+    public String tid ()
+    {
+	return _handle.tid();
+    }
+
+    private ActivityHandle _handle;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHierarchyImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHierarchyImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wstx/transaction/TransactionHierarchyImple.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TransactionHierarchyImple.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wstx.transaction;
+
+import com.arjuna.mw.wstx.transaction.TransactionHierarchy;
+import com.arjuna.mw.wstx.transaction.TransactionHandle;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+/**
+ * This class represents a handle on a stack of transactions.
+ * It should only be used for suspending and resuming the
+ * thread-to-transaction association.
+ *
+ * The transaction at the top of the stack is the current transaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TransactionHierarchyImple.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class TransactionHierarchyImple implements TransactionHierarchy
+{
+
+    public TransactionHierarchyImple (ActivityHierarchy hier)
+    {
+	_hier = hier;
+    }
+    
+    /**
+     * @return the number of transactions associated with this stack.
+     */
+
+    public int size ()
+    {
+	return _hier.size();
+    }
+    
+    /**
+     * @return whether or not this is a valid context. If a single entry in
+     * the context is invalid then we assume the entire context is.
+     */
+
+    public boolean valid ()
+    {
+	return _hier.valid();
+    }
+
+    /**
+     * @param the specific transaction in the stack.
+     * @exception IndexOutOfBoundsException Thrown if the transaction number
+     * is too large or small.
+     * @return the transaction handle.
+     */
+
+    public TransactionHandle transaction (int index) throws IndexOutOfBoundsException
+    {
+	return new TransactionHandleImple(_hier.activity(index));
+    }
+
+    /**
+     * @return the current transaction in the context.
+     */
+
+    public TransactionHandle current ()
+    {
+	return new TransactionHandleImple(_hier.current());
+    }
+
+    /**
+     * Obtain a copy of this context. Although the context may be shared
+     * between different threads, the same instance of the context should
+     * not be.
+     *
+     * @return the context copy.
+     */
+
+    public TransactionHierarchy copy ()
+    {
+	return new TransactionHierarchyImple(_hier.copy());
+    }
+
+    /**
+     * Overrides Object.equals
+     *
+     * Two contexts are equal if both hierarchies are identical.
+     */
+
+    public boolean equals (Object obj)
+    {
+	if (obj == null)
+	    return false;
+	else
+	{
+	    if (obj instanceof TransactionHierarchyImple)
+		return _hier.equals(((TransactionHierarchyImple) obj)._hier);
+	    else
+		return false;
+	}
+    }
+
+    /**
+     * Although users won't typically care what the underlying implementation
+     * of a context is, they will need to do comparisons.
+     * So, although this method is provided by Java.Object we have it here
+     * to ensure that we don't forget to implement it!
+     */
+
+    public int hashCode ()
+    {
+	return _hier.hashCode();
+    }
+
+    public final ActivityHierarchy activityHierarchy ()
+    {
+	return _hier;
+    }
+    
+    private ActivityHierarchy _hier;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Cancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Cancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Cancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+/*
+ * 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: Cancel.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Cancel.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Cancel
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    String participantId = "1234";
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.CANCEL, participantId);
+	    
+	    uba.begin();
+	    
+	    bam.enlistForBusinessAgreementWithParticipantCompletion(p, participantId);
+
+	    uba.cancel();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Close.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Close.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Close.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Close.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Close.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Close
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.CLOSE, "1234");
+	    
+	    uba.begin();
+	    
+	    bam.enlistForBusinessAgreementWithParticipantCompletion(p, null);
+	    
+	    uba.close();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Compensate.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Compensate.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Compensate.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: Compensate.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Compensate.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Compensate
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    com.arjuna.wst.BAParticipantManager bpm = null;
+	    String participantId = "1234";
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.COMPENSATE, participantId);
+	    
+	    uba.begin();
+	    
+	    bpm = bam.enlistForBusinessAgreementWithParticipantCompletion(p, participantId);
+
+	    bpm.completed();
+	    
+	    uba.cancel();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/ConfirmWithComplete.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/ConfirmWithComplete.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/ConfirmWithComplete.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: ConfirmWithComplete.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipantWithComplete;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ConfirmWithComplete.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class ConfirmWithComplete
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    DemoBusinessParticipantWithComplete p = new DemoBusinessParticipantWithComplete(DemoBusinessParticipantWithComplete.COMPLETE, "1234");
+	    
+	    uba.begin();
+	    
+	    bam.enlistForBusinessAgreementWithCoordinatorCompletion(p, "1234");
+
+	    uba.complete();
+	    
+	    uba.cancel();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Exit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Exit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/Exit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Exit.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Exit.java,v 1.3.8.1 2005/11/22 10:36:17 kconner Exp $
+ * @since 1.0.
+ */
+
+public class Exit
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    com.arjuna.wst.BAParticipantManager bpm = null;
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.EXIT, "1234");
+	    
+	    uba.begin();
+	    
+	    bpm = bam.enlistForBusinessAgreementWithParticipantCompletion(p, "1234");
+
+	    bpm.exit();
+	    
+	    uba.close();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCancel.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCancel.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCancel.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: MultiCancel.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+import com.arjuna.mwtests.wst.common.FailureBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: MultiCancel.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ * @since 1.0.
+ */
+
+public class MultiCancel
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.CANCEL, "1234");
+	    FailureBusinessParticipant fp = new FailureBusinessParticipant(FailureBusinessParticipant.FAIL_IN_CANCEL, "5678");
+	    
+	    uba.begin();
+	    
+	    bam.enlistForBusinessAgreementWithParticipantCompletion(p, "1234");
+	    bam.enlistForBusinessAgreementWithParticipantCompletion(fp, "5678");
+	    
+	    uba.close();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiClose.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiClose.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiClose.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: MultiClose.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+import com.arjuna.mwtests.wst.common.FailureBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: MultiClose.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ * @since 1.0.
+ */
+
+public class MultiClose
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.CLOSE, "1234");
+	    FailureBusinessParticipant fp = new FailureBusinessParticipant(FailureBusinessParticipant.FAIL_IN_CLOSE, "5678");
+	    
+	    uba.begin();
+	    
+	    bam.enlistForBusinessAgreementWithParticipantCompletion(p, null);
+	    bam.enlistForBusinessAgreementWithParticipantCompletion(fp, null);
+	    
+	    uba.close();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCompensate.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCompensate.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/ba/MultiCompensate.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,84 @@
+/*
+ * 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: MultiCompensate.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.ba;
+
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mwtests.wst.common.DemoBusinessParticipant;
+import com.arjuna.mwtests.wst.common.FailureBusinessParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: MultiCompensate.java,v 1.3.8.1 2005/11/22 10:36:18 kconner Exp $
+ * @since 1.0.
+ */
+
+public class MultiCompensate
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserBusinessActivity uba = UserBusinessActivity.getUserBusinessActivity();
+	    BusinessActivityManager bam = BusinessActivityManager.getBusinessActivityManager();
+	    com.arjuna.wst.BAParticipantManager bpm1 = null;
+	    com.arjuna.wst.BAParticipantManager bpm2 = null;
+	    DemoBusinessParticipant p = new DemoBusinessParticipant(DemoBusinessParticipant.COMPENSATE, "1234");
+	    FailureBusinessParticipant fp = new FailureBusinessParticipant(FailureBusinessParticipant.FAIL_IN_COMPENSATE, "5678");
+	    
+	    uba.begin();
+	    
+	    bpm1 = bam.enlistForBusinessAgreementWithParticipantCompletion(p, "1234");
+	    bpm2 = bam.enlistForBusinessAgreementWithParticipantCompletion(fp, "5678");
+
+	    bpm1.completed();
+	    bpm2.completed();
+	    
+	    uba.cancel();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInCommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInCommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInCommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,83 @@
+/*
+ * 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: CommitExceptionInCommit.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+import com.arjuna.mwtests.wst.common.FailureParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CommitExceptionInCommit.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class CommitExceptionInCommit
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_COMMIT, FailureParticipant.WRONG_STATE);
+	    DemoDurableParticipant p2 = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p1, null);
+	    tm.enlistForDurableTwoPhase(p2, null);
+	    
+	    ut.commit();
+
+	    passed = false;
+	}
+	catch (com.arjuna.wst.SystemException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInPrepare.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInPrepare.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitExceptionInPrepare.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,87 @@
+/*
+ * 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: CommitExceptionInPrepare.java,v 1.9.8.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+import com.arjuna.mwtests.wst.common.FailureParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CommitExceptionInPrepare.java,v 1.9.8.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class CommitExceptionInPrepare
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.WRONG_STATE);
+	    DemoDurableParticipant p2 = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p1, null);
+	    tm.enlistForDurableTwoPhase(p2, null);
+	    
+	    ut.commit();
+
+	    passed = false;
+	}
+	catch (com.arjuna.wst.SystemException ex)
+	{
+	    passed = true;
+	}
+	catch (com.arjuna.wst.TransactionRolledBackException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitRollbackInPrepare.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitRollbackInPrepare.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/CommitRollbackInPrepare.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,83 @@
+/*
+ * 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: CommitRollbackInPrepare.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+import com.arjuna.mwtests.wst.common.FailureParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CommitRollbackInPrepare.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class CommitRollbackInPrepare
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.NONE);
+	    DemoDurableParticipant p2 = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p1, null);
+	    tm.enlistForDurableTwoPhase(p2, null);
+	    
+	    ut.commit();
+
+	    passed = false;
+	}
+	catch (com.arjuna.wst.TransactionRolledBackException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/MultiParticipants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/MultiParticipants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/MultiParticipants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: MultiParticipants.java,v 1.6.8.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: MultiParticipants.java,v 1.6.8.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class MultiParticipants
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    DemoDurableParticipant p1 = new DemoDurableParticipant();
+	    DemoDurableParticipant p2 = new DemoDurableParticipant();
+	    DemoDurableParticipant p3 = new DemoDurableParticipant();
+	    DemoDurableParticipant p4 = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p1, null);
+	    tm.enlistForDurableTwoPhase(p2, null);
+	    tm.enlistForDurableTwoPhase(p3, null);
+	    tm.enlistForDurableTwoPhase(p4, null);
+	    
+	    ut.commit();
+
+	    passed = p1.passed() && p2.passed() && p3.passed() && p4.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NestedTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NestedTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NestedTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NestedTransaction.java,v 1.3.24.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NestedTransaction.java,v 1.3.24.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class NestedTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	
+	    // nesting not supported, so each is a separate top-level tx.
+
+	    ut.begin();
+	    
+	    ut.begin();
+	    
+	    ut.commit();
+
+	    ut.commit();
+	}
+	catch (com.arjuna.wst.UnknownTransactionException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullCommitTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullCommitTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullCommitTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NullCommitTransaction.java,v 1.3.24.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullCommitTransaction.java,v 1.3.24.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class NullCommitTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	
+	    ut.begin();
+	    
+	    ut.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullRollbackTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullRollbackTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/NullRollbackTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NullRollbackTransaction.java,v 1.3.24.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullRollbackTransaction.java,v 1.3.24.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class NullRollbackTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	
+	    ut.begin();
+	    
+	    ut.rollback();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/PrintTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/PrintTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/PrintTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: PrintTransaction.java,v 1.1.24.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: PrintTransaction.java,v 1.1.24.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class PrintTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	
+	    ut.begin();
+
+	    System.out.println("Started: "+ut);
+	    
+	    ut.commit();
+
+	    System.out.println("\nCurrent: "+ut);
+	    
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ResumeNullTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ResumeNullTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ResumeNullTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,68 @@
+/*
+ * 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: ResumeNullTransaction.java,v 1.2.24.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ResumeNullTransaction.java,v 1.2.24.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class ResumeNullTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    TransactionManager ut = TransactionManager.getTransactionManager();
+	
+	    ut.resume(null);
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/RollbackExceptionInRollback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/RollbackExceptionInRollback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/RollbackExceptionInRollback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: RollbackExceptionInRollback.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+import com.arjuna.mwtests.wst.common.FailureParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: RollbackExceptionInRollback.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class RollbackExceptionInRollback
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    FailureParticipant p1 = new FailureParticipant(FailureParticipant.FAIL_IN_ROLLBACK, FailureParticipant.WRONG_STATE);
+	    DemoDurableParticipant p2 = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p1, null);
+	    tm.enlistForDurableTwoPhase(p2, null);
+	    
+	    ut.rollback();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SingleParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SingleParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SingleParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SingleParticipant.java,v 1.7.8.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SingleParticipant.java,v 1.7.8.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SingleParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    DemoDurableParticipant p = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p, null);
+	    
+	    ut.commit();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendCommitTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendCommitTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendCommitTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: SuspendCommitTransaction.java,v 1.2.24.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.wst.UnknownTransactionException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendCommitTransaction.java,v 1.2.24.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendCommitTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	
+	    ut.begin();
+	    
+	    TxContext ctx = tm.suspend();
+
+	    System.out.println("Suspended: "+ctx);
+	    
+	    ut.commit();
+	}
+	catch (UnknownTransactionException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendNullTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendNullTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendNullTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: SuspendNullTransaction.java,v 1.2.24.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendNullTransaction.java,v 1.2.24.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendNullTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    TransactionManager ut = TransactionManager.getTransactionManager();
+	
+	    TxContext ctx = ut.suspend();
+
+	    System.out.println("Suspended: "+ctx);
+
+	    if (ctx == null)
+		passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeCommitTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeCommitTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeCommitTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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: SuspendResumeCommitTransaction.java,v 1.2.24.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendResumeCommitTransaction.java,v 1.2.24.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendResumeCommitTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	
+	    ut.begin();
+	    
+	    TxContext ctx = tm.suspend();
+
+	    System.out.println("Suspended: "+ctx);
+	    
+	    tm.resume(ctx);
+
+	    System.out.println("\nResumed");
+	    
+	    ut.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeParticipants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeParticipants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeParticipants.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,97 @@
+/*
+ * 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: SuspendResumeParticipants.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendResumeParticipants.java,v 1.6.8.1 2005/11/22 10:36:12 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendResumeParticipants
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    DemoDurableParticipant p1 = new DemoDurableParticipant();
+	    DemoDurableParticipant p2 = new DemoDurableParticipant();
+	    DemoDurableParticipant p3 = new DemoDurableParticipant();
+	    DemoDurableParticipant p4 = new DemoDurableParticipant();
+
+	    System.out.println("Starting first transaction.\n");
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p1, null);
+	    tm.enlistForDurableTwoPhase(p2, null);
+	    tm.enlistForDurableTwoPhase(p3, null);
+	    tm.enlistForDurableTwoPhase(p4, null);
+
+	    TxContext ctx = tm.suspend();
+	    
+	    System.out.println("Suspended: "+ctx);
+
+	    ut.begin();
+	    
+	    System.out.println("\nStarted second transaction.");
+	    
+	    tm.resume(ctx);
+	    
+	    System.out.println("\nCommitting first transaction.\n");
+	    
+	    ut.commit();
+
+	    passed = p1.passed() && p2.passed() && p3.passed() && p4.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeSingleParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeSingleParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendResumeSingleParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,85 @@
+/*
+ * 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: SuspendResumeSingleParticipant.java,v 1.6.8.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendResumeSingleParticipant.java,v 1.6.8.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendResumeSingleParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    DemoDurableParticipant p = new DemoDurableParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p, null);
+
+	    TxContext ctx = tm.suspend();
+	    
+	    System.out.println("Suspended: "+ctx);
+
+	    tm.resume(ctx);
+
+	    System.out.println("\nResumed\n");
+
+	    ut.commit();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SuspendTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,75 @@
+/*
+ * 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: SuspendTransaction.java,v 1.2.24.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SuspendTransaction.java,v 1.2.24.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SuspendTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	
+	    ut.begin();
+	    
+	    TxContext ctx = tm.suspend();
+
+	    System.out.println("Suspended: "+ctx);
+	    
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SynchronizationParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SynchronizationParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/SynchronizationParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SynchronizationParticipant.java,v 1.7.8.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mwtests.wst.common.DemoDurableParticipant;
+import com.arjuna.mwtests.wst.common.DemoVolatileParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SynchronizationParticipant.java,v 1.7.8.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+public class SynchronizationParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	    TransactionManager tm = TransactionManager.getTransactionManager();
+	    DemoDurableParticipant p = new DemoDurableParticipant();
+	    DemoVolatileParticipant pz = new DemoVolatileParticipant();
+	    
+	    ut.begin();
+	    
+	    tm.enlistForDurableTwoPhase(p, null);
+	    tm.enlistForVolatileTwoPhase(pz, null);
+	    
+	    ut.commit();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ThreadedTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ThreadedTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/basic/ThreadedTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,110 @@
+/*
+ * 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: ThreadedTransaction.java,v 1.1.24.1 2005/11/22 10:36:11 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.basic;
+
+import com.arjuna.mw.wst.UserTransaction;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ThreadedTransaction.java,v 1.1.24.1 2005/11/22 10:36:11 kconner Exp $
+ * @since 1.0.
+ */
+
+class ThreadedObject extends Thread
+{
+    
+    public ThreadedObject ()
+    {
+    }
+
+    public void run ()
+    {
+	try
+	{
+	    UserTransaction ut = UserTransaction.getUserTransaction();
+	
+	    ut.begin();
+
+	    System.out.println("Thread "+Thread.currentThread()+" started "+ut);
+
+	    Thread.yield();
+	    
+	    System.out.println("\nThread "+Thread.currentThread()+" committing "+ut);
+	    
+	    ut.commit();
+	    
+	    
+
+	    Thread.yield();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+}
+
+public class ThreadedTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	int size = 10;
+	ThreadedObject objs[] = new ThreadedObject[size];
+	
+	try
+	{
+	    for (int i = 0; i < size; i++)
+		objs[i] = new ThreadedObject();
+	    
+	    for (int j = 0; j < size; j++)
+		objs[j].start();
+	    
+	    for (int k = 0; k < size; k++)
+		objs[k].join();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+/*
+ * 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: DemoBusinessParticipant.java,v 1.5 2004/09/09 08:48:39 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.common;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.wst.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoBusinessParticipant.java,v 1.5 2004/09/09 08:48:39 kconner Exp $
+ * @since 1.0.
+ */
+
+public class DemoBusinessParticipant implements com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    public static final int COMPENSATE = 0;
+    public static final int CANCEL = 1;
+    public static final int CLOSE = 2;
+    public static final int EXIT = 3;
+
+    /*
+     * TODO does EXIT imply a memory leak? How does the participant
+     * get unregistered from the dispatcher if it isn't called during
+     * termination?
+     */
+
+    public DemoBusinessParticipant (int outcome, String id)
+    {
+	_outcome = outcome;
+	_id = id;
+    }
+
+    public final boolean passed ()
+    {
+	/*
+	 * If we get a passed result and our status was EXIT then this
+	 * means that one of our methods was called, which is wrong if
+	 * we exited!
+	 */
+
+	switch (_outcome)
+	{
+	case EXIT:
+	    return !_passed;
+	default:
+	    return _passed;
+	}
+    }
+
+    public void close () throws WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".close for "+this);
+
+	if (_outcome == CLOSE)
+	    _passed = true;
+    }
+
+    public void cancel () throws WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".cancel for "+this);
+
+	if (_outcome == CANCEL)
+	    _passed = true;
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".compensate for "+this);
+
+	if (_outcome == COMPENSATE)
+	    _passed = true;
+    }
+
+    public void forget () throws WrongStateException, SystemException
+    {
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+    public String toString ()
+    {
+	try
+	{
+	    return identifier();
+	}
+	catch (SystemException ex)
+	{
+	    return "Unknown";
+	}
+    }
+    
+    public String identifier () throws SystemException
+    {
+	return _id;
+    }
+
+    /**
+     * @return the status value.
+     */
+
+    public String status () throws SystemException
+    {
+	return "Unknown";
+    }
+    
+    protected boolean _passed = false;
+    protected String  _id = null;
+    protected int     _outcome;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipantWithComplete.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipantWithComplete.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoBusinessParticipantWithComplete.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002, 2003, 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: DemoBusinessParticipantWithComplete.java,v 1.5 2004/09/09 08:48:40 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.common;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.wst.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoBusinessParticipantWithComplete.java,v 1.5 2004/09/09 08:48:40 kconner Exp $
+ * @since 1.0.
+ *
+ * Requires complete to be sent before the transaction terminates.
+ */
+
+public class DemoBusinessParticipantWithComplete extends DemoBusinessParticipant implements com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant
+{
+
+    public static final int COMPLETE = 4;
+
+    public DemoBusinessParticipantWithComplete (int outcome, String id)
+    {
+	super(outcome, id);
+    }
+
+    public void close () throws WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".close for "+this);
+
+	if (!_completed)
+	    throw new SystemException();
+
+	if (_outcome == CLOSE)
+	    _passed = true;
+    }
+
+    public void cancel () throws WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".cancel for "+this);
+
+	if (!_completed)
+	    throw new SystemException();
+
+	if (_outcome == CANCEL)
+	    _passed = true;
+    }
+
+    public void compensate () throws FaultedException, WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".compensate for "+this);
+
+	if (!_completed)
+	    throw new SystemException();
+
+	if (_outcome == COMPENSATE)
+	    _passed = true;
+    }
+
+    public void complete () throws WrongStateException, SystemException
+    {
+	System.out.println(this.getClass().getName()+".complete for "+this);
+
+	if (_outcome == COMPLETE)
+	    _passed = true;
+
+	_completed = true;
+    }
+
+    private boolean _completed = false;
+
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoDurableParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoDurableParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoDurableParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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: DemoDurableParticipant.java,v 1.1.2.1 2004/08/09 12:34:30 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wst.common;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.wst.*;
+
+//import com.arjuna.mw.wst.vote.*;
+
+//import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoDurableParticipant.java,v 1.1.2.1 2004/08/09 12:34:30 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoDurableParticipant implements Durable2PCParticipant
+{
+
+    public DemoDurableParticipant ()
+    {
+	_passed = false;
+    }
+
+    public final boolean passed ()
+    {
+	return _passed;
+    }
+    
+    public Vote prepare () throws WrongStateException, SystemException
+    {
+	System.out.println("DemoDurableParticipant.prepare for "+this);
+	
+	return new Prepared();
+    }
+
+    public void commit () throws WrongStateException, SystemException
+    {
+	System.out.println("DemoDurableParticipant.commit for "+this);
+
+	_passed = true;
+    }
+
+    public void rollback () throws WrongStateException, SystemException
+    {
+	System.out.println("DemoDurableParticipant.rollback for "+this);
+
+	_passed = false;
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+    public String toString ()
+    {
+	return identifier();
+    }
+    
+    public String identifier ()
+    {
+	return _id.stringForm();
+    }
+    
+    private boolean _passed;
+    private Uid     _id = new Uid();
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoVolatileParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoVolatileParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/DemoVolatileParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+/*
+ * 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: DemoVolatileParticipant.java,v 1.1.2.1 2004/08/09 12:34:30 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wst.common;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.wst.*;
+
+//import com.arjuna.mw.wst.vote.*;
+
+//import com.arjuna.mw.wst.exceptions.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoVolatileParticipant.java,v 1.1.2.1 2004/08/09 12:34:30 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoVolatileParticipant implements Volatile2PCParticipant
+{
+
+    public DemoVolatileParticipant ()
+    {
+	_passed = false;
+    }
+
+    public final boolean passed ()
+    {
+	return _passed;
+    }
+    
+    public Vote prepare () throws WrongStateException, SystemException
+    {
+	System.out.println("DemoVolatileParticipant.prepare for "+this);
+	
+	return new Prepared();
+    }
+
+    public void commit () throws WrongStateException, SystemException
+    {
+	System.out.println("DemoVolatileParticipant.commit for "+this);
+
+	_passed = true;
+    }
+
+    public void rollback () throws WrongStateException, SystemException
+    {
+	System.out.println("DemoVolatileParticipant.rollback for "+this);
+
+	_passed = false;
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+    public String toString ()
+    {
+	return identifier();
+    }
+    
+    public String identifier ()
+    {
+	return _id.stringForm();
+    }
+    
+    private boolean _passed;
+    private Uid     _id = new Uid();
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureBusinessParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureBusinessParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureBusinessParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,132 @@
+/*
+ * 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: FailureBusinessParticipant.java,v 1.4 2004/09/09 08:48:39 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.common;
+
+import com.arjuna.ats.arjuna.common.Uid;
+
+import com.arjuna.wst.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: FailureBusinessParticipant.java,v 1.4 2004/09/09 08:48:39 kconner Exp $
+ * @since 1.0.
+ */
+
+public class FailureBusinessParticipant implements com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant
+{
+
+    public static final int FAIL_IN_CLOSE = 0;
+    public static final int FAIL_IN_CANCEL = 1;
+    public static final int FAIL_IN_COMPENSATE = 2;
+
+    public FailureBusinessParticipant (int failurePoint, String id)
+    {
+	_failurePoint = failurePoint;
+	_id = id;
+    }
+
+    public final boolean passed ()
+    {
+	return _passed;
+    }
+
+    public void close () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureBusinessParticipant.close for "+this);
+
+	if (_failurePoint == FAIL_IN_CLOSE)
+	    throw new WrongStateException();
+	
+	_passed = true;
+    }
+
+    public void cancel () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureBusinessParticipant.cancel for "+this);
+
+	if (_failurePoint == FAIL_IN_CANCEL)
+	    throw new WrongStateException();
+	
+	_passed = true;
+    }
+
+    public void compensate () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureBusinessParticipant.compensate for "+this);
+
+	if (_failurePoint == FAIL_IN_COMPENSATE)
+	    throw new WrongStateException();
+	
+	_passed = true;
+    }
+
+    public void forget () throws WrongStateException, SystemException
+    {
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+    public String status () throws SystemException
+    {
+	return "Unknown";
+    }
+
+    public String toString ()
+    {
+	try
+	{
+	    return identifier();
+	}
+	catch (SystemException ex)
+	{
+	    return "Unknown";
+
+	}
+    }
+    
+    public String identifier () throws SystemException
+    {
+	return _id;
+    }
+    
+    private boolean _passed = false;
+    private String  _id = null;
+    private int     _failurePoint;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wst/common/FailureParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,138 @@
+/*
+ * 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: FailureParticipant.java,v 1.5 2004/09/09 08:48:40 kconner Exp $
+ */
+
+package com.arjuna.mwtests.wst.common;
+
+import com.arjuna.wst.*;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: FailureParticipant.java,v 1.5 2004/09/09 08:48:40 kconner Exp $
+ * @since 1.0.
+ */
+
+public class FailureParticipant implements Durable2PCParticipant
+{
+
+    public static final int FAIL_IN_PREPARE = 0;
+    public static final int FAIL_IN_ROLLBACK = 1;
+    public static final int FAIL_IN_COMMIT = 2;
+    public static final int FAIL_IN_ONE_PHASE = 3;
+    
+    public static final int WRONG_STATE = 20;
+    public static final int SYSTEM = 21;
+    public static final int NONE = 22;
+    
+    public FailureParticipant (int failurePoint, int failureType)
+    {
+	_failurePoint = failurePoint;
+	_failureType = failureType;
+	_passed = false;
+    }
+
+    public final boolean passed ()
+    {
+	return _passed;
+    }
+    
+    public Vote prepare () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureParticipant.prepare");
+	
+	if (_failurePoint == FAIL_IN_PREPARE)
+	{
+	    generateException();
+	    
+	    return new Aborted();
+	}
+	else
+	    return new Prepared();
+    }
+
+    public void commit () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureParticipant.commit");
+
+	if (_failurePoint == FAIL_IN_COMMIT)
+	    generateException();
+
+	if (_failurePoint == FAIL_IN_PREPARE)
+	    _passed = false;
+    }
+
+    public void rollback () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureParticipant.rollback");
+	
+	if (_failurePoint == FAIL_IN_ROLLBACK)
+	    generateException();
+	
+	if (_failurePoint == FAIL_IN_PREPARE)
+	    _passed = true;
+    }
+
+    public void commitOnePhase () throws WrongStateException, SystemException
+    {
+	System.out.println("FailureParticipant.commitOnePhase");
+
+	if (_failurePoint == FAIL_IN_ONE_PHASE)
+	    generateException();
+	
+	_passed = true;
+    }
+
+    public void unknown () throws SystemException
+    {
+    }
+
+    public void error () throws SystemException
+    {
+    }
+
+    private void generateException () throws WrongStateException, SystemException
+    {
+	switch (_failureType)
+	{
+	case WRONG_STATE:
+	    throw new WrongStateException();
+	case SYSTEM:
+	    throw new SystemException();
+	default:
+	    break;
+	}
+    }
+    
+    private int     _failurePoint;
+    private int     _failureType;
+    private boolean _passed;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullCommitTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullCommitTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullCommitTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NullCommitTransaction.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mw.wstx.UserTransaction;
+import com.arjuna.mw.wstx.UserTransactionFactory;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullCommitTransaction.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullCommitTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	
+	    ut.begin();
+	    
+	    ut.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedCommit.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedCommit.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedCommit.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NullNestedCommit.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mw.wstx.UserTransaction;
+import com.arjuna.mw.wstx.UserTransactionFactory;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullNestedCommit.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullNestedCommit
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	
+	    ut.begin();
+	    
+	    ut.begin();
+	    
+	    ut.commit();
+
+	    ut.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedRollback.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedRollback.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullNestedRollback.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NullNestedRollback.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mw.wstx.UserTransaction;
+import com.arjuna.mw.wstx.UserTransactionFactory;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullNestedRollback.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullNestedRollback
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	
+	    ut.begin();
+	    
+	    ut.begin();
+	    
+	    ut.rollback();
+
+	    ut.commit();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackOnly.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackOnly.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackOnly.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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: NullRollbackOnly.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mw.wstx.UserTransaction;
+import com.arjuna.mw.wstx.UserTransactionFactory;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullRollbackOnly.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullRollbackOnly
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	
+	    ut.begin();
+	    
+	    ut.setRollbackOnly();
+	    
+	    ut.commit();
+	}
+	catch (TransactionRolledBackException ex)
+	{
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackTransaction.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackTransaction.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/NullRollbackTransaction.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: NullRollbackTransaction.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mw.wstx.UserTransaction;
+import com.arjuna.mw.wstx.UserTransactionFactory;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: NullRollbackTransaction.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class NullRollbackTransaction
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	
+	    ut.begin();
+	    
+	    ut.rollback();
+
+	    passed = true;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SingleParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SingleParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SingleParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SingleParticipant.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mwtests.wstx.common.DemoParticipant;
+
+import com.arjuna.mw.wstx.*;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SingleParticipant.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SingleParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	    TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    DemoParticipant p = new DemoParticipant(ut.identifier());
+	    
+	    ut.begin();
+	    
+	    tm.enlist(p);
+	    
+	    ut.commit();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SynchronizationParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SynchronizationParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/basic/SynchronizationParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+/*
+ * 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: SynchronizationParticipant.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.basic;
+
+import com.arjuna.mwtests.wstx.common.*;
+
+import com.arjuna.mw.wstx.*;
+
+import com.arjuna.mw.wstx.exceptions.NoTransactionException;
+import com.arjuna.mw.wstx.exceptions.TransactionRolledBackException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: SynchronizationParticipant.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class SynchronizationParticipant
+{
+
+    public static void main (String[] args)
+    {
+	boolean passed = false;
+	
+	try
+	{
+	    UserTransaction ut = UserTransactionFactory.userTransaction();
+	    TransactionManager tm = TransactionManagerFactory.transactionManager();
+	    DemoParticipant p = new DemoParticipant(ut.identifier());
+	    DemoSynchronization s = new DemoSynchronization(ut.identifier());
+	    
+	    ut.begin();
+	    
+	    tm.enlist(p);
+	    tm.addSynchronization(s);
+	    
+	    ut.commit();
+
+	    passed = p.passed();
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+	
+	if (passed)
+	    System.out.println("\nPassed.");
+	else
+	    System.out.println("\nFailed.");
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoParticipant.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoParticipant.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoParticipant.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,257 @@
+/*
+ * 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: DemoParticipant.java,v 1.4 2004/03/15 13:25:26 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.common;
+
+import com.arjuna.mw.wstx.resource.Participant;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wstx.common.*;
+
+import com.arjuna.mw.wstx.status.*;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.status.*;
+
+import com.arjuna.mw.wscf.model.twophase.status.*;
+
+import com.arjuna.ats.arjuna.state.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+
+import com.arjuna.mw.wstx.exceptions.HeuristicHazardException;
+import com.arjuna.mw.wstx.exceptions.HeuristicMixedException;
+import com.arjuna.mw.wstx.exceptions.HeuristicCommitException;
+import com.arjuna.mw.wstx.exceptions.HeuristicRollbackException;
+import com.arjuna.mw.wstx.exceptions.InvalidParticipantException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoParticipant.java,v 1.4 2004/03/15 13:25:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoParticipant implements Participant
+{
+
+    public DemoParticipant (TxId id)
+    {
+	_status = Active.instance();
+	_passed = false;
+	_id = id;
+    }
+
+    public final boolean passed ()
+    {
+	return _passed;
+    }
+    
+    /**
+     * Prepare the participant. This is to allow
+     * an implementation to put a manager/factory entity in the loop
+     * to (possibly) improve performance, for example. So, the entity
+     * that implements this interface may be wrapping multiple
+     * implementation objects.
+     *
+     * @param Qualifier[] qualifiers Any additional information.
+     * @exception InvalidInferiorException Thrown if the inferior identity is invalid
+     *            (e.g., refers to an unknown inferior.)
+     * @exception WrongStateException Thrown if the state of the inferior is such that
+     *            it cannot prepare.
+     * @exception HeuristicHazardException Thrown if upon preparing, the inferior finds that
+     *            some of its enlisted inferiors have return statuses which
+     *            mean it cannot determine what the result of issuing prepare
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the inferior finds that
+     *            some of its enlisted inferiors have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception SystemException Thrown if some other error occurred.
+     * @return the vote.
+     */
+    
+    public Vote prepare (Qualifier[] qualifiers) throws SystemException, InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException
+    {
+	System.out.println("DemoParticipant.prepare ( "+_id+" )");
+
+	if (_status.equals(Active.instance()))
+	{
+	    _status = Prepared.instance();
+	    
+	    return new VoteCommit();
+	}
+	else
+	    throw new WrongStateException();
+    }
+
+    /**
+     * Confirm the inferior specified.
+     *
+     * @param Qualifier[] qualifiers Any additional information.
+     * @exception InvalidInferiorException Thrown if the inferior identity is invalid
+     *            (e.g., refers to an unknown inferior.)
+     * @exception WrongStateException Thrown if the state of the inferior is such that
+     *            it cannot confirm.
+     * @exception HeuristicHazardException Thrown if upon preparing, the inferior finds that
+     *            some of its enlisted inferiors have return statuses which
+     *            mean it cannot determine what the result of issuing confirm
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the inferior finds that
+     *            some of its enlisted inferiors have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception InferiorCancelledException Thrown if the inferior cancels
+     * rather than confirms.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void commit (Qualifier[] qualifiers) throws SystemException, InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicRollbackException
+    {
+	System.out.println("DemoParticipant.commit ( "+_id+" )");
+
+	if (!_status.equals(Prepared.instance()))
+	    throw new WrongStateException();
+	else
+	{
+	    _status = Committed.instance();
+
+	    _passed = true;
+	}
+    }
+
+    public void commitOnePhase (Qualifier[] qualifiers) throws SystemException, InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicRollbackException
+    {
+	System.out.println("DemoParticipant.commitOnePhase ( "+_id+" )");
+
+	if (_status.equals(Prepared.instance()))
+	    throw new WrongStateException();
+	else
+	{
+	    _status = Committed.instance();
+
+	    _passed = true;
+	}
+    }
+    
+    /**
+     * Cancel the inferior specified.
+     *
+     * @param Qualifier[] qualifiers Any additional information.
+     * @exception InvalidInferiorException Thrown if the inferior identity is invalid
+     *            (e.g., refers to an unknown inferior.)
+     * @exception WrongStateException Thrown if the state of the inferior is such that
+     *            it cannot cancel.
+     * @exception HeuristicHazardException Thrown if upon preparing, the inferior finds that
+     *            some of its enlisted inferiors have return statuses which
+     *            mean it cannot determine what the result of issuing cancel
+     *            to them has been.
+     * @exception HeuristicMixedException Thrown if upon preparing, the inferior finds that
+     *            some of its enlisted inferiors have return statuses which
+     *            mean some of them cancelled and some of them confirmed.
+     * @exception InferiorConfirmedException Thrown if the inferior confirms
+     * rather than cancels.
+     * @exception SystemException Thrown if some other error occurred.
+     */
+
+    public void rollback (Qualifier[] qualifiers) throws SystemException, InvalidParticipantException, WrongStateException, HeuristicHazardException, HeuristicMixedException, HeuristicCommitException
+    {
+	System.out.println("DemoParticipant.rollback ( "+_id+" )");
+
+	if (!_status.equals(Prepared.instance()) || !_status.equals(Active.instance()))
+	{
+	    throw new WrongStateException();
+	}
+	else
+	    _status = RolledBack.instance();
+    }
+
+    /**
+     * Inform the specified inferior that it has generated a contradiction.
+     *
+     * @param Qualifier[] qualifiers Any additional qualifiers that may affect
+     *                    the operation.
+     * @exception InvalidInferiorException Thrown if the inferior identity is invalid.
+     * @exception WrongStateException Thrown if the inferior is in an invalid state.
+     * @exception SystemException Thrown in the event of a general fault.
+     */
+
+    public void forget (Qualifier[] qualifiers) throws SystemException, InvalidParticipantException, WrongStateException
+    {
+	System.out.println("DemoParticipant.forget ( "+_id+" )");
+    }
+
+    /**
+     * @param Qualifier[] qualifiers Any additional qualifiers that may affect
+     *                    the operation.
+     * @exception InvalidInferiorException Thrown if the inferior identity is invalid.
+     * @exception SystemException Thrown in the event of a general fault.
+     * @return the current status of the specified inferior.
+     */
+
+    public Status status (Qualifier[] qualifiers) throws SystemException, InvalidParticipantException
+    {
+	System.out.println("DemoParticipant.status ( "+_id+" )");
+
+	return _status;
+    }
+
+    /**
+     * @return the name of this inferior.
+     */
+
+    public String name ()
+    {
+	return "DemoParticipant";
+    }
+    
+    /**
+     * These methods are required so that the coordinator can serialise and
+     * de-serialise information about the inferior during completion and
+     * recovery.
+     */
+
+    public boolean packState (OutputObjectState os)
+    {
+	return true;
+    }
+
+    public boolean unpackState (InputObjectState os)
+    {
+	return true;
+    }
+
+    private Status  _status;
+    private boolean _passed;
+    private TxId    _id;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoSynchronization.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoSynchronization.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwtests/wstx/common/DemoSynchronization.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: DemoSynchronization.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ */
+
+package com.arjuna.mwtests.wstx.common;
+
+import com.arjuna.mw.wstx.resource.Synchronization;
+
+import com.arjuna.mw.wscf.common.Qualifier;
+
+import com.arjuna.mw.wstx.common.TxId;
+
+import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
+
+import com.arjuna.mw.wsas.status.Status;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: DemoSynchronization.java,v 1.1 2002/11/25 11:00:54 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class DemoSynchronization implements Synchronization
+{
+
+    public DemoSynchronization (TxId id)
+    {
+	_tid = id;
+    }
+    
+    public void beforeCompletion () throws SystemException
+    {
+	System.out.println("DemoSynchronization.beforeCompletion ( "+_tid+" )");
+    }
+    
+    public void afterCompletion (CompletionStatus cs) throws SystemException
+    {
+	System.out.println("DemoSynchronization.afterCompletion ( "+_tid+", "+cs+" )");
+    }
+
+    /**
+     * @return the name of this inferior.
+     */
+
+    public String name ()
+    {
+	return "DemoSynchronization";
+    }
+    
+    private TxId _tid;
+    
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/client-config.wsdd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/client-config.wsdd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/client-config.wsdd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+<!--
+  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.
+-->
+
+<!-- CVS Stamp -->
+<!-- $Id: client-config.wsdd,v 1.2 2004/05/11 09:58:43 nmcl Exp $ -->
+
+<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
+ <globalConfiguration>
+  <parameter name="sendXsiTypes" value="true"/>
+  <parameter name="sendMultiRefs" value="true"/>
+  <parameter name="sendXMLDeclaration" value="true"/>
+  <requestFlow>
+   <handler type="java:com.arjuna.mw.wst.client.AxisHeaderContextProcessor"/>
+  </requestFlow>
+  <responseFlow>
+   <handler type="java:com.arjuna.mw.wst.service.AxisHeaderContextProcessor"/>
+  </responseFlow>  
+ </globalConfiguration>
+ <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
+ <transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
+</deployment>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/deploy.wsdd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/deploy.wsdd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/deploy.wsdd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<!-- CVS Stamp -->
+<!-- $Id: deploy.wsdd,v 1.1 2003/03/24 10:57:03 nmcl Exp $ -->
+
+<deployment name="ArjunaXTS"
+ xmlns="http://xml.apache.org/axis/wsdd/"
+ xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
+ xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
+
+ <handler name="WSTransactionContextProcessor" type="java:com.arjuna.mw.wst.client.AxisHeaderContextProcessor"/>
+
+
+  <service name="ArjunaXTS" provider="java:RPC">
+    <requestFlow>
+      <handler type="WSTransactionContextProcessor"/>
+    </requestFlow>
+    <responseFlow>
+      <handler type="WSTransactionContextProcessor"/>
+    </responseFlow>
+  </service>
+</deployment>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/undeploy.wsdd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/undeploy.wsdd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/undeploy.wsdd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,28 @@
+<!--
+  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.
+-->
+
+<!-- CVS Stamp -->
+<!-- $Id: undeploy.wsdd,v 1.1 2003/03/24 10:57:03 nmcl Exp $ -->
+
+<undeployment name="ArjunaXTS"
+ xmlns="http://xml.apache.org/axis/wsdd/">
+  <service name="ArjunaXTS"/>
+</undeployment>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.UserTransactionImple"/>
+
+		<!-- <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.TransactionManagerImple"/>
+		<!-- 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.UserBusinessActivityImple"/>
+		<!-- 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>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,50 @@
+<!--
+  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.ArjunaContextImple"/>
+	    <property name="com.arjuna.mw.wscf.protocols.sagas.context"
+	    value="com.arjuna.mwlabs.wst.ba.context.ArjunaContextImple"/>
+	    <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.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/AtomicTransaction.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<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://schemas.xmlsoap.org/ws/2004/10/wsat</coordinator-type>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<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://schemas.xmlsoap.org/ws/2004/10/wsba/AtomicOutcome</coordinator-type>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/TwoPhaseTxManager.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/TwoPhaseTxManager.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/TwoPhaseTxManager.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<transaction-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">
+<transaction-protocol>urn:tx-two-phase-commit-manager</transaction-protocol>
+</transaction-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/UserTwoPhaseTx.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/UserTwoPhaseTx.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/UserTwoPhaseTx.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<transaction-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">
+<transaction-protocol>urn:user-tx-two-phase-commit</transaction-protocol>
+</transaction-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/WSCF.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/WSCF.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/WSCF.xsd	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+<!--
+  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.
+-->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xsd:element name="coordinator-name" type="xsd:anyURI">
+		<xsd:annotation>
+			<xsd:documentation>The unique name for this type of coordinator</xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+	<xsd:element name="response">
+		<xsd:annotation>
+			<xsd:documentation>The response that may be returned upon receipt of a specific notification</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element name="name" type="xsd:string" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="notification">
+		<xsd:annotation>
+			<xsd:documentation>The notification message that may be sent</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element name="name" type="xsd:string"/>
+				<xsd:element ref="response" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="coordination-type">
+		<xsd:annotation>
+			<xsd:documentation>The type of the coordination protocol supported</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="coordinator-name"/>
+				<xsd:element ref="notification" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+</xsd:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/tests.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/tests.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/tests.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,38 @@
+<!--
+  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.
+-->
+
+<test-definitions>
+	<test name="com.arjuna.mwtests.wst.basic.NullCommitTransaction">
+		<parameters/>
+	</test>
+	<test name="com.arjuna.mwtests.wst.basic.NullRollbackTransaction">
+		<parameters/>
+	</test>
+	<test name="com.arjuna.mwtests.wst.basic.NestedTransaction">
+		<parameters/>
+	</test>
+	<test name="com.arjuna.mwtests.wst.basic.SingleParticipant">
+		<parameters/>
+	</test>
+	<test name="com.arjuna.mwtests.wst.basic.SynchronizationTransaction">
+		<parameters/>
+	</test>
+</test-definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/wstx_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/wstx_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/wstx_web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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-TX</display-name>
+
+    <description>Arjuna WS-TX</description>
+
+    <listener>
+        <listener-class>com.arjuna.mw.wst.deploy.WSTXInitialisation</listener-class>
+    </listener>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,304 @@
+<!--
+  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.
+-->
+<project name="XTSGF" default="build" basedir=".">
+	<property environment="env"/>
+
+	<!-- Set default properties filename -->
+	<property name="com.arjuna.mw.xts.properties" value="xts.properties"/>
+
+        <property name="current.dir" value="${basedir}"/>
+
+	<!-- class path behaviour -->
+	<property name="build.sysclasspath" value="last"/>
+
+	<!-- Load Build Properties File -->
+	<property file="${com.arjuna.mw.xts.properties}"/>
+
+	<!-- Configure dependencies -->
+    <property name="com.arjuna.jta.dir" location="${env.JTA_HOME}"/>
+    <property name="com.arjuna.buildsystem.dir" location="${com.arjuna.jta.dir}/antbuildsystem"/>
+    <property name="com.arjuna.jta.install" location="${com.arjuna.jta.dir}/install"/>
+
+    <property name="com.arjuna.buildsystem.lib" location="${com.arjuna.buildsystem.dir}/build/lib"/>
+    <property name="com.arjuna.jta.install.lib" location="${com.arjuna.jta.install}/lib"/>
+    <property name="com.arjuna.jta.install.ext" location="${com.arjuna.jta.install.lib}/ext"/>
+    <property name="com.arjuna.xts.ext" location="ext"/>
+
+    <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"/>
+    <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"/>
+
+	<!-- Set internal property defaults -->
+
+	<property name="com.arjuna.mwlabs.xts.jar.dest" location="lib"/>
+	<property name="com.arjuna.mwlabs.xts.htdocs.dest" location="htdocs"/>
+
+	<property name="com.arjuna.mwlabs.coordinator.dir" location="coordinator"/>
+	<property name="com.hp.mwlabs.classpathbuilderfilename"
+		  location="buildsystem.classpath"/>
+
+    <property name="com.arjuna.xts-demo.dir" value="demo"/>
+
+	<path id="build.classpath">
+		<fileset dir="${com.arjuna.jta.install.lib}" includes="${com.arjuna.jta.install.lib.jars}"/>
+		<fileset dir="${com.arjuna.jta.install.ext}" includes="${com.arjuna.jta.install.ext.jars}"/>
+		<fileset dir="${com.arjuna.xts.ext}" includes="${com.arjuna.xts.ext.jars}"/>
+	</path>
+	<property name="build.classpath" refid="build.classpath"/>
+
+    <path id="com.arjuna.buildsystem.classpath">
+        <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
+    </path>
+    <property name="com.arjuna.buildsystem.classpath" refid="com.arjuna.buildsystem.classpath"/>
+
+	<!-- Define classpath builder task and add this JAR to the classpath -->
+	<taskdef name="classpath-builder" classname="com.hp.mw.buildsystem.ant.ClasspathBuilder" classpathref="com.arjuna.buildsystem.classpath"/>
+
+	<!-- Initialisation -->
+	<target name="com.arjuna.mwlabs.xts.init">
+		<!-- Define default build properties -->
+		<tstamp>
+		<format property="com.arjuna.mw.date" pattern="yyyy/MMM/dd HH:mm"/>
+	  	</tstamp>
+
+		<condition property="JDK_VERSION_OK">
+			<or>
+				<equals arg1="${java.specification.version}" arg2="1.5"/>
+			</or>
+		</condition>
+
+        <!-- jaxws-api pre-req is not available in a jdk1.4 flavor -->
+        <fail unless="JDK_VERSION_OK">
+			JBossTS XTS currently requires jdk1.5 to build.
+		</fail>
+
+		<condition property="JTA_DIR_OK">
+		  <and>
+		    <not>
+		      <equals arg1="${env.JTA_HOME}" arg2=""/>
+		    </not>
+		    <available file="${env.JTA_HOME}" type="dir"/>
+		  </and>
+		</condition>
+
+		<fail unless="JTA_DIR_OK">
+		  Please set JTA_DIR to point to a valid JBossTS svn tree"
+		</fail>
+
+		<property name="com.arjuna.mw.installationdirectory" location="xts-install"/>
+		<property name="com.arjuna.mw.sourceid" value="unknown"/>
+		<property name="com.arjuna.mw.version" value="unknown"/>
+
+		<property name="com.arjuna.mw.builder" value="JBoss Inc. [${user.name}] (${os.name} ${os.version})"/>
+		<property name="com.arjuna.mw.notes" value=""/>
+
+		<echo message="Source ID = ${com.arjuna.mw.sourceid}"/>
+		<echo message="Version   = ${com.arjuna.mw.version}"/>
+		<echo message="Builder   = ${com.arjuna.mw.builder}"/>
+		<echo message="Date      = ${com.arjuna.mw.date}"/>
+		<echo message="Notes     = ${com.arjuna.mw.notes}"/>
+
+		<!-- Installation directory -->
+		<property name="com.arjuna.mwlabs.installationdirectory"
+		    location="${com.arjuna.mw.installationdirectory}"/>
+
+		<!-- Compile with debugging? -->
+		<condition property="com.arjuna.mwlabs.debug" value="no">
+			<equals arg1="${com.arjuna.mw.debug}" arg2="no"/>
+		</condition>
+		<property name="com.arjuna.mwlabs.debug" value="yes"/>
+
+		<!-- Compile with deprecation? -->
+		<condition property="com.arjuna.mwlabs.deprecation" value="yes">
+			<equals arg1="${com.arjuna.mw.deprecation}" arg2="yes"/>
+		</condition>
+		<property name="com.arjuna.mwlabs.deprecation" value="no"/>
+
+		<property name="com.arjuna.mwlabs.xts.htdocs.list" value="com.arjuna.mw.wst.*, com.arjuna.wsc.*, com.arjuna.wst.*"/>
+
+		<!-- Empty directories -->
+		<mkdir dir="WS-C/dev/lib"/>
+		<mkdir dir="WS-T/dev/lib"/>
+	</target>
+
+	<!-- Project targets - must add all module names to each target -->
+	<target name="build" depends="com.arjuna.mwlabs.xts.init, com.arjuna.mwlabs.xts.wsas.build, com.arjuna.mwlabs.xts.ws-c.build, com.arjuna.mwlabs.xts.wscf.build, com.arjuna.mwlabs.xts.ws-t.build, com.arjuna.mwlabs.xts.wstx.build, htdocs">
+
+	</target>
+
+	<target name="htdocs" depends="com.arjuna.mwlabs.xts.init">
+		<echo message="Building htdocs "/>
+		<mkdir dir="${com.arjuna.mwlabs.xts.htdocs.dest}"/>
+
+		<path id="com.arjuna.mwlabs.xts.htdocs.path">
+			<pathelement path="WS-C/dev/src"/>
+			<pathelement path="WS-T/dev/src"/>
+			<pathelement path="WSTX/classes"/>
+		</path>
+
+		<path id="com.arjuna.mwlabs.xts.lib.classpath">
+			<path refid="build.classpath"/>
+
+			<fileset dir="WS-C/build/dev/lib" includes="*.jar"/>
+			<fileset dir="WSCF/build/lib" includes="*.jar"/>
+			<fileset dir="WS-T/build/dev/lib" includes="*.jar"/>
+			<fileset dir="WSTX/build/lib" includes="*.jar"/>
+		</path>
+
+		<javadoc
+			sourcepathref="com.arjuna.mwlabs.xts.htdocs.path"
+			destdir="${com.arjuna.mwlabs.xts.htdocs.dest}"
+			packagenames="${com.arjuna.mwlabs.xts.htdocs.list}"
+		>
+			<classpath>
+				<path refid="com.arjuna.mwlabs.xts.lib.classpath"/>
+			</classpath>
+		</javadoc>
+	</target>
+
+	<target name="install" depends="build">
+
+		<echo message="Installation directory : ${com.arjuna.mwlabs.installationdirectory}"/>
+
+		<echo message="Installing jar files"/>
+		<mkdir dir="${com.arjuna.mwlabs.installationdirectory}/lib"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/lib">
+			<fileset dir="WSAS/build/lib" includes="*.jar"/>
+			<fileset dir="WS-C/build/dev/lib" includes="*.jar"/>
+			<fileset dir="WSCF/build/lib" includes="*.jar"/>
+			<fileset dir="WS-T/build/dev/lib" includes="*.jar"/>
+			<fileset dir="WSTX/build/lib" includes="*.jar"/>
+		</copy>
+		<mkdir dir="${com.arjuna.mwlabs.installationdirectory}/lib/ext"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/lib/ext">
+			<fileset dir="${com.arjuna.jta.install.lib}" includes="${com.arjuna.jta.install.lib.jars}"/>
+			<fileset dir="${com.arjuna.jta.install.ext}" includes="${com.arjuna.jta.install.ext.jars}"/>
+			<fileset dir="${com.arjuna.xts.ext}" includes="${com.arjuna.xts.ext.jars}"/>
+		</copy>
+
+		<echo message="Installing webapps"/>
+		<mkdir dir="${com.arjuna.mwlabs.installationdirectory}/webapps"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/webapps">
+			<fileset dir="WS-C/build/dev/webapps"/>
+			<fileset dir="WSCF/build/webapps"/>
+			<fileset dir="WS-T/build/dev/webapps"/>
+			<fileset dir="WSTX/build/webapps"/>
+		</copy>
+
+		<echo message="Installing configuration"/>
+		<mkdir dir="${com.arjuna.mwlabs.installationdirectory}/conf"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/conf">
+			<fileset dir="WSCF/config"/>
+			<fileset dir="WSTX/config" includes="*.xml"/>
+		</copy>
+
+		<echo message="Installing htdocs"/>
+		<mkdir dir="${com.arjuna.mwlabs.installationdirectory}/docs/api"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/docs/api">
+			<fileset dir="${com.arjuna.mwlabs.xts.htdocs.dest}"/>
+		</copy>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/docs">
+			<fileset dir="docs" includes="*.pdf"/>
+		</copy>
+
+		<echo message="Installing licences"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/lib/ext">
+			<fileset dir="${basedir}" includes="third_party_licenses.txt"/>
+		</copy>
+
+		<echo message="Installing coordinator"/>
+		<mkdir dir="${com.arjuna.mwlabs.installationdirectory}/coordinator"/>
+		<copy todir="${com.arjuna.mwlabs.installationdirectory}/coordinator">
+			<fileset dir="${com.arjuna.mwlabs.coordinator.dir}"/>
+		</copy>
+        <copy todir="${com.arjuna.mwlabs.installationdirectory}/coordinator/dd">
+            <fileset dir="WS-C/dev/dd" includes="ws-c_web-app.xml"/>
+            <fileset dir="WS-T/dev/dd" includes="ws-t_web-app.xml"/>
+        </copy>
+
+        <echo message="Installing demo"/>
+        <mkdir dir="${com.arjuna.mwlabs.installationdirectory}/demo"/>
+        <!-- overlay the demo app onto the install -->
+        <ant dir="${com.arjuna.xts-demo.dir}" target="distribution"/>
+
+	</target>
+
+	<target name="clean" depends="com.arjuna.mwlabs.xts.init,
+		com.arjuna.mwlabs.xts.wsas.clean,
+		com.arjuna.mwlabs.xts.ws-c.clean,
+		com.arjuna.mwlabs.xts.wscf.clean,
+		com.arjuna.mwlabs.xts.ws-t.clean,
+		com.arjuna.mwlabs.xts.wstx.clean">
+
+		<delete dir="${com.arjuna.mwlabs.xts.htdocs.dest}"/>
+		<delete dir="${com.arjuna.mwlabs.xts.jar.dest}"/>
+		<delete dir="${com.arjuna.mw.installationdirectory}"/>
+
+        <ant dir="${com.arjuna.xts-demo.dir}" target="clean"/>
+
+	</target>
+
+
+	<!-- Module targets -->
+	<target name="com.arjuna.mwlabs.xts.wsas.build">
+		<ant dir="WSAS"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.ws-c.build">
+		<ant dir="WS-C"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.wscf.build">
+		<ant dir="WSCF"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.ws-t.build">
+		<ant dir="WS-T">
+			<property name="ws-c.home" location="WS-C"/>
+		</ant>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.wstx.build">
+		<ant dir="WSTX"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.wsas.clean">
+		<ant dir="WSAS" target="clean"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.ws-c.clean">
+		<ant dir="WS-C" target="clean"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.wscf.clean">
+		<ant dir="WSCF" target="clean"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.ws-t.clean">
+		<ant dir="WS-T" target="clean"/>
+	</target>
+
+	<target name="com.arjuna.mwlabs.xts.wstx.clean">
+		<ant dir="WSTX" target="clean"/>
+	</target>
+
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/coordinator/README.txt
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/coordinator/README.txt	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/coordinator/README.txt	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+#
+To create a stand-alone coordinator:
+
+(1) create a separate installation of your application server to the one you
+will use for your clients/services.
+
+(2) edit the build.xml to point to this installation.
+
+You need to set hostname, port and deploy.dir parameters to those for the
+application server used for the stand-alone coordinator.
+
+(3) run ant with the deploy target that matches your application server
+(deploy-webmethods, deploy-weblogic or deploy-jboss).
+
+(4) when running clients and services, edit the wstx.xml file in their
+deployment to add
+
+	    <property
+	    name="com.arjuna.mw.wst.coordinatorURL"
+	    value="http://@hostname@:@port@/xts/soap/ActivationCoordinator"/>
+
+	    <property
+	    name="com.arjuna.mw.wst.ba.terminatorURL"
+	    value="http://@hostname@:@port@/xts/soap/BusinessActivityTerminatorParticipant"/>
+
+where hostname and port are replaced with the appropriate values.
+
+(5) make sure you start  your coordinator deployment before any clients or
+services that may want to use it.

Added: labs/jbosstm/workspace/adinn/XTSGF/coordinator/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/coordinator/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/coordinator/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,181 @@
+<!--
+  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.             -->
+<!--                                                                        -->
+<!--                      Arjuna-XML Standalone Coordinator                 -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<project name="coordinator" default="webapps" basedir=".">
+
+    <!-- ================================================================== -->
+
+    <!-- The properties to override are the following:                      -->
+    <!--    hostname (defaults to localhost)                                -->
+    <!--    port (defaults to 8080 for jboss)                               -->
+
+    <!--    deploy.dir The deployment directory for the ear                 -->
+    <!--    xts.home The installation directory for AXTS                   -->
+    <!-- ================================================================== -->
+
+    <property name="xts.home" value=".."/>
+    <property name="deploy.dir" value="/usr/local/jboss/server/all/deploy"/>
+    <property name="hostname" value="localhost"/>
+    <property name="port" value="8080"/>
+    <property name="webmethods.urlstub" value="xts-coordinator"/>
+
+    <property name="lib.dir" location="${xts.home}/lib"/>
+    <property name="ext.dir" location="${lib.dir}/ext"/>
+
+    <property name="ext.package" value="jbossjta.jar jbossts-common.jar commons-logging.jar stax-api-1.0.jar wstx-asl-2.0.3.jar"/>
+
+    <!-- ================================================================== -->
+
+    <property name="build.dir"         value="build"/>
+    <property name="dd.dir"            value="dd"/>
+    <property name="webapps.dir"       value="${xts.home}/webapps"/>
+    <property name="xts.coord.dd.dir" value="${xts.home}/coordinator/dd"/>
+    <property name="build.dd.dir"      value="${build.dir}/dd"/>
+    <property name="build.webapps.dir" value="${build.dir}/webapps"/>
+    <property name="build.webmethods.dir" value="${build.dir}/webmethods"/>
+
+    <target name="clean">
+        <delete dir="${build.dir}"/>
+        <delete>
+            <fileset dir="." includes="**/*.bak" defaultexcludes="no"/>
+            <fileset dir="." includes="**/*~"    defaultexcludes="no"/>
+            <fileset dir="." includes="**/#*#"   defaultexcludes="no"/>
+            <fileset dir="." includes="**/.#*"   defaultexcludes="no"/>
+        </delete>
+    </target>
+
+    <target name="init">
+        <mkdir dir="${build.dir}"/>
+        <mkdir dir="${build.dd.dir}"/>
+        <mkdir dir="${build.webapps.dir}"/>
+        <mkdir dir="${build.webapps.dir}/tmp/ws-c"/>
+        <mkdir dir="${build.webapps.dir}/tmp/ws-t"/>
+        <mkdir dir="${build.webmethods.dir}"/>
+    </target>
+
+    <target name="webapps" depends="init">
+        <filter token="hostname" value="${hostname}"/>
+        <filter token="port" value="${port}"/>
+
+        <unjar src="${webapps.dir}/ws-c.war" dest="${build.webapps.dir}/tmp/ws-c"/>
+
+        <copy file="${xts.coord.dd.dir}/ws-c_web-app.xml"
+            tofile="${build.webapps.dir}/tmp/ws-c/WEB-INF/web.xml" filtering="true" overwrite="true"/>
+
+        <jar destfile="${build.webapps.dir}/ws-c.war" basedir="${build.webapps.dir}/tmp/ws-c" manifest="${build.webapps.dir}/tmp/ws-c/META-INF/MANIFEST.MF"/>
+
+        <delete dir="${build.webapps.dir}/tmp/ws-c"/>
+
+        <unjar src="${webapps.dir}/ws-t.war" dest="${build.webapps.dir}/tmp/ws-t"/>
+
+        <copy file="${xts.coord.dd.dir}/ws-t_web-app.xml"
+            tofile="${build.webapps.dir}/tmp/ws-t/WEB-INF/web.xml" filtering="true" overwrite="true"/>
+
+        <jar destfile="${build.webapps.dir}/ws-t.war" basedir="${build.webapps.dir}/tmp/ws-t" manifest="${build.webapps.dir}/tmp/ws-t/META-INF/MANIFEST.MF"/>
+
+        <delete dir="${build.webapps.dir}/tmp/ws-t"/>
+
+        <jar destfile="${build.dir}/config.jar" basedir="${xts.home}/conf"/>
+     </target>
+
+     <target name="webmethods-build" depends="init">
+       <property name="webinf.dir" location="${build.webmethods.dir}/WEB-INF"/>
+       <property name="webinf.lib.dir" location = "${webinf.dir}/lib"/>
+
+       <mkdir dir="${build.webmethods.dir}"/>
+       <mkdir dir="${webinf.dir}"/>
+       <mkdir dir="${webinf.lib.dir}"/>
+
+       <filter token="hostname" value="${hostname}"/>
+       <filter token="port" value="${port}"/>
+       <filter token="urlstub" value="${webmethods.urlstub}"/>
+
+       <copy file="${xts.coord.dd.dir}/webMethods-web-app.xml"
+           tofile="${webinf.dir}/web.xml" filtering="true"/>
+       <copy file="${xts.coord.dd.dir}/glue-config.xml"
+           todir="${webinf.dir}"/>
+       <jar destfile="${build.dir}/config.jar" basedir="config"/>
+
+       <copy todir="${webinf.lib.dir}">
+         <fileset dir="${lib.dir}" includes="*.jar"/>
+         <fileset dir="${ext.dir}" includes="${ext.package}"/>
+         <fileset dir="${build.dir}" includes="config.jar"/>
+       </copy>
+     </target>
+
+     <target name="jboss-ear" depends="webapps">
+        <ear earfile="${build.webapps.dir}/xts-coordinator_jboss.ear" appxml="${dd.dir}/xts-coord_application.xml">
+            <fileset dir="${lib.dir}" includes="*.jar"/>
+            <fileset dir="${ext.dir}" includes="${ext.package}"/>
+            <fileset dir="${build.dir}" includes="config.jar"/>
+            <fileset dir="${webapps.dir}" includes="wscf.war wstx.war"/>
+            <fileset dir="${build.webapps.dir}" includes="ws-c.war ws-t.war"/>
+        </ear>
+    </target>
+
+    <target name="weblogic-ear" depends="webapps">
+        <copy todir="${build.dir}/APP-INF/lib">
+            <fileset dir="${lib.dir}" includes="*.jar"/>
+            <fileset dir="${ext.dir}" includes="${ext.package}"/>
+            <fileset dir="${build.dir}" includes="config.jar"/>
+        </copy>
+        <ear earfile="${build.webapps.dir}/xts-coordinator_weblogic.ear" appxml="${dd.dir}/xts-coord_application.xml">
+            <fileset dir="${webapps.dir}" includes="wscf.war wstx.war"/>
+            <fileset dir="${build.webapps.dir}" includes="ws-c.war ws-t.war"/>
+            <fileset dir="${build.dir}" includes="APP-INF/**"/>
+        </ear>
+    </target>
+
+    <target name="deploy-webmethods" depends="webmethods-build, undeploy-webmethods">
+        <mkdir dir="${deploy.dir}/${webmethods.urlstub}"/>
+        <copy todir="${deploy.dir}/${webmethods.urlstub}">
+          <fileset dir="${build.webmethods.dir}"/>
+        </copy>
+    </target>
+
+    <target name="deploy-weblogic" depends="weblogic-ear, undeploy-weblogic">
+        <copy file="${build.webapps.dir}/xts-coordinator_weblogic.ear" tofile="${deploy.dir}/xts-coordinator.ear"/>
+    </target>
+
+    <target name="deploy-jboss" depends="jboss-ear, undeploy-jboss">
+        <copy file="${build.webapps.dir}/xts-coordinator_jboss.ear" tofile="${deploy.dir}/xts-coordinator.ear"/>
+    </target>
+
+    <target name="undeploy-weblogic">
+        <delete file="${deploy.dir}/xts-coordinator.ear"/>
+    </target>
+
+    <target name="undeploy-jboss">
+        <delete file="${deploy.dir}/xts-coordinator.ear"/>
+    </target>
+
+    <target name="undeploy-webmethods">
+        <delete dir="${deploy.dir}/${webmethods.urlstub}"/>
+    </target>
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/glue-config.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/glue-config.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/glue-config.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,1956 @@
+<!--
+  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.
+-->
+
+<!--
+  Welcome to the Glue configuration file.
+
+  A copy of this file is located in glue.jar with the name "glue-default-config.xml".
+  If Glue runs a web application and no "glue-config.xml" is found in the application's
+  class path or WEB-INF directory, the file "glue-default-config.xml" is used instead.
+
+  If the newapp utility is used to create a skeleton J2EE application structure,
+  this file is copied from <GLUE-HOME>/app-template/WEB-INF/glue-config.xml
+  into the new application's WEB-INF directory.
+
+  The configuration file is comprised of the following sections:
+
+  PRODUCT INFORMATION
+    - the product name and version information
+
+  SERVER SETTINGS
+    - specifies the URL of the application's web server and optional JMS servers
+
+  BASE WEB.XML MAPPINGS
+    - specifies the base web-app mappings that are added to the ones in web.xml
+
+  MAP FILE LIST
+    - if Glue is hosted in an old servlet 2.1 container, this section is used to
+      list all the map files in WEB-INF\maps
+
+  SERVICE DESCRIPTOR LIST
+    - if Glue is hosted in an old servlet 2.1 container, this section is used to
+      list all the service descriptors in WEB-INF\services
+
+  STARTUP COMMANDS
+    - lists static methods to invoke on application startup
+
+  LOGGING
+    - configures logging channels
+    - sets log file
+    - sets the format of logged events
+
+  INSTRUMENTATION
+    - enables/disables instrumentation of web services and/or http messaging
+
+  HOT DEPLOYMENT
+    - enables/disables hot deployment
+    - sets cycle time for monitoring changes
+
+  THREADS
+    - sets the thread pool size
+
+  SOCKETS
+    - sets socket timeout values, pool sizes, buffer sizes, and factories
+
+  SOCKET FACTORIES
+    - lists socket factories
+
+  MESSAGE FACTORIES
+    - lists message factories
+
+  HTTP
+    - sets http buffer sizes
+
+  HTTP PROXIES
+    - sets the host, port and authentication for an http proxy
+
+  SSL
+    - specifies authentication and cipher suites for ssl sockets
+
+  AUTHENTICATION
+    - lists realms
+    - sets default realm
+    - sets the default authentication method
+
+  WS-SECURITY
+    - lists predefined security templates
+
+  XML-SIGNATURES/ENCRYPTION
+    - canonicalization, signature and encryption algorithms
+
+  SESSIONS
+    - sets the session timeout value
+    - sets cycle time for checking sessions
+
+  SOAP HTTP
+    - sets the max retries for soap messages
+
+  SOAP INTERCEPTORS
+    - lists inbound and outbound soap interceptors
+
+  SOAP OPTIMIZATIONS
+    - enables/disables various soap message optimizations
+
+  SOAP OPERATION LOOKUP
+    - lists the factories for soap operation lookup
+
+  SOAP ATTACHMENTS
+    - lists the content id used for soap attachments
+    - sets the attachments buffer size
+
+  WSDL
+    - lists the wsdl bindings to generate
+    - sets the default target namespace
+    - lists the protocols to support
+
+  SERVICES
+    - sets the default messaging style
+    - sets the wrapper class for objects published as web services
+    - sets handlers for initializing a service from a descriptor
+
+  HOLDERS
+    - enable/disable JAX/RPC holders
+
+  SOAP HANDLER FACTORIES
+    - list of factories for creating server-side soap handler chain
+
+  SOAP REFERENCE FACTORIES
+    - list of factories for creating client-side soap reference chain
+
+  REGISTRIES
+    - registry chain for resolving publish/bind requests
+
+  LOAD BALANCER FACTORIES
+    - set up fabric load balancing
+
+  APPLICATION CONTEXT
+    - list of properties to add to application context at startup
+
+  MIME TYPES
+    - list of default mime type mappings
+
+  XPATHS
+    - set default xpath factory
+    - enable/disable xpath caching
+
+  JAXP
+    - set default dom and sax factories
+
+  XML/JAVA MAPPING
+    - enable/disable direct field access
+    - enable/disable property supression
+    - enable/disable java serialization
+    - set namespace prefix
+    - enable/disable type attributes when writing literals
+
+  TYPE FACTORIES
+    - lists type factories
+    - specify the default array type
+
+  XML SCHEMAS
+    - lists all supported xml schemas
+    - sets the default schema
+
+  XML ENCODINGS
+    - sets suggested encodings
+
+  HTTP ENCODINGS
+    - sets assumed encodings
+
+  SOAP ENCODINGS
+    - sets default encodings for soap messages
+
+  JMS ADAPTORS
+    - lists installed jms adapters
+
+  MANAGEMENT CONSOLE
+    - lists console panels
+
+  UDDI
+    - lists default tmodels
+
+  GENERAL FABRIC
+    - allows an application to automatically join fabric
+    
+  FABRIC SECURITY
+    - selects the realm to use as the fabric realm
+    - selects fabric username and password
+    - selects fabric key store and trust store
+
+  FABRIC DISCOVERY
+    - selects locator to use
+    - lists available locators
+
+  FABRIC XML DATABASE
+    - seconds between server syncs
+    - default replication factor
+    - factory for creating data stores
+
+  FABRIC ENDPOINT ACTIVITY
+    - seconds between keep-alive cycles
+    - seconds between check for rule updates
+
+  FABRIC LIVENESS CHECKING
+    - seconds between checking nodes for liveness
+    - seconds after which a dead node should be removed
+    - seconds between checking services for liveness
+    - seconds after which a dead service should be removed
+-->
+
+<config>
+  <!--***************************************************************-->
+  <!--PRODUCT INFORMATION-->
+  <!--***************************************************************-->
+
+  <!--name and version information-->
+  <product>
+    <name>Glue</name>
+    <version>
+      <major>5</major>
+      <minor>0</minor>
+      <patch>1</patch>
+    </version>
+  </product>
+
+
+  <!--***************************************************************-->
+  <!--SERVER SETTINGS-->
+  <!--***************************************************************-->
+
+  <!--web server-->
+  <!--this entry is only used when glue is running in standalone mode-->
+  <!--the runapp -p and -u options may be used to override this default url-->
+  <!--$APPNAME is replaced at runtime by the application name-->
+  <webServer>
+    <url>http://localhost:8004/$APPNAME</url>
+  </webServer>
+
+  <!--jms/soap server (Glue professional only)-->
+  <!--$APPNAME is replaced at runtime by the application name-->
+  <!--
+    <url>jms:///$APPNAME</url>
+    <registryPath>/</registryPath>
+  </jmsSoapServer>
+  -->
+
+
+  <!--***************************************************************-->
+  <!--BASE WEB.XML MAPPINGS-->
+  <!--***************************************************************-->
+
+  <!--when glue is running in standalone mode and web.xml is-->
+  <!--read, any url patterns that are in this base web-app but not-->
+  <!--in the web.xml are automatically added. this feature is currently-->
+  <!--used to automatically add jsp support to user applications-->
+  <base-web-app>
+    <servlet>
+      <servlet-name>glue-jsp</servlet-name>
+      <servlet-class>electric.jsp.JSPServlet</servlet-class>
+      <load-on-startup>3</load-on-startup>
+      <!-- valid logVerbosityLevel settings are FATAL -->
+      <!-- ERROR, WARNING, INFORMATION and DEBUG -->
+      <!--
+      <init-param>
+        <param-name>logVerbosityLevel</param-name>
+        <param-value>DEBUG</param-value>
+      </init-param>
+      -->
+    </servlet>
+
+    <servlet-mapping>
+      <servlet-name>glue-jsp</servlet-name>
+      <url-pattern>*.jsp</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list>
+      <welcome-file>index.htm</welcome-file>
+      <welcome-file>index.html</welcome-file>
+      <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+  </base-web-app>
+
+
+  <!--***************************************************************-->
+  <!--MAP FILES-->
+  <!--***************************************************************-->
+
+  <mapFiles>
+    <!--list of map files to read from WEB-INF\maps-->
+    <!--only needed when Glue is hosted in a 3rd-party non-2.3 servlet engine-->
+    <!--attempts to load the same file twice are benign and ignored-->
+    <!--<path>mymap.map</path>-->
+  </mapFiles>
+
+
+  <!--***************************************************************-->
+  <!--SERVICE DESCRIPTORS-->
+  <!--***************************************************************-->
+
+  <serviceDescriptors>
+    <!--list of descriptors to read from WEB-INF\services-->
+    <!--only needed when Glue is hosted in a 3rd-party non-2.3 servlet engine-->
+    <!--attempts to load the same file twice are benign and ignored-->
+    <!-- <path>system/application.xml</path>
+    <path>system/console.xml</path>
+    <path>system/jndi.xml</path> -->
+  </serviceDescriptors>
+
+
+  <!--***************************************************************-->
+  <!--STARTUP COMMANDS-->
+  <!--***************************************************************-->
+
+  <!--list of static methods to invoke on startup-->
+  <!--a method is located using its qualified name and number of arguments-->
+  <!--if a formal argument is not a primitive or string, an instance is-->
+  <!--created by calling its constructor with the string as an argument-->
+  <!--
+  <command>
+    <invoke>mypackage.MyClass.foo()</invoke>
+    <invoke>mypackage.MyClass.bar( 42, "cats" )</invoke>
+  </command>
+  -->
+
+
+  <!--***************************************************************-->
+  <!--LOGGING-->
+  <!--***************************************************************-->
+
+  <logging>
+    <!-- each logger entry defines an instance of a logger to be used-->
+    <logger>
+      <name>default</name>
+      <constructor>
+        <class>electric.util.log.WriterLogger</class>
+        <args>
+          <!--log date and time?-->
+          <logDateTime>false</logDateTime>
+          <logDateTimeFormat>MM:dd:yy hh:mm:ss</logDateTimeFormat>
+          <!--log name of thread?-->
+          <logThreadName>false</logThreadName>
+          <!--log to file?-->
+          <logToFile>false</logToFile>
+          <!-- change this to a reasonable file name-->
+          <fileName>log/default.log</fileName>
+          <append>true</append>
+        </args>
+      </constructor>
+
+      <!--list of logging channels-->
+      <log enabled="yes">STARTUP</log>
+      <log enabled="yes">ERROR</log>
+      <log enabled="yes">COMMENT</log>
+      <log enabled="yes">WARNING</log>
+      <log enabled="yes">SCHEMA</log>
+      <log enabled="no">SECURITY</log>
+      <log enabled="no">SECURITY_DETAIL</log>
+      <log enabled="no">SECURITY_DEBUG</log>
+      <log enabled="no">CONSOLE_DEBUG</log>
+      <log enabled="no">DEPLOYMENT</log>
+      <log enabled="no">CLASSLOADER</log>
+      <log enabled="no">COMMAND</log>
+      <log enabled="no">EXCEPTION</log>
+      <log enabled="no">HTTP</log>
+      <log enabled="no">JMS</log>
+      <log enabled="no">MAPPING</log>
+      <log enabled="no">SERVLET</log>
+      <log enabled="no">SOAP</log>
+      <log enabled="no">SOURCE</log>
+      <log enabled="no">RESOURCES</log>
+
+      <!--fabric channels-->
+      <log enabled="yes">FAILOVER</log>
+      <log enabled="no">XDB_CLIENT</log>
+      <log enabled="no">XDB_SERVER</log>
+      <log enabled="no">XDB_SYNC</log>
+      <log enabled="no">LOCATOR</log>
+      <log enabled="no">INTERMEDIARY</log>
+      <log enabled="no">SERVICE_MANAGER</log>
+    </logger>
+  </logging>
+
+
+  <!--***************************************************************-->
+  <!--INSTRUMENTATION-->
+  <!--***************************************************************-->
+
+  <instrumentation>
+    <!--gather statistics for individual services?-->
+    <instrumentServices>yes</instrumentServices>
+
+    <!--gather statistics for individual http calls?-->
+    <instrumentHttp>yes</instrumentHttp>
+  </instrumentation>
+
+
+  <!--***************************************************************-->
+  <!--HOT DEPLOYMENT-->
+  <!--***************************************************************-->
+
+  <hotDeployment>
+    <!--enable hot deployment?-->
+    <enabled>no</enabled>
+
+    <!--milliseconds between checks for resource changes-->
+    <syncCycle>5000</syncCycle>
+  </hotDeployment>
+
+
+  <!--***************************************************************-->
+  <!--THREADS-->
+  <!--***************************************************************-->
+
+  <!--maximum number of threads in shared thread pool-->
+  <threadPoolSize>70</threadPoolSize>
+
+
+  <!--***************************************************************-->
+  <!--SOCKETS-->
+  <!--***************************************************************-->
+
+  <sockets>
+    <!--max socket connections kept alive in server-side socket pool-->
+    <maxInboundKeepAlive>50</maxInboundKeepAlive>
+
+    <!--max socket connections kept alive in client-side socket pool-->
+    <maxOutboundKeepAlive>30</maxOutboundKeepAlive>
+
+    <!--keep alive connections by default?-->
+    <keepAlive>yes</keepAlive>
+
+    <!--timeout in milliseconds for a client reading a response, 0 => infinite-->
+    <clientReadTimeout>0</clientReadTimeout>
+
+    <!--timeout in milliseconds for a server reading a request, 0 => infinite-->
+    <serverReadTimeout>15000</serverReadTimeout>
+
+    <!--buffer size in bytes for socket streams-->
+    <bufferSize>8192</bufferSize>
+
+    <!--max queue length for incoming connection requests-->
+    <backlog>200</backlog>
+  </sockets>
+
+
+  <!--***************************************************************-->
+  <!--SOCKET FACTORIES-->
+  <!--***************************************************************-->
+
+  <!--list of socket factories-->
+  <socketFactories>
+    <factory>electric.net.socket.tcp.TCPSocketFactory</factory>
+    <factory>electric.net.socket.ssl.SSLSocketFactory</factory>
+  </socketFactories>
+
+
+  <!--***************************************************************-->
+  <!--SERVLET MESSAGE FACTORIES-->
+  <!--***************************************************************-->
+
+  <!--list of servlet message factories-->
+  <messageFactories>
+    <factory>electric.webserver.messages.tcp.TCPMessageFactory</factory>
+    <factory>electric.webserver.messages.ssl.SSLMessageFactory</factory>
+  </messageFactories>
+
+
+  <!--***************************************************************-->
+  <!--HTTP-->
+  <!--***************************************************************-->
+
+  <http>
+    <!--buffer size in bytes for streaming http responses-->
+    <responseBufferSize>2048</responseBufferSize>
+
+    <!--buffer size in bytes for copying files from docbase to http response-->
+    <copyBufferSize>16384</copyBufferSize>
+
+    <!--the default http authentication method (basic/digest)-->
+    <defaultAuthMethod>basic</defaultAuthMethod>
+  </http>
+
+
+  <!--***************************************************************-->
+  <!--HTTP PROXIES-->
+  <!--***************************************************************-->
+
+  <!--
+  <httpProxy>
+    <host>proxyhost</host>
+    <port>8000</port>
+    <user>username</user>
+    <password>password</password>
+  </httpProxy>
+  -->
+
+
+  <!--***************************************************************-->
+  <!--SSL-->
+  <!--***************************************************************-->
+
+  <ssl>
+    <!--glue server asks clients for ssl certificates? if the client-->
+    <!--does not send a certificate, or if the client cert is not in the-->
+    <!--server's trust store, the request will be rejected.-->
+    <serverNeedsClientAuth>no</serverNeedsClientAuth>
+
+    <!--glue client forced to ssl server mode (with client auth)? this-->
+    <!--setting is useful only with unusual configurations, and should-->
+    <!--not normally be changed.-->
+    <clientNeedsClientAuth>no</clientNeedsClientAuth>
+
+    <!--cipher suites for client sockets-->
+    <clientCipherSuite>SSL_DH_anon_WITH_RC4_128_MD5</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_WITH_DES_CBC_SHA</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA</clientCipherSuite>
+
+    <!--cipher suites for server sockets-->
+    <serverCipherSuite>SSL_DH_anon_WITH_RC4_128_MD5</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_WITH_DES_CBC_SHA</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA</serverCipherSuite>
+  </ssl>
+
+
+  <!--***************************************************************-->
+  <!--AUTHENTICATION-->
+  <!--***************************************************************-->
+
+  <realms>
+    <!--the default realm-->
+    <!--<defaultRealm>acl</defaultRealm>-->
+
+    <!--list of realms, used by security guards to authenticate clients-->
+    <!--
+    <realm>
+      <constructor>
+        <class>electric.security.acl.ACLRealm</class>
+        <args>
+          <name>acl</name>
+          <path>security\acl.xml</path>
+        </args>
+      </constructor>
+    </realm>
+    -->
+
+    <!--
+    <realm>
+      <constructor>
+        <class>electric.security.jaas.JAASRealm</class>
+        <args>
+          <name>jaas</name>
+          <config>security\jaas.config</config>
+        </args>
+      </constructor>
+    </realm>
+    -->
+
+    <realm>
+      <constructor>
+        <class>com.webmethods.fabric.security.realm.FabricRealm</class>
+        <args>
+          <realmName>realm</realmName>
+          <fabricUser>fabric</fabricUser>
+          <!--<fabricPassword>changeit</fabricPassword>-->
+          <fabricRoles>read,write</fabricRoles>
+        </args>
+      </constructor>
+    </realm>
+
+  </realms>
+
+
+  <!--***************************************************************-->
+  <!--WS-SECURITY -->
+  <!--***************************************************************-->
+
+  <!--ws-security depends on the xml-canonicalization, xml-signature-->
+  <!--and xml-encryption specifications. to use these algorithms it-->
+  <!--may be necessary to uncomment the jaxen xpath factory listed-->
+  <!--in the xpath section-->
+  <wsSecurity>
+    <!--template that specifies that outgoing soap requests-->
+    <!--have the entire soap body element signed-->
+    <!--
+    <signatureTemplate>
+      <name>ExampleSignature</name>
+      <reference>soap:Envelope/soap:Body</reference>
+      <keyStore>clientcert</keyStore>
+      <keyStorePassword>changeit</keyStorePassword>
+      <alias>test</alias>
+    </signatureTemplate>
+    -->
+
+    <!--template that specifies encryption of the body-->
+    <!--contents of outgoing soap requests with the given-->
+    <!--user and key-->
+    <!--
+    <encryptionTemplate>
+      <name>ExampleEncryptionTemplate</name>
+      <reference>soap:Envelope/soap:Body/*</reference>
+      <secretKey>
+        <user>crypto</user>
+        <base64Key>kn89W7byFYz4EOXWs0UxnpJ/PVu28hWM</base64Key>
+      </secretKey>
+    </encryptionTemplate>
+    -->
+  </wsSecurity>
+
+
+  <!--***************************************************************-->
+  <!--XML SIGNATURES/ENCRYPTION -->
+  <!--***************************************************************-->
+
+  <xmlCanonicalization>
+    <factory>
+      <id>http://www.w3.org/2001/10/xml-exc-c14n</id>
+      <class>electric.soap.security.signature.xml.canonical.ExclusiveFactory</class>
+    </factory>
+
+    <factory>
+      <id>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</id>
+      <class>electric.soap.security.signature.xml.canonical.CanonicalFactory</class>
+    </factory>
+  </xmlCanonicalization>
+
+  <xmlSignature>
+    <signatureAlgorithm>
+      <id>http://www.w3.org/2000/09/xmldsig#rsa-sha1</id>
+      <class>electric.soap.security.signature.xml.crypto.SHA1withRSA</class>
+    </signatureAlgorithm>
+
+    <signatureAlgorithm>
+      <id>http://www.w3.org/2000/09/xmldsig#hmac-sha1</id>
+      <class>electric.soap.security.signature.xml.crypto.HMACwithSHA1</class>
+    </signatureAlgorithm>
+  </xmlSignature>
+
+  <xmlEncryption>
+    <encryptionAlgorithm>
+      <id>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</id>
+      <class>electric.soap.security.encryption.xml.crypto.TripleDESCBC</class>
+    </encryptionAlgorithm>
+  </xmlEncryption>
+
+
+  <!--***************************************************************-->
+  <!--SESSIONS-->
+  <!--***************************************************************-->
+
+  <sessions>
+    <!--session timeout in seconds-->
+    <timeout>300</timeout>
+
+    <!--milliseconds between checks for session expiration-->
+    <reapCycle>60000</reapCycle>
+  </sessions>
+
+
+  <!--***************************************************************-->
+  <!--SOAP HTTP-->
+  <!--***************************************************************-->
+
+  <soapHttp>
+    <!--max number of retries for soap invocations-->
+    <invokeMaxRetry>2</invokeMaxRetry>
+  </soapHttp>
+
+
+  <!--***************************************************************-->
+  <!--SOAP INTERCEPTORS-->
+  <!--***************************************************************-->
+
+  <soapInterceptors>
+    <!--list of interceptors for outbound soap responses-->
+    <!--<outboundSoapResponseInterceptor>pkg.MyInterceptor</outboundSoapResponseInterceptor>-->
+
+    <!--list of interceptors for outbound soap requests-->
+    <!--<outboundSoapRequestInterceptor>pkg.MyInterceptor</outboundSoapRequestInterceptor>-->
+
+    <!--list of interceptors for inbound soap responses-->
+    <!--<inboundSoapResponseInterceptor>pkg.MyInterceptor</inboundSoapResponseInterceptor>-->
+
+    <!--list of interceptors for inbound soap requests-->
+    <!--<inboundSoapRequestInterceptor>pkg.MyInterceptor</inboundSoapRequestInterceptor>-->
+  </soapInterceptors>
+
+
+  <!--***************************************************************-->
+  <!--SOAP OPTIMIZATIONS-->
+  <!--***************************************************************-->
+
+  <soapOptimizations>
+    <!--omit xsi:type attributes when possible?-->
+    <typeOmission>yes</typeOmission>
+
+    <!--dynamically compress tags? (glue to glue only)-->
+    <tagSubstitution>yes</tagSubstitution>
+
+    <!--omit envelope when there's just a simple body? (glue to glue only)-->
+    <envelopeOmission>yes</envelopeOmission>
+
+    <!--inline hrefs? (glue to glue only)-->
+    <hrefInlining>yes</hrefInlining>
+  </soapOptimizations>
+
+
+  <!--***************************************************************-->
+  <!--SOAP OPERATION LOOKUP-->
+  <!--***************************************************************-->
+
+  <soapOperationLookupFactories>
+    <!--list of operation lookup factories-->
+    <factory>electric.soap.local.handlers.service.rpc.RPCOperationLookupFactory</factory>
+    <factory>electric.soap.local.handlers.service.wrapped.WrappedOperationLookupFactory</factory>
+  </soapOperationLookupFactories>
+
+
+  <!--***************************************************************-->
+  <!--SOAP ATTACHMENTS-->
+  <!--***************************************************************-->
+
+  <soapAttachments>
+    <!--default style, may be overridden in service descriptors-->
+    <defaultStyle>mime</defaultStyle>
+
+    <!--content id of soap message inside of attachments-->
+    <rootContentId>http://www.webmethods.com/rootpart.xml</rootContentId>
+
+    <!--buffer size in bytes for writing soap requests in soap Attachments-->
+    <streamSourceBufferSize>2048</streamSourceBufferSize>
+  </soapAttachments>
+
+
+  <!--***************************************************************-->
+  <!--WSDL-->
+  <!--***************************************************************-->
+
+  <wsdl>
+    <!--list of bindings-->
+    <binding>soap</binding>
+    <!--<binding>getpost</binding>-->
+
+    <!--target namespace prefix-->
+    <targetNamespacePrefix>http://www.webmethods.com/wsdl/</targetNamespacePrefix>
+
+    <!--target namespace (overrides use of target namespace prefix)-->
+    <!--<targetNamespace>http://www.mytarget.com/mynamespace</targetNamespace>-->
+
+    <!--list of get/post protocols-->
+    <getPostProtocol>http</getPostProtocol>
+    <getPostProtocol>https</getPostProtocol>
+
+    <!-- process wsdl faults -->
+    <wsdlFaults>true</wsdlFaults>
+
+    <!-- generate stack traces on faults -->
+    <enableStackTraces>false</enableStackTraces>
+
+    <!-- allow java.lang.Errors to be thrown from services-->
+    <transmitErrors>false</transmitErrors>
+  </wsdl>
+
+
+  <!--***************************************************************-->
+  <!--SERVICES-->
+  <!--***************************************************************-->
+
+  <services>
+    <!--default messaging style (rpc/document)-->
+    <defaultStyle>rpc</defaultStyle>
+
+    <!--wrapper class for objects published as web services-->
+    <wrapper>electric.service.object.ObjectService</wrapper>
+
+    <!--list of handlers for initializing a service from a descriptor-->
+    <initializer>electric.service.descriptor.initializer.Default</initializer>
+    <initializer>electric.service.descriptor.initializer.Security</initializer>
+    <initializer>electric.service.descriptor.initializer.Role</initializer>
+    <initializer>electric.service.descriptor.initializer.ServiceContext</initializer>
+    <initializer>electric.service.descriptor.initializer.Attachments</initializer>
+    <initializer>electric.soap.security.initializer.Security</initializer>
+  </services>
+
+
+  <!--***************************************************************-->
+  <!--HOLDERS-->
+  <!--***************************************************************-->
+
+  <!--use jax/rpc holders?-->
+  <jaxRpcHolders>no</jaxRpcHolders>
+
+
+  <!--***************************************************************-->
+  <!--SOAP HANDLER FACTORIES-->
+  <!--***************************************************************-->
+
+  <soapHandlerFactories>
+    <!--setup handler-->
+    <factory>
+      <name>setup</name>
+      <constructor>
+        <class>electric.soap.handlers.setup.SetupHandlerFactory</class>
+      </constructor>
+      <priority>1</priority>
+    </factory>
+
+    <!--logging-->
+    <factory>
+      <name>logging</name>
+      <constructor>
+        <class>electric.soap.handlers.logging.SOAPLoggingHandlerFactory</class>
+      </constructor>
+      <priority>2</priority>
+    </factory>
+
+    <!--ws-routing-->
+    <factory>
+      <name>ws-routing</name>
+      <constructor>
+        <class>electric.soap.routing.RoutingHandlerFactory</class>
+      </constructor>
+      <priority>3</priority>
+    </factory>
+
+    <!--user-defined interceptors-->
+    <factory>
+      <name>interceptors</name>
+      <constructor>
+        <class>electric.soap.handlers.interceptor.SOAPInterceptorHandlerFactory</class>
+      </constructor>
+      <priority>4</priority>
+    </factory>
+
+    <!--ws-security-->
+    <factory>
+      <name>ws-security</name>
+      <constructor>
+        <class>electric.soap.security.handlers.SecurityHandlerFactory</class>
+      </constructor>
+      <priority>5</priority>
+    </factory>
+
+    <!--objects that implement IService-->
+    <factory>
+      <name>soap-to-service</name>
+      <constructor>
+        <class> electric.soap.local.handlers.service.SOAPToServiceHandlerFactory </class>
+      </constructor>
+      <priority>6</priority>
+    </factory>
+
+    <!--objects that implement ISOAPHandler-->
+    <factory>
+      <name>soap-to-user-handler</name>
+      <constructor>
+        <class> electric.soap.local.handlers.user.SOAPToUserHandlerFactory </class>
+      </constructor>
+      <priority>7</priority>
+    </factory>
+  </soapHandlerFactories>
+
+
+  <!--***************************************************************-->
+  <!--SOAP REFERENCE FACTORIES-->
+  <!--***************************************************************-->
+
+  <soapReferenceFactories>
+    <!--user-defined interceptors-->
+    <factory>
+      <name>interceptors</name>
+      <constructor>
+        <class>electric.soap.references.interceptor.InterceptorSOAPReferenceFactory</class>
+      </constructor>
+      <priority>1</priority>
+    </factory>
+
+    <!--ws-routing-->
+    <factory>
+      <name>ws-routing</name>
+      <constructor>
+        <class>electric.soap.routing.RoutingReferenceFactory</class>
+      </constructor>
+      <priority>2</priority>
+    </factory>
+
+    <!--ws-security-->
+    <factory>
+      <name>ws-security</name>
+      <constructor>
+        <class>electric.soap.security.references.SecuritySOAPReferenceFactory</class>
+      </constructor>
+      <priority>3</priority>
+    </factory>
+
+    <!--logging-->
+    <factory>
+      <name>logging</name>
+      <constructor>
+        <class>electric.soap.references.logging.LoggingSOAPReferenceFactory</class>
+      </constructor>
+      <priority>4</priority>
+    </factory>
+
+    <!--transport: soap to local service loaded by different classloader-->
+    <factory>
+      <name>soap-local</name>
+      <constructor>
+        <class>electric.soap.local.reference.SOAPLocalTransportFactory</class>
+      </constructor>
+      <priority>5</priority>
+    </factory>
+
+    <!--transport: soap over http-->
+    <factory>
+      <name>soap-to-http</name>
+      <constructor>
+        <class>electric.soap.http.reference.SOAPToHTTPFactory</class>
+      </constructor>
+      <priority>6</priority>
+    </factory>
+
+    <!--transport: soap over jms-->
+    <factory>
+      <name>soap-to-jms</name>
+      <constructor>
+        <class>electric.soap.jms.reference.SOAPToJMSFactory</class>
+      </constructor>
+      <priority>6</priority>
+    </factory>
+  </soapReferenceFactories>
+
+
+  <!--***************************************************************-->
+  <!--LOAD BALANCER FACTORIES-->
+  <!--***************************************************************-->
+
+  <loadBalancerFactories>
+    <!-- always succeeds, so anything after this will never be used -->
+    <factory>
+      <constructor>
+        <class>com.webmethods.fabric.services.reference.balance.RoundRobinFactory</class>
+      </constructor>
+    </factory>
+
+    <!-- like round robin, but rebind every cycleTime milliseconds. -->
+    <!-- this is an unsupported class -->
+    <factory>
+      <constructor>
+        <class>com.webmethods.fabric.services.reference.balance.RoundRobinReloadFactory</class>
+        <args>
+          <defaultCycleTime>60000</defaultCycleTime> <!-- 1 minute, in milliseconds -->
+        </args>
+      </constructor>
+    </factory>
+  </loadBalancerFactories>
+
+
+  <!--***************************************************************-->
+  <!--REGISTRIES-->
+  <!--***************************************************************-->
+
+  <registries>
+    <!--local services-->
+    <registry>
+      <name>local</name>
+      <constructor>
+        <class>electric.registry.local.LocalRegistry</class>
+      </constructor>
+      <priority>3</priority>
+    </registry>
+
+    <!--remote soap services-->
+    <registry>
+      <name>soap</name>
+      <constructor>
+        <class>electric.soap.registry.SOAPRegistry</class>
+      </constructor>
+      <priority>4</priority>
+    </registry>
+
+    <!--services hosted in the same vm, but different applications-->
+    <registry>
+      <name>crossapplication</name>
+      <constructor>
+        <class>electric.soap.registry.CrossApplicationRegistry</class>
+      </constructor>
+      <priority>5</priority>
+    </registry>
+  </registries>
+
+
+  <!--***************************************************************-->
+  <!--APPLICATION CONTEXT-->
+  <!--***************************************************************-->
+
+  <!--list of properties to be added into application context-->
+  <applicationContext>
+    <!--
+    <simple>foo</simple>
+      <complex>
+        <x>10</x>
+        <y>20</y>
+      </complex>
+    -->
+  </applicationContext>
+
+
+  <!--***************************************************************-->
+  <!--MIME TYPES-->
+  <!--***************************************************************-->
+
+  <!--list of mime types recognized by web server-->
+  <mimeTypes>
+    <mimeType>
+      <extension/>
+      <type>text/plain</type>
+    </mimeType>
+    <mimeType>
+      <extension>avi</extension>
+      <type>video/x-msvideo</type>
+    </mimeType>
+    <mimeType>
+      <extension>bmp</extension>
+      <type>image/bmp</type>
+    </mimeType>
+    <mimeType>
+      <extension>class</extension>
+      <type>application/java</type>
+    </mimeType>
+    <mimeType>
+      <extension>css</extension>
+      <type>text/css</type>
+    </mimeType>
+    <mimeType>
+      <extension>dll</extension>
+      <type>application/octet-stream</type>
+    </mimeType>
+    <mimeType>
+      <extension>doc</extension>
+      <type>application/msword</type>
+    </mimeType>
+    <mimeType>
+      <extension>exe</extension>
+      <type>application/octet-stream</type>
+    </mimeType>
+    <mimeType>
+      <extension>gif</extension>
+      <type>image/gif</type>
+    </mimeType>
+    <mimeType>
+      <extension>gz</extension>
+      <type>application/x-gzip</type>
+    </mimeType>
+    <mimeType>
+      <extension>htm</extension>
+      <type>text/html</type>
+    </mimeType>
+    <mimeType>
+      <extension>html</extension>
+      <type>text/html</type>
+    </mimeType>
+    <mimeType>
+      <extension>jar</extension>
+      <type>application/java-archive</type>
+    </mimeType>
+    <mimeType>
+      <extension>jpeg</extension>
+      <type>image/jpeg</type>
+    </mimeType>
+    <mimeType>
+      <extension>jpg</extension>
+      <type>image/jpeg</type>
+    </mimeType>
+    <mimeType>
+      <extension>js</extension>
+      <type>text/javascript</type>
+    </mimeType>
+    <mimeType>
+      <extension>mov</extension>
+      <type>video/quicktime</type>
+    </mimeType>
+    <mimeType>
+      <extension>mpg</extension>
+      <type>video/mpeg</type>
+    </mimeType>
+    <mimeType>
+      <extension>pdf</extension>
+      <type>application/pdf</type>
+    </mimeType>
+    <mimeType>
+      <extension>png</extension>
+      <type>image/png</type>
+    </mimeType>
+    <mimeType>
+      <extension>ppt</extension>
+      <type>application/vnd.ms-powerpoint</type>
+    </mimeType>
+    <mimeType>
+      <extension>ps</extension>
+      <type>application/postscript</type>
+    </mimeType>
+    <mimeType>
+      <extension>rtf</extension>
+      <type>application/rtf</type>
+    </mimeType>
+    <mimeType>
+      <extension>so</extension>
+      <type>application/octet-stream</type>
+    </mimeType>
+    <mimeType>
+      <extension>swf</extension>
+      <type>application/x-shockwave-flash</type>
+    </mimeType>
+    <mimeType>
+      <extension>tar</extension>
+      <type>application/x-tar</type>
+    </mimeType>
+    <mimeType>
+      <extension>tif</extension>
+      <type>image/tiff</type>
+    </mimeType>
+    <mimeType>
+      <extension>tiff</extension>
+      <type>image/tiff</type>
+    </mimeType>
+    <mimeType>
+      <extension>txt</extension>
+      <type>text/plain</type>
+    </mimeType>
+    <mimeType>
+      <extension>wav</extension>
+      <type>audio/x-wav</type>
+    </mimeType>
+    <mimeType>
+      <extension>wml</extension>
+      <type>text/vnd.wap.wml</type>
+    </mimeType>
+    <mimeType>
+      <extension>wmlc</extension>
+      <type>application/vnd.wap.wmlc</type>
+    </mimeType>
+    <mimeType>
+      <extension>wmls</extension>
+      <type>application/vnd.wap.wmlscript</type>
+    </mimeType>
+    <mimeType>
+      <extension>wmlsc</extension>
+      <type>application/vnd.wap.wmlscriptc</type>
+    </mimeType>
+    <mimeType>
+      <extension>wsdl</extension>
+      <type>text/xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xht</extension>
+      <type>application/xhtml+xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xhtml</extension>
+      <type>application/xhtml+xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xls</extension>
+      <type>application/vnd.ms-excel</type>
+    </mimeType>
+    <mimeType>
+      <extension>xml</extension>
+      <type>text/xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xsl</extension>
+      <type>text/xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>zip</extension>
+      <type>application/zip</type>
+    </mimeType>
+  </mimeTypes>
+
+
+  <!--***************************************************************-->
+  <!--XPATHS-->
+  <!--***************************************************************-->
+
+  <xpath>
+    <!--factory to use for creating xpaths?-->
+    <factory>electric.xml.xpath.TMEXPathFactory</factory>
+
+    <!-- needed for ws-security, this factory requires that the -->
+    <!-- jaxen implementation jars are available on the classpath -->
+    <factory>electric.xml.jaxen.JaxenXPathFactory</factory>
+
+    <!--cache xpaths by default?-->
+    <cacheByDefault>yes</cacheByDefault>
+  </xpath>
+
+
+  <!--***************************************************************-->
+  <!--JAXP-->
+  <!--***************************************************************-->
+
+  <jaxp>
+    <DOMFactory>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</DOMFactory>
+    <SAXFactory>org.apache.xerces.jaxp.SAXParserFactoryImpl</SAXFactory>
+  </jaxp>
+
+
+  <!--***************************************************************-->
+  <!--XML/JAVA MAPPING-->
+  <!--***************************************************************-->
+
+  <javaMapping>
+    <!--use direct field access?-->
+    <directFieldAccess>yes</directFieldAccess>
+
+    <!--suppress javabean properties if at least one public field?-->
+    <propertySuppression>yes</propertySuppression>
+
+    <!--use java serialization by default?-->
+    <useJavaSerializationByDefault>no</useJavaSerializationByDefault>
+
+    <!--
+    namespace prefixes that use the glue extended form for package mappings.
+    primary means that this is the one that glue uses to produce a namespace for a package.
+    last primary wins.
+    -->
+    <understoodNamespacePrefix primary="true">http://www.webmethods.com/package/</understoodNamespacePrefix>
+    <understoodNamespacePrefix>http://www.themindelectric.com/package/</understoodNamespacePrefix>
+
+    <!--include xsi:type attributes when writing in literal mode?-->
+    <writeTypesForLiteral>yes</writeTypesForLiteral>
+  </javaMapping>
+
+
+  <!--***************************************************************-->
+  <!--TYPE FACTORIES-->
+  <!--***************************************************************-->
+
+  <typeFactories>
+    <!--list of type factories (order is significant)-->
+    <factory>electric.xml.io.mapping.MappingTypeFactory</factory>
+    <factory>electric.xml.io.array.ArrayTypeFactory</factory>
+    <factory>electric.xml.io.elements.ElementTypeFactory</factory>
+    <factory>electric.xml.io.serialize.SerializeTypeFactory</factory>
+    <factory>electric.xml.io.simple.SimpleTypeFactory</factory>
+    <factory>electric.xml.io.complex.ComplexTypeFactory</factory>
+
+    <defaultArrayType>electric.xml.io.array.ArrayType</defaultArrayType>
+  </typeFactories>
+
+
+  <!--***************************************************************-->
+  <!--XML SCHEMAS-->
+  <!--***************************************************************-->
+
+  <schema>
+    <!--list of xsd versions-->
+    <xsd>http://www.w3.org/1999/XMLSchema</xsd>
+    <xsd>http://www.w3.org/2000/10/XMLSchema</xsd>
+    <xsd>http://www.w3.org/2001/XMLSchema</xsd>
+
+    <!--default xsd version to be used during publishing-->
+    <defaultXSD>http://www.w3.org/2001/XMLSchema</defaultXSD>
+    <defaultMinOccurs>1</defaultMinOccurs>
+
+    <!--namespace prefix-->
+    <namespacePrefix>http://www.webmethods.com/</namespacePrefix>
+  </schema>
+
+
+  <!--***************************************************************-->
+  <!--XML ENCODINGS-->
+  <!--***************************************************************-->
+
+  <xmlEncodings>
+    <!--list of encodings to try in order when decyphering an xml document-->
+    <encoding>UTF-16BE</encoding>
+    <encoding>UTF-16LE</encoding>
+    <encoding>cp037</encoding>
+    <encoding>UTF8</encoding>
+  </xmlEncodings>
+
+
+  <!--***************************************************************-->
+  <!--HTTP ENCODINGS-->
+  <!--***************************************************************-->
+
+  <httpEncoding>
+    <!--some protocols declare things bytes, but are used as Strings/char[]s-->
+    <!--internally for other reasons. basic authentication in http is a-->
+    <!--good example of this. this setting is used to set the encoding to-->
+    <!--use for those situations.-->
+    <assumed>UTF8</assumed>
+
+    <!--http requires that certain things be in ascii (the method/version of-->
+    <!--request, and the status of the response. in japan, and other asian-->
+    <!--countries, however, the request-uri of the service or file could contain-->
+    <!--Shift-JIS or KOI-8 characters. since there is no way to represent these-->
+    <!--in ascii, we offer this setting to control this behaviour. the encoding-->
+    <!--specified should be ascii compliant, or you will have problems-->
+    <!--communicating with other http compliant servers and clients-->
+    <protocol>UTF8</protocol>
+  </httpEncoding>
+
+
+  <!--***************************************************************-->
+  <!--SOAP ENCODINGS-->
+  <!--***************************************************************-->
+
+  <soapEncoding>
+    <!--character encoding for soap documents-->
+    <!--<xmlEncoding>UTF-8</xmlEncoding>-->
+
+    <!--use system default encoding for soap documents?-->
+    <useSystemDefault>no</useSystemDefault>
+  </soapEncoding>
+
+
+  <!--***************************************************************-->
+  <!--JMS ADAPTERS-->
+  <!--***************************************************************-->
+
+  <jms>
+    <!--list of built-in jms adaptors-->
+    <adapter>electric.server.jms.tibco.TibcoAdapter</adapter>
+    <adapter>electric.server.jms.swiftmq.SwiftMQAdapter</adapter>
+    <adapter>electric.server.jms.j2ee.J2EEAdapter</adapter>
+    <adapter>electric.server.jms.mqseries.MQSeriesAdapter</adapter>
+    <adapter>electric.server.jms.sonicmq.SonicMQAdapter</adapter>
+    <adapter>electric.server.jms.jbossmq.JBossMQAdapter</adapter>
+  </jms>
+
+
+  <!--***************************************************************-->
+  <!--CONSOLE-->
+  <!--***************************************************************-->
+
+  <console>
+    <!--enable the console by default?-->
+    <enabled>yes</enabled>
+
+    <!--title for console home page-->
+    <title>Glue Management Console</title>
+
+    <product productName='Glue Professional' treeLabel='Glue' detailsPanelURL='console/glue/glue-details.swf' helpFileURL='console/glue/gluePanelHelp.xml' serviceURL='console/system/console' consoleService='electric.console.services.glue.Glue'>
+      <module>
+        <title>Product</title>
+        <detailsPanelURL>console/glue/licensing/licensing-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/licensing/licensingPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.licensing.Licensing</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>System</title>
+        <detailsPanelURL>console/glue/system/systeminfo-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/system/systemPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.system.System</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>HTTP</title>
+        <detailsPanelURL>console/glue/http/connections-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/http/httpPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.connections.Connections</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Services</title>
+        <detailsPanelURL>console/glue/services/services-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/services/servicesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.services.Services</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Servlets</title>
+        <detailsPanelURL>console/glue/servlets/servlet-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/servlets/servletPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.servlets.Servlets</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Threads</title>
+        <detailsPanelURL>console/glue/threads/threads-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/threads/threadsPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.threads.Threads</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Logging</title>
+        <detailsPanelURL>console/glue/logging/logging-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/logging/loggingPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.log.Logging</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+    </product>
+
+    <product productName='Glue Enterprise' treeLabel='Glue' detailsPanelURL='console/glue/glue-details.swf' helpFileURL='console/glue/gluePanelHelp.xml' serviceURL='console/system/console' consoleService='electric.console.services.glue.Glue'>
+      <module>
+         <title>Cluster</title>
+         <detailsPanelURL>console/clusters/cluster/cluster-details.swf</detailsPanelURL>
+         <helpFileURL>console/clusters/cluster/clusterPanelHelp.xml</helpFileURL>
+         <serviceURL>console/system/console</serviceURL>
+         <consoleService>electric.glue.enterprise.console.services.cluster.Cluster</consoleService>
+         <productName>Glue Enterprise</productName>
+      </module>
+
+      <module>
+        <title>Application</title>
+        <detailsPanelURL>console/clusters/application/application-details.swf</detailsPanelURL>
+        <helpFileURL>console/clusters/application/applicationPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.enterprise.console.services.application.Application</consoleService>
+        <productName>Glue Enterprise</productName>
+      </module>
+
+    </product>
+
+    <product productName='Fabric' treeLabel='Fabric' detailsPanelURL='console/fabric/fabric-details.swf' helpFileURL='console/fabric/fabricPanelHelp.xml' serviceURL='console/system/console' consoleService='electric.console.services.fabric.Fabric'>
+
+      <module>
+        <title>Nodes</title>
+        <detailsPanelURL>console/fabric/nodes/nodes-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/nodes/nodesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.nodes.Nodes</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Web Services</title>
+        <detailsPanelURL>console/fabric/services/services-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/services/servicesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.services.Services</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Log</title>
+        <detailsPanelURL>console/fabric/log/log-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/log/logPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.log.Log</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Rules</title>
+        <detailsPanelURL>console/fabric/rules/rules-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/rules/rulesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.rules.Rules</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Security</title>
+        <detailsPanelURL>console/fabric/security/security-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/security/securityPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.security.Security</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Databases</title>
+        <detailsPanelURL>console/fabric/database/database-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/database/databasePanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.database.Database</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Configuration</title>
+        <detailsPanelURL>console/fabric/configuration/configuration-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/configuration/configurationPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.configuration.Configuration</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+    </product>
+
+    <!-- <handler>electric.console.handlers.IConsoleHandler</handler>
+    <handler>electric.console.handlers.DefaultHandler</handler>
+    <handler>electric.console.handlers.LayoutHandler</handler>
+    <handler>electric.console.handlers.ResourceHandler</handler>
+    <handler>electric.console.handlers.ServiceHandler</handler> -->
+    <handler>electric.glue.pro.console.handlers.LoggingHandler</handler>
+    <handler>electric.glue.pro.console.handlers.VitalSignsHandler</handler>
+    <handler>electric.glue.enterprise.console.handlers.AppDeploymentHandler</handler>
+    <handler>electric.glue.enterprise.console.handlers.ClusterHandler</handler>
+    <handler>electric.glue.enterprise.console.handlers.DeployServiceHandler</handler>
+    <handler>com.webmethods.fabric.console.handlers.AddTransformHandler</handler>
+
+    <extension>
+      <name>consoleLoggingService</name>
+      <value>console/system/console</value>
+    </extension>
+
+    <extension>
+      <name>vitalSignsService</name>
+      <value>console/system/console</value>
+    </extension>
+  </console>
+
+
+  <!--***************************************************************-->
+  <!--SQL DATABASE-->
+  <!--***************************************************************-->
+
+  <sql>
+    <!--list of sql databases -->
+    <!--
+    <database>
+      <name>uddi</name>
+      <driver>org.hsqldb.jdbcDriver</driver>
+      <url>jdbc:hsqldb:hsql://localhost:9001</url>
+      <user>sa</user>
+      <password></password>
+      <poolSize>10</poolSize>
+    </database>
+    -->
+  </sql>
+
+
+  <!--***************************************************************-->
+  <!--UDDI-->
+  <!--***************************************************************-->
+
+  <uddi>
+    <!--uddi type taxonomy-->
+    <tModel tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'>
+      <name>uddi-org:types</name>
+      <description xml:lang='en'>UDDI Type Taxonomy</description>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:4CD7E4BC-648B-426D-9936-443EAAC8AE23'>
+      <name>uddi-org:inquiry</name>
+      <description xml:lang='en'>UDDI Inquiry API - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B'>
+      <name>uddi-org:inquiry_v2</name>
+      <description xml:lang='en'>UDDI Inquiry API V2.0 - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:A2F36B65-2D66-4088-ABC7-914D0E05EB9E'>
+      <name>uddi-org:publication_v2</name>
+      <description xml:lang='en'>UDDI Publication API V2.0 - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:64C756D1-3374-4E00-AE83-EE12E38FAE63'>
+      <name>uddi-org:publication</name>
+      <description xml:lang='en'>UDDI Publication API - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:3FB66FB7-5FC3-462F-A351-C140D9BD8304'>
+      <name>uddi-org:taxonomy</name>
+      <description xml:lang='en'>UDDI Taxonomy API</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:1E3E9CBC-F8CE-41AB-8F99-88326BAD324A'>
+      <name>uddi-org:taxonomy_v2</name>
+      <description xml:lang='en'>UDDI validate_values API</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2' checked='true'>
+      <name>ntis-gov-naics:1997</name>
+      <description xml:lang='en'>Business Taxonomy: NAISC (1997 Release)</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384' checked='true'>
+      <name>unspsc-org:3-1</name>
+      <description xml:lang='en'>Product Taxonomy: UNSPSC (Version 3.1)</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:61668105-B6B6-425C-914B-409FB252C36D' checked='true'>
+      <name>uddi-org:iso-ch:3166:1999</name>
+      <description xml:lang='en'>UDDI Geographic Taxonomy</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4'>
+      <name>uddi-org:misc-taxonomy</name>
+      <description xml:lang='en'>Other Taxonomy</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:4064C064-6D14-4F35-8953-9652106476A9' checked='true'>
+      <name>uddi-org:owningBusiness</name>
+      <description xml:lang='en'>A pointer to a businessEntity that owns the categorized data</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03'>
+      <name>uddi-org:relationships</name>
+      <description xml:lang='en'>UDDI businessEntity relationship descriptions</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:327A56F0-3299-4461-BC23-5CD513E95C55' checked='true'>
+      <name>uddi-org:operators</name>
+      <description xml:lang='en'>Identifier system for identifying operators of a registry</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823'>
+      <name>dnb-com:D-U-N-S</name>
+      <description xml:lang='en'>Dun &amp; Bradstreet D-U-N-S(r) Number</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039'>
+      <name>thomasregister-com:supplierID</name>
+      <description xml:lang='en'>Thomas Registry Suppliers</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:93335D49-3EFB-48A0-ACEA-EA102B60DDC6'>
+      <name>uddi-org:smtp</name>
+      <description xml:lang='en'>E-mail based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='transport' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:1A2B00BE-6E2C-42F5-875B-56F32686E0E7'>
+      <name>uddi-org:fax</name>
+      <description xml:lang='en'>Fax based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='protocol' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:5FCF5CD0-629A-4C50-8B16-F94E9CF2A674'>
+      <name>uddi-org:ftp</name>
+      <description xml:lang='en'>File transfer protocol (ftp) based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='transport' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:38E12427-5536-4260-A6F9-B5B530E63A07'>
+      <name>uddi-org:telephone</name>
+      <description xml:lang='en'>Telephone based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:68DE9E80-AD09-469D-8A37-088422BFBC36'>
+      <name>uddi-org:http</name>
+      <description xml:lang='en'>E-mail based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='transport' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:4CEC1CEF-1F68-4B23-8CB7-8BAA763AEB89'>
+      <name>uddi-org:homepage</name>
+      <description xml:lang='en'>HTTP Web Home Page URL</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+    
+    <predefinedKeys>
+      <businessKeys>
+        <business>
+          <name>fabric</name>
+          <businessKey>62188325-6296-3f9e-9a11-f138eb84e52b</businessKey>
+        </business>
+      </businessKeys>  
+      <tModelKeys>
+        <tModel>
+          <name>webmethods-org:signature</name>
+          <tModelKey>89f556a1-f683-3ae0-a09d-4c463b335e2a</tModelKey>
+        </tModel>
+      </tModelKeys> 
+    </predefinedKeys>  
+    
+  </uddi>
+
+
+  <!--***************************************************************-->
+  <!--GENERAL FABRIC-->
+  <!--***************************************************************-->
+
+  <!--If true, execute a Fabric.join() when startup occurs.--> 
+  <!--This allows Glue applications to join the fabric when hosted in a-->
+  <!--third party servlet container as well as allowing existing Glue -->
+  <!--programs to join the fabric without adding Fabric.join().-->
+  <autoJoinFabric>false</autoJoinFabric>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC SECURITY -->
+  <!--***************************************************************-->
+
+  <fabricSecurity>
+    <!--realm entry must match fabric realm configures in the "realms" section-->
+    <fabricRealm>realm</fabricRealm>
+    <!--<fabricUser>fabric</fabricUser>-->
+    <!--<fabricPassword>changeit</fabricPassword>-->
+    <!--<keyStore>FabricKeyStore</keyStore>-->
+    <!--<keyStorePassword>changeit</keyStorePassword>-->
+    <!--<trustStore>FabricTrustStore</trustStore>-->
+  </fabricSecurity>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC DISCOVERY-->
+  <!--***************************************************************-->
+
+  <discovery>
+    <noPath>fabric://failover&amp;monitor</noPath>
+    <useLocator>chain</useLocator>
+    <useSignatures>true</useSignatures>
+
+    <!--This locator creates a local UDDI registry that uses a-->
+    <!--P2P XML database backend. This registry attempts to replicate itself-->
+    <!--until there are at least two copies of the registry in the fabric.-->
+    <locator>
+      <name>xdb</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.xdb.XDBLocator</class>
+        <args>
+          <inquiryURL>/fabric/uddi/inquiry</inquiryURL>
+          <publicationURL>/fabric/uddi/publication</publicationURL>
+          <adminURL>/fabric/uddi/admin</adminURL>
+          <user>guest</user>
+          <password>guest</password>
+          <business>fabric</business>
+          <operator>fabric</operator>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This locator returns a reference to a third party UDDI registry.-->
+    <!--Use this locator if you want the fabric to store information about services-->
+    <!--into a third party UDDI implementation instead of into the Fabric's built-in-->
+    <!--replicating UDDI server.-->
+    <locator>
+      <name>thirdparty</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.uddi.UDDILocator</class>
+        <args>
+          <inquiryURL>http://localhost:8004/uddi/inquiry</inquiryURL>
+          <publicationURL>http://localhost:8005/uddi/publication</publicationURL>
+          <user>santa</user>
+          <password>christmas</password>
+          <business>fabric</business>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This locator sends out a UDP ping on a particular port (9030 by default)-->
+    <!--to other nodes in the same subnet. When a node with an installed SubnetLocator-->
+    <!--receives this ping, it responds with a UDP packet that contains the URL of the-->
+    <!--registry that it is currently using. The SubnetLocator that sent the ping selects-->
+    <!--the first UDDI registry that can be contacted using a received URL, or null if no live-->
+    <!--registries are located.-->
+    <locator>
+      <name>subnet</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.subnet.SubnetLocator</class>
+        <args>
+          <port>9030</port>
+          <maxWait>10</maxWait>
+          <pingCycle>5</pingCycle>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This locator returns a reference to the same UDDI registry as the one being used-->
+    <!--by the fabric node at the specified URL.-->
+    <!--It does this by contacting the service manager-->
+    <!--whose WSDL is located at <url>/fabric/servicemanager.wsdl.-->
+    <locator>
+      <name>wan</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.wan.WANLocator</class>
+        <args>
+          <url>http://host:port/context</url>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This is the default locator, and iterates through a list of named-->
+    <!--locators until one of them returns a reference to a UDDI registry.-->
+    <!--Named locators cannot currently be forward referenced.-->
+    <locator>
+      <name>chain</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.chain.ChainedLocator</class>
+        <args>
+          <clientExitStartup>true</clientExitStartup>
+          <serverExitStartup>true</serverExitStartup>
+          <retryLimit>-1</retryLimit>
+          <maxWaitTime>60000</maxWaitTime>
+          <locators>subnet,xdb</locators>
+        </args>
+      </constructor>
+    </locator>
+  </discovery>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC XML DATABASES-->
+  <!--***************************************************************-->
+
+  <!--xml database settings-->
+  <xdbServers>
+    <!--default seconds between server syncs-->
+    <defaultSyncCycle>10</defaultSyncCycle>
+
+    <!--default replication factor-->
+    <defaultReplicationFactor>2</defaultReplicationFactor>
+
+    <!--factory for creating data stores-->
+    <defaultStoreFactory>
+      <constructor>
+        <class>com.webmethods.xdb.store.memory.MemoryStoreFactory</class>
+      </constructor>
+    </defaultStoreFactory>
+  </xdbServers>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC ENDPOINT ACTIVITY-->
+  <!--***************************************************************-->
+
+  <endpointActivity>
+    <!--seconds between keep-alive cycles-->
+    <keepAliveCycle>60</keepAliveCycle>
+
+    <!--seconds between check for rule updates-->
+    <ruleCheckCycle>20</ruleCheckCycle>
+  </endpointActivity>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC LIVENESS CHECKING-->
+  <!--***************************************************************-->
+
+  <liveness>
+    <!--seconds between checking nodes for liveness-->
+    <nodeCycle>30</nodeCycle>
+
+    <!--seconds after which a dead node should be removed-->
+    <nodeThreshold>100</nodeThreshold>
+
+    <!--seconds between checking services for liveness-->
+    <serviceCycle>30</serviceCycle>
+
+    <!--seconds after which a dead service should be removed-->
+    <serviceThreshold>100</serviceThreshold>
+  </liveness>
+</config>

Added: labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/webMethods-web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/webMethods-web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/webMethods-web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,185 @@
+<!--
+  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">
+
+<!--
+  Welcome to the Glue web.xml file.
+
+  A copy of this file is located in glue.jar with the name "default-web.xml".
+  If Glue starts a web application and no web.xml is found in the application's
+  WEB-INF directory, the file "default-web.xml" is loaded via the class path and
+  used instead.
+
+  If the newapp utility is used to create a skeleton J2EE application structure,
+  this file is copied from <GLUE-HOME>/app-template/WEB-INF/web.xml
+  into the new application's WEB-INF directory.
+
+  This file installs two servlets:
+
+  1. The glue-soap servlet processes WSDL requests and
+     SOAP invocations that arrive via /services/*.
+
+  2. The glue-console servlet processes flash console
+     requests that arrive via /console/*.
+
+  All other requests, such as those for HTML and JSPs, are assumed to be handled
+  by the servlet container, which can be either the Glue servlet container in
+  the standalone case, or a 3rd party servlet container when Glue is hosted.
+
+  By default, requests are not authenticated. To enable authentication,
+  uncomment the <login-config> element and set the <auth-method> and <realm-name>
+  fields to their desired values. If you are running in the Glue servlet
+  container, you can define realms by editing the Glue WEB-INF/glue-config.xml file.
+
+  The <init-param> for httpRegistryRoot defines how inbound messages are routed
+  to the local registry. A value of "/" maps ".../services/xxx" to "/xxx" in the
+  registry, while a value of "/foo" maps ".../services/xxx" to "/foo/xxx". If
+  this parameter is not set, a value of "/" is assumed.
+
+  If Glue is hosted in an old servlet 2.1 container, uncomment the
+  <init-param> for electric.http.url and set the <param-value> to the URL
+  that Glue is exposed on.
+-->
+
+<web-app>
+    <display-name>XML Transaction Coordinator</display-name>
+
+    <description>XML Transaction Coordinator</description>
+    
+    <!--  Initialise the Task Manager -->
+    <context-param>
+        <param-name>TaskManager.minWorkerCount</param-name>
+        <param-value>0</param-value>
+    </context-param>
+    <context-param>
+        <param-name>TaskManager.maxWorkerCount</param-name>
+        <param-value>10</param-value>
+    </context-param>
+    <listener>
+        <listener-class>com.arjuna.services.framework.admin.TaskManagerInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationRequesterInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationRequesterInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C  -->
+    <listener>
+        <listener-class>com.arjuna.wsc.messaging.deploy.CoordinationInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WSCF -->
+    <listener>
+        <listener-class>com.arjuna.mw.wsc.deploy.WSCFInitialisation</listener-class>
+    </listener>
+
+    <!-- Initialise Arjuna TX services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationCoordinatorInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-AT services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionInitiatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.ParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-BA services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-T  -->
+    <listener>
+        <listener-class>com.arjuna.wst.messaging.deploy.TransactionInitialisation</listener-class>
+    </listener>
+
+    <!-- Initialise WSTX -->
+    <listener>
+        <listener-class>com.arjuna.mw.wst.deploy.WSTXInitialisation</listener-class>
+    </listener>
+    
+    <!--  Initialise the HTTP Client -->
+    <listener>
+        <listener-class>com.arjuna.webservices.transport.http.HttpClientInitialisation</listener-class>
+    </listener>
+    
+    <servlet>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <servlet-class>com.arjuna.webservices.transport.http.HttpServiceMultiplexorServlet</servlet-class>
+        <!--
+          The BaseHttpURI and BaseHttpsURI parameters specify the default values
+          used to generate the service URIs without reference to an incoming
+          request.
+         -->
+        <init-param>
+            <param-name>BaseHttpURI</param-name>
+            <param-value>http://@hostname@:@port@/@urlstub@/soap/</param-value>
+        </init-param>
+        <!--
+        <init-param>
+            <param-name>BaseHttpsURI</param-name>
+            <param-value>https://@hostname@:@port@/@urlstub@/soap/</param-value>
+        </init-param>
+        <init-param>
+            <param-name>LogPackets</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        -->
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+	<!-- servlet mappings -->
+    <servlet-mapping>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <url-pattern>/soap/*</url-pattern>
+    </servlet-mapping>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+<!--
+  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 application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
+
+<application>
+    <display-name>Arjuna-XML Coordinator</display-name>
+
+    <description>Arjuna-XML Coordinator</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>
+</application>

Added: labs/jbosstm/workspace/adinn/XTSGF/copyright.txt
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/copyright.txt	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/copyright.txt	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,18 @@
+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,
+ at author JBoss Inc.

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/BUILDING
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/BUILDING	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/BUILDING	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+#
+
+This demo has been written for, and tested on, JBoss4.0.3SP1.  Please download
+and install this app server from the JBoss website.
+
+Follow these steps to build the demo for JBoss
+ - edit jboss.properties and replace variables as directed in the comments
+ - add java and ant to your path
+ - execute 'sh build.sh jboss clean build' on unix or
+   'build.bat jboss clean build' on windows
+ - deploy the generated ear file into an instance of JBoss4.0.3SP 1
+
+Open a browser and enter the xts-demo url (e.g. http://localhost:8080/xts-demo)

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/build.bat
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/build.bat	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/build.bat	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,45 @@
+rem
+rem JBoss, Home of Professional Open Source
+rem Copyright 2006, Red Hat Middleware LLC, and individual contributors
+rem as indicated by the @author tags. 
+rem See the copyright.txt in the distribution for a full listing 
+rem of individual contributors.
+rem This copyrighted material is made available to anyone wishing to use,
+rem modify, copy, or redistribute it subject to the terms and conditions
+rem of the GNU General Public License, v. 2.0.
+rem This program is distributed in the hope that it will be useful, but WITHOUT A 
+rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+rem PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+rem You should have received a copy of the GNU General Public License,
+rem v. 2.0 along with this distribution; if not, write to the Free Software
+rem Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+rem MA  02110-1301, USA.
+rem 
+rem (C) 2005-2006,
+rem @author JBoss Inc.
+rem
+ at echo off
+rem ###########################################################################
+rem # Wrapper script for building and deploying xts-demo                      #
+rem # Usage: build.bat [weblogic|jboss] <target>                              #
+rem ###########################################################################
+
+if "%OS" == "Windows_NT" @setlocal
+
+set PROGRAM=build.bat
+if "%OS%" == "Windows_NT" set PROGNAME=%~nx0
+
+if "%1" == "" goto USAGE
+
+set PROPERTYFILE=%1.properties
+if exist "%PROPERTYFILE%" goto RUN
+
+:USAGE
+echo Usage: %PROGRAM% [weblogic|jboss|webmethods] <target>
+goto END
+
+:RUN
+shift
+ant -Dxmlpropertyfile="%PROPERTYFILE%" %1 %2 %3 %4 %5 %6 %7 %8 %9
+:END
+if "%OS" == "Windows_NT" @endlocal

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/build.sh
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/build.sh	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/build.sh	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+#!/bin/sh
+###############################################################################
+# Wrapper script for building and deploying xts-demo                          #
+# Usage: build.sh [weblogic|jboss] <target>                                   #
+###############################################################################
+
+if [ $# -ge 1 ]
+then
+  propertyfile=$1.properties
+  if [ -f "$propertyfile" ]
+  then
+    shift
+    exec ant -Dxmlpropertyfile $propertyfile "$@"
+  fi
+fi
+
+echo "Usage: `basename $0` [weblogic|jboss|webmethods] <target>"
+exit 1


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/build.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,410 @@
+<!--
+  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.
+-->
+
+<!-- $Id: build.xml,v 1.18.4.1 2005/11/22 10:42:06 kconner Exp $ -->
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--           Copyright (c) 2003, Arjuna Technologies Limited.             -->
+<!--                                                                        -->
+<!--                 WS-Transaction / XTS demo application                  -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<project name="xts-demo" default="build" basedir=".">
+
+    <!-- ================================================================== -->
+
+    <!-- Specify weblogic.home if you want a WebLogic build,                -->
+    <!-- webmethods.home for a webMethods build otherwise a JBoss build     -->
+    <!-- will be generated.                                                 -->
+
+    <!-- The properties to override are the following:                      -->
+    <!--    hostname (defaults to localhost)                                -->
+    <!--    port (defaults to 8080 for jboss, 7001 for WebLogic and         -->
+    <!--          8004 for webMethods)                                      -->
+    <!--    urlstub (defaults to xtsdemowebservices for JBoss and WebLogic  -->
+    <!--          and xts-demo for webMethods)                              -->
+
+    <!--    deploy.dir The deployment directory for the ear                 -->
+    <!-- ================================================================== -->
+
+    <property name="xtsinstalled.home" location="../xts-install" />
+    <property name="distrib.dir" location="${xtsinstalled.home}/demo"/>
+    <property name="conf.dir" location="${xtsinstalled.home}/conf"/>
+
+    <property name="lib.dir" location="${xtsinstalled.home}/lib"/>
+    <property name="ext.dir" location="${lib.dir}/ext"/>
+
+    <property name="lib.libs" value="wstx.jar ws-t.jar ws-c.jar"/>
+    <property name="ext.libs" value="jbossjta.jar"/>
+    <property name="ext.compile" value="${ext.libs} jaxrpc.jar servlet.jar"/>
+
+    <property name="ext.package" value="${ext.libs} jbossts-common.jar commons-logging.jar stax-api-1.0.jar wstx-asl-2.0.3.jar"/>
+
+    <!-- ================================================================== -->
+
+    <property name="build.dir" location="build"/>
+    <property name="src.dir" location="src"/>
+    <property name="web.dir" location="web"/>
+    <property name="dd.dir" location="dd"/>
+    <property name="jboss.dd.dir" location="${dd.dir}/jboss"/>
+    <property name="webmethods.dd.dir" location="${dd.dir}/webmethods"/>
+    <property name="weblogic.dd.dir" location="${dd.dir}/weblogic"/>
+    <property name="build.config" location="${build.dir}/config"/>
+    <property name="build.soapconfig" location="${build.dir}/soapconfig"/>
+    <property name="appinf.dir" location="${build.dir}/APP-INF"/>
+    <property name="appinflib.dir" location="${appinf.dir}/lib"/>
+
+    <property name="webmethods.build.dir" location="${build.dir}/xts-demo"/>
+
+    <property name="docs.dir" location="docs"/>
+    <property name="xsl.dir"  location="xsl"/>
+    <property name="html.dir" location="html"/>
+    <property name="xsl.file" value="ATL_LookAndFeel.xsl"/>
+
+    <property name="javac.debug"        value="on"/>
+    <property name="javac.optimize"     value="off"/>
+    <property name="javac.deprecation"  value="on"/>
+
+    <path id="lib.path">
+        <fileset dir="${lib.dir}" includes="${lib.libs}"/>
+    </path>
+    <path id="ext.path">
+        <fileset dir="${ext.dir}" includes="${ext.compile}"/>
+    </path>
+
+    <filterset id="webxml.filter">
+        <filter token="restaurantATURL" value="${restaurantATURL}"/>
+        <filter token="restaurantBAURL" value="${restaurantBAURL}"/>
+        <filter token="taxiATURL" value="${taxiATURL}"/>
+        <filter token="taxiBAURL" value="${taxiBAURL}"/>
+        <filter token="theatreATURL" value="${theatreATURL}"/>
+        <filter token="theatreBAURL" value="${theatreBAURL}"/>
+        <filter token="hostname" value="${hostname}"/>
+        <filter token="port" value="${port}"/>
+        <filter token="urlstub" value="${urlstub}"/>
+    </filterset>
+
+    <target name="clean">
+        <delete dir="${build.dir}"/>
+        <delete dir="${html.dir}"/>
+        <delete>
+            <fileset dir="." includes="**/*.bak" defaultexcludes="no"/>
+            <fileset dir="." includes="**/*~"    defaultexcludes="no"/>
+            <fileset dir="." includes="**/#*#"   defaultexcludes="no"/>
+            <fileset dir="." includes="**/.#*"   defaultexcludes="no"/>
+        </delete>
+    </target>
+
+    <target name="init-build">
+        <condition property="jboss.build">
+            <not>
+                <or>
+                    <isset property="weblogic.home"/>
+                    <isset property="webmethods.home"/>
+                </or>
+            </not>
+        </condition>
+    </target>
+
+    <target name="init-properties-weblogic" depends="init-build" if="weblogic.home">
+        <property name="hostname" value="localhost"/>
+        <property name="port" value="7001"/>
+        <property name="urlstub" value="xtsdemowebservices"/>
+        <path id="compile.path">
+            <path refid="lib.path"/>
+            <path refid="ext.path"/>
+            <fileset dir="${weblogic.home}/server/lib" includes="webservices.jar"/>
+        </path>
+    </target>
+
+    <target name="init-properties-webmethods" depends="init-build" if="webmethods.home">
+        <property name="hostname" value="localhost"/>
+        <property name="port" value="8004"/>
+        <property name="urlstub" value="xts-demo"/>
+        <path id="compile.path">
+            <path refid="lib.path"/>
+            <path refid="ext.path"/>
+            <pathelement location="${webmethods.home}/lib/glue.jar"/>
+        </path>
+        <property name="webmethods.deploy.dir" location="${deploy.dir}/xts-demo"/>
+    </target>
+
+    <target name="init-properties" depends="init-build" if="jboss.build">
+        <property name="hostname" value="localhost"/>
+        <property name="port" value="8080"/>
+        <property name="urlstub" value="xtsdemowebservices"/>
+        <path id="compile.path">
+            <path refid="lib.path"/>
+            <path refid="ext.path"/>
+        </path>
+    </target>
+
+    <target name="init" depends="init-properties-weblogic,init-properties-webmethods,init-properties">
+        <mkdir dir="${build.dir}"/>
+        <mkdir dir="${build.dir}/classes"/>
+        <mkdir dir="${build.config}"/>
+        <mkdir dir="${build.soapconfig}"/>
+        <mkdir dir="${appinf.dir}"/>
+        <mkdir dir="${appinflib.dir}"/>
+        <mkdir dir="${html.dir}"/>
+    </target>
+
+    <target name="compile" depends="init">
+        <javac destdir="${build.dir}/classes" debug="${javac.debug}"
+            optimize="${javac.optimize}" deprecation="${javac.deprecation}" >
+            <classpath>
+                <path refid="compile.path"/>
+            </classpath>
+            <src path="${src.dir}"/>
+            <patternset>
+                <include name="com/arjuna/xts/nightout/clients/jboss/**" if="jboss.build"/>
+                <include name="com/arjuna/xts/nightout/clients/weblogic/**" if="weblogic.home"/>
+                <include name="com/arjuna/xts/nightout/clients/webmethods/**" if="webmethods.home"/>
+                <include name="com/arjuna/xts/nightout/services/**"/>
+            </patternset>
+        </javac>
+    </target>
+
+    <!-- the server side elements -->
+    <target name="config">
+        <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>
+        <jar destfile="${build.dir}/config.jar" basedir="${build.config}"/>
+    </target>
+
+    <target name="weblogic-webservices" depends="compile" if="weblogic.home">
+        <copy file="${weblogic.dd.dir}/web-services.xml" tofile="${build.dir}/web-services.xml"/>
+        <war destfile="${build.dir}/xts-demo-webservices.war" webxml="${weblogic.dd.dir}/web.xml">
+            <webinf dir="${build.dir}"
+                includes="web-services.xml"/>
+            <classes dir="${build.dir}/classes">
+                <include name="com/arjuna/xts/nightout/services/**/*"/>
+            </classes>
+            <manifest>
+                <attribute name="Class-Path" value="${lib.libs} ${ext.libs}"/>
+            </manifest>
+        </war>
+    </target>
+
+    <target name="jboss-webservices" depends="compile" if="jboss.build">
+        <war destfile="${build.dir}/xts-demo-webservices.war" webxml="${jboss.dd.dir}/service-web-app.xml">
+            <webinf dir="${jboss.dd.dir}" excludes="service-web-app.xml client-web-app.xml"/>
+            <fileset dir="${build.dir}/classes">
+                <include name="com/arjuna/xts/nightout/services/**"/>
+            </fileset>
+            <manifest>
+                <attribute name="Class-Path" value="${lib.libs} ${ext.libs}"/>
+            </manifest>
+        </war>
+    </target>
+
+    <!-- the client side elements -->
+    <target name="weblogic-webapp" depends="compile" if="weblogic.home">
+        <copy tofile="${build.dir}/client-web-app.xml" file="${weblogic.dd.dir}/web-app.xml">
+            <filterset refid="webxml.filter"/>
+        </copy>
+
+        <!-- move resources into the classes directory -->
+        <copy todir="${build.dir}/classes/">
+            <fileset dir="${src.dir}" includes="com/arjuna/xts/nightout/clients/weblogic/**/*.xml"/>
+        </copy>
+
+        <war warfile="${build.dir}/xts-demo.war" webxml="${build.dir}/client-web-app.xml">
+            <classes dir="${build.dir}/classes">
+                <exclude name="com/arjuna/xts/nightout/services/**/*"/>
+            </classes>
+            <fileset dir="${web.dir}"/>
+            <manifest>
+                <attribute name="Class-Path" value="wstx.jar"/>
+            </manifest>
+        </war>
+    </target>
+
+    <target name="jboss-webapp" depends="compile" if="jboss.build">
+        <copy tofile="${build.dir}/client-web-app.xml" file="${jboss.dd.dir}/client-web-app.xml">
+            <filterset refid="webxml.filter"/>
+        </copy>
+
+        <war warfile="${build.dir}/xts-demo.war" webxml="${build.dir}/client-web-app.xml">
+            <classes dir="${build.dir}/classes">
+                <exclude name="com/arjuna/xts/nightout/services/**/*"/>
+            </classes>
+            <fileset dir="${web.dir}"/>
+            <manifest>
+                <attribute name="Class-Path" value="wstx.jar"/>
+            </manifest>
+            <webinf dir="${jboss.dd.dir}" includes="wsdl/**, client-jaxrpc-mapping.xml"/>
+        </war>
+    </target>
+
+    <target name="weblogic-ear" depends="weblogic-webservices, weblogic-webapp, config" if="weblogic.home">
+        <copy todir="${appinflib.dir}">
+	        <fileset dir="${xtsinstalled.home}/lib" includes="*.jar"/>
+	        <fileset dir="${xtsinstalled.home}/lib/ext" includes="${ext.package}"/>
+            <fileset dir="${build.dir}" includes="config.jar"/>
+        </copy>
+        <ear earfile="${build.dir}/xts-demo.ear" appxml="${weblogic.dd.dir}/application.xml">
+            <fileset dir="${xtsinstalled.home}/webapps" includes="*.war"/>
+            <fileset dir="${build.dir}" includes="xts-demo-webservices.war xts-demo.war"/>
+            <fileset dir="${build.dir}" includes="APP-INF/**"/>
+        </ear>
+    </target>
+
+    <target name="jboss-ear" depends="jboss-webapp, config" if="jboss.build">
+        <ear earfile="${build.dir}/xts-demo.ear"
+            appxml="${jboss.dd.dir}/application.xml">
+            <fileset dir="${build.dir}" includes="xts-demo-webservices.war xts-demo.war config.jar"/>
+	        <fileset dir="${xtsinstalled.home}/lib" includes="*.jar"/>
+	        <fileset dir="${xtsinstalled.home}/lib/ext" includes="${ext.package}"/>
+	        <fileset dir="${xtsinstalled.home}/webapps" includes="*.war"/>
+        </ear>
+    </target>
+
+    <target name="webmethods-app" depends="config" if="webmethods.home">
+        <mkdir dir="${webmethods.build.dir}"/>
+        <property name="webmethods.webinf.dir" location="${webmethods.build.dir}/WEB-INF"/>
+        <property name="webmethods.classes.dir" location="${webmethods.webinf.dir}/classes"/>
+        <property name="webmethods.lib.dir" location="${webmethods.webinf.dir}/lib"/>
+        <property name="webmethods.services.dir" location="${webmethods.webinf.dir}/services"/>
+
+        <mkdir dir="${webmethods.webinf.dir}"/>
+        <mkdir dir="${webmethods.classes.dir}"/>
+        <mkdir dir="${webmethods.lib.dir}"/>
+        <mkdir dir="${webmethods.services.dir}"/>
+        <mkdir dir="${build.soapconfig}/services"/>
+
+        <copy todir="${webmethods.build.dir}">
+            <fileset dir="${web.dir}"/>
+        </copy>
+        <copy todir="${webmethods.webinf.dir}" file="${webmethods.dd.dir}/glue-config.xml">
+          <filterset>
+            <filter token="hostname" value="${hostname}"/>
+            <filter token="port" value="${port}"/>
+          </filterset>
+        </copy>
+        <copy tofile="${webmethods.webinf.dir}/web.xml" file="${webmethods.dd.dir}/web-app.xml">
+          <filterset refid="webxml.filter"/>
+        </copy>
+
+        <copy todir="${webmethods.classes.dir}">
+          <fileset dir="${build.dir}/classes"/>
+        </copy>
+
+        <copy todir="${build.soapconfig}/services">
+            <fileset dir="${webmethods.dd.dir}" includes="javax.*"/>
+        </copy>
+        <jar file="${build.dir}/soapconfig.jar">
+             <metainf dir="${build.soapconfig}"/>
+        </jar>
+
+	      <copy todir="${webmethods.lib.dir}">
+            <fileset dir="${xtsinstalled.home}/lib" includes="*.jar"/>
+            <fileset dir="${xtsinstalled.home}/lib/ext" includes="${ext.package}"/>
+            <fileset dir="${build.dir}" includes="config.jar soapconfig.jar"/>
+	      </copy>
+
+        <copy todir="${webmethods.services.dir}">
+            <fileset dir="${webmethods.dd.dir}">
+                <include name="*AT.xml"/>
+                <include name="*BA.xml"/>
+            </fileset>
+        </copy>
+    </target>
+
+    <target name="build" depends="jboss-ear, weblogic-ear, webmethods-app"/>
+
+    <target name="docs" depends="init">
+        <copy todir="${html.dir}">
+            <fileset dir="${docs.dir}">
+                <include name="**/*.css"/>
+                <include name="**/*.gif"/>
+                <include name="**/*.jpg"/>
+            </fileset>
+        </copy>
+        <style processor="trax" style="${xsl.dir}/${xsl.file}" basedir="${docs.dir}" includes="*.xml" destdir="${html.dir}" extension=".html">
+            <param name="rootpath" expression="."/>
+        </style>
+    </target>
+
+    <target name="xml2jsp" depends="init">
+        <style processor="trax" style="${xsl.dir}/${xsl.file}" basedir="${src.dir}/com/arjuna/xts/nightout/clients"
+            includes="*.xml" destdir="${src.dir}/com/arjuna/xts/nightout/clients" extension=".html">
+            <param name="rootpath" expression="."/>
+        </style>
+    </target>
+
+    <!-- hook to 'inherit' distrib dir if we are called by the ArjuaXTS install script -->
+	<target name="select-distribution-dir" if="com.arjuna.mwlabs.installationdirectory">
+		<property name="selected-distrib-dir" value="${com.arjuna.mwlabs.installationdirectory}/demo"/>
+	</target>
+
+    <!-- prepare the demo app for customer release -->
+    <target name="distribution" depends="clean, select-distribution-dir, docs">
+
+        <!-- this assignment will fail silent if the property
+          has already been set (inherited) by ArjunaXTS -->
+        <property name="selected-distrib-dir" value="${distrib.dir}" />
+
+        <!-- copy everything (CVS dirs are auto-ignored) -->
+        <copy todir="${selected-distrib-dir}">
+            <fileset dir=".">
+                <include name="src/**"/>
+                <include name="html/**"/>
+                <include name="dd/**"/>
+                <include name="web/**"/>
+                <include name="*.properties"/>
+                <include name="build.sh"/>
+                <include name="build.bat"/>
+                <include name="BUILDING"/>
+            </fileset>
+        </copy>
+        <!-- remove our dirty laundry -->
+        <copy file="xts-build.xml" tofile="${selected-distrib-dir}/build.xml"/>
+    </target>
+
+    <target name="deploy" depends="deploy-ears, deploy-exploded"/>
+
+    <target name="deploy-ears" depends="build, undeploy" unless="webmethods.home">
+        <copy file="${build.dir}/xts-demo.ear" tofile="${deploy.dir}/xts-demo.ear"/>
+    </target>
+
+    <target name="deploy-exploded" depends="build, undeploy" if="webmethods.home">
+        <mkdir dir="${webmethods.deploy.dir}"/>
+        <copy todir="${webmethods.deploy.dir}">
+             <fileset dir="${webmethods.build.dir}"/>
+        </copy>
+    </target>
+
+    <target name="undeploy" depends="undeploy-ears, undeploy-exploded"/>
+
+    <target name="undeploy-ears" unless="webmethods.home">
+        <delete file="${deploy.dir}/xts-demo.ear"/>
+    </target>
+
+    <target name="undeploy-exploded" if="webmethods.home">
+        <delete dir="${webmethods.deploy.dir}"/>
+    </target>
+</project>


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/build.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<!-- $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>


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/client-web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/client-web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/client-web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<web-app 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://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+	version="2.4">
+    <display-name>XML Transaction Service Demo Client</display-name>
+
+    <description>XML Transaction Service Demo Client</description>
+
+    <servlet>
+        <servlet-name>Basic Client Servlet</servlet-name>
+        <servlet-class>com.jboss.jbosstm.xts.demo.client.BasicClient</servlet-class>
+        <init-param>
+            <param-name>restaurantATURL</param-name>
+            <param-value>@restaurantATURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>restaurantBAURL</param-name>
+            <param-value>@restaurantBAURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>taxiATURL</param-name>
+            <param-value>@taxiATURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>taxiBAURL</param-name>
+            <param-value>@taxiBAURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>theatreATURL</param-name>
+            <param-value>@theatreATURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>theatreBAURL</param-name>
+            <param-value>@theatreBAURL@</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>Basic Client Servlet</servlet-name>
+        <url-pattern>/basicclient</url-pattern>
+    </servlet-mapping>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/context-handlers.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/context-handlers.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/context-handlers.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+-->
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
+    <handler-chain>
+	<handler>
+		<handler-name>ContextHandler</handler-name>
+		<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+	</handler>
+    </handler-chain>
+</handler-chains>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/webservices.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/webservices.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/webservices.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,136 @@
+<!--
+  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:impl="http://www.jboss.com/jbosstm/xts/demo"
+	version="1.1">
+
+	<webservice-description>
+		<webservice-description-name>RestaurantServiceAT</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/RestaurantServiceAT.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>RestaurantServiceAT</port-component-name>
+			<wsdl-port xmlns:rest="http://www.jboss.com/jbosstm/xts/demo/Restaurant">rest:RestaurantServiceAT</wsdl-port>
+			<service-endpoint-interface>com.jboss.jbosstm.xts.demo.restaurant.IRestaurantService</service-endpoint-interface>
+			<service-impl-bean>
+				<ejb-link>com.jboss.jbosstm.xts.demo.services.restaurant.RestaurantServiceAT</ejb-link>
+			</service-impl-bean>
+			<handler>
+				<handler-name>serverHandler</handler-name>
+				<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+	<webservice-description>
+		<webservice-description-name>RestaurantServiceBA</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/RestaurantServiceBA.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>RestaurantServiceBA</port-component-name>
+			<wsdl-port xmlns:rest="http://www.jboss.com/jbosstm/xts/demo/Restaurant">rest:RestaurantServiceBA</wsdl-port>
+			<service-endpoint-interface>com.jboss.jbosstm.xts.demo.restaurant.IRestaurantServiceBA</service-endpoint-interface>
+			<service-impl-bean>
+                <ejb-link>com.jboss.jbosstm.xts.demo.services.restaurant.RestaurantServiceBA</ejb-link>
+			</service-impl-bean>
+			<handler>
+				<handler-name>serverHandler</handler-name>
+				<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+	<webservice-description>
+		<webservice-description-name>TheatreServiceAT</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/TheatreServiceAT.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>TheatreServiceAT</port-component-name>
+			<wsdl-port xmlns:theatre="http://www.jboss.com/jbosstm/xts/demo/Theatre">theatre:TheatreServiceAT</wsdl-port>
+			<service-endpoint-interface>com.jboss.jbosstm.xts.demo.theatre.ITheatreService</service-endpoint-interface>
+			<service-impl-bean>
+                <ejb-link>com.jboss.jbosstm.xts.demo.services.theatre.TheatreServiceAT</ejb-link>
+			</service-impl-bean>
+			<handler>
+				<handler-name>serverHandler</handler-name>
+				<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+	<webservice-description>
+		<webservice-description-name>TheatreServiceBA</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/TheatreServiceBA.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>TheatreServiceBA</port-component-name>
+			<wsdl-port xmlns:theatre="http://www.jboss.com/jbosstm/xts/demo/Theatre">theatre:TheatreServiceBA</wsdl-port>
+			<service-endpoint-interface>com.jboss.jbosstm.xts.demo.theatre.ITheatreServiceBA</service-endpoint-interface>
+			<service-impl-bean>
+                <ejb-link>com.jboss.jbosstm.xts.demo.services.theatre.TheatreServiceBA</ejb-link>
+			</service-impl-bean>
+			<handler>
+				<handler-name>serverHandler</handler-name>
+				<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+	<webservice-description>
+		<webservice-description-name>TaxiServiceAT</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/TaxiServiceAT.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>TaxiServiceAT</port-component-name>
+			<wsdl-port xmlns:taxi="http://www.jboss.com/jbosstm/xts/demo/Taxi">taxi:TaxiServiceAT</wsdl-port>
+			<service-endpoint-interface>com.jboss.jbosstm.xts.demo.taxi.ITaxiService</service-endpoint-interface>
+			<service-impl-bean>
+                <ejb-link>com.jboss.jbosstm.xts.demo.services.taxi.TaxiServiceAT</ejb-link>
+			</service-impl-bean>
+			<handler>
+				<handler-name>serverHandler</handler-name>
+				<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+	<webservice-description>
+		<webservice-description-name>TaxiServiceBA</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/TaxiServiceBA.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>TaxiServiceBA</port-component-name>
+			<wsdl-port xmlns:taxi="http://www.jboss.com/jbosstm/xts/demo/Taxi">taxi:TaxiServiceBA</wsdl-port>
+			<service-endpoint-interface>com.jboss.jbosstm.xts.demo.taxi.ITaxiServiceBA</service-endpoint-interface>
+			<service-impl-bean>
+                <ejb-link>com.jboss.jbosstm.xts.demo.services.taxi.TaxiServiceAT</ejb-link>
+			</service-impl-bean>
+			<handler>
+				<handler-name>serverHandler</handler-name>
+				<handler-class>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+</webservices>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceAT.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceAT.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceAT.wsdl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://www.jboss.com/jbosstm/xts/demo/Restaurant" xmlns:impl="http://www.jboss.com/jbosstm/xts/demo/Restaurant" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.jboss.com/jbosstm/xts/demo/Restaurant">
+
+   <wsdl:message name="bookSeatsRequest">
+
+      <wsdl:part name="how_many" type="xsd:int"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="bookSeatsResponse">
+
+   </wsdl:message>
+
+   <wsdl:portType name="IRestaurantService">
+
+      <wsdl:operation name="bookSeats" parameterOrder="how_many">
+
+         <wsdl:input name="bookSeatsRequest" message="intf:bookSeatsRequest"/>
+
+         <wsdl:output name="bookSeatsResponse" message="intf:bookSeatsResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="RestaurantServiceATSoapBinding" type="intf:IRestaurantService">
+
+      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="bookSeats">
+
+         <wsdlsoap:operation soapAction=""/>
+
+         <wsdl:input name="bookSeatsRequest">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Restaurant"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="bookSeatsResponse">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Restaurant"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="RestaurantServiceATService">
+
+      <wsdl:port name="RestaurantServiceAT" binding="intf:RestaurantServiceATSoapBinding">
+
+         <wsdlsoap:address location="http://localhost:8080/xtsdemowebservices/RestaurantServiceAT"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceBA.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceBA.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/RestaurantServiceBA.wsdl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+<!--
+  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.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://www.jboss.com/jbosstm/xts/demo/Restaurant" xmlns:impl="http://www.jboss.com/jbosstm/xts/demo/Restaurant" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.jboss.com/jbosstm/xts/demo/Restaurant">
+
+   <wsdl:message name="bookSeatsBARequest">
+
+      <wsdl:part name="how_many" type="xsd:int"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="bookSeatsBAResponse">
+
+      <wsdl:part name="bookSeatsBAResponse" type="xsd:boolean"/>
+
+   </wsdl:message>
+
+   <wsdl:portType name="IRestaurantServiceBA">
+
+      <wsdl:operation name="bookSeats" parameterOrder="how_many">
+
+         <wsdl:input name="bookSeatsBARequest" message="intf:bookSeatsBARequest"/>
+
+         <wsdl:output name="bookSeatsBAResponse" message="intf:bookSeatsBAResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="RestaurantServiceBASoapBinding" type="intf:IRestaurantServiceBA">
+
+      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="bookSeats">
+
+         <wsdlsoap:operation soapAction=""/>
+
+         <wsdl:input name="bookSeatsBARequest">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Restaurant"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="bookSeatsBAResponse">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Restaurant"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="RestaurantServiceBAService">
+
+      <wsdl:port name="RestaurantServiceBA" binding="intf:RestaurantServiceBASoapBinding">
+
+         <wsdlsoap:address location="http://localhost:8080/xtsdemowebservices/RestaurantServiceBA"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceAT.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceAT.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceAT.wsdl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,77 @@
+<!--
+  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.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://www.jboss.com/jbosstm/xts/demo/Taxi" xmlns:impl="http://www.jboss.com/jbosstm/xts/demo/Taxi" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.jboss.com/jbosstm/xts/demo/Taxi">
+
+   <wsdl:message name="bookTaxiRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="bookTaxiResponse">
+
+   </wsdl:message>
+
+   <wsdl:portType name="ITaxiService">
+
+      <wsdl:operation name="bookTaxi">
+
+         <wsdl:input name="bookTaxiRequest" message="intf:bookTaxiRequest"/>
+
+         <wsdl:output name="bookTaxiResponse" message="intf:bookTaxiResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="TaxiServiceATSoapBinding" type="intf:ITaxiService">
+
+      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="bookTaxi">
+
+         <wsdlsoap:operation soapAction=""/>
+
+         <wsdl:input name="bookTaxiRequest">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Taxi"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="bookTaxiResponse">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Taxi"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="TaxiServiceATService">
+
+      <wsdl:port name="TaxiServiceAT" binding="intf:TaxiServiceATSoapBinding">
+
+         <wsdlsoap:address location="http://localhost:8080/xtsdemowebservices/TaxiServiceAT"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceBA.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceBA.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TaxiServiceBA.wsdl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://www.jboss.com/jbosstm/xts/demo/Taxi" xmlns:impl="http://www.jboss.com/jbosstm/xts/demo/Taxi" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.jboss.com/jbosstm/xts/demo/Taxi">
+
+   <wsdl:message name="bookTaxiBARequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="bookTaxiBAResponse">
+
+      <wsdl:part name="bookTaxiBAResponse" type="xsd:boolean"/>
+
+   </wsdl:message>
+
+   <wsdl:portType name="ITaxiServiceBA">
+
+      <wsdl:operation name="bookTaxi">
+
+         <wsdl:input name="intf:bookTaxiBARequest" message="intf:bookTaxiBARequest"/>
+
+         <wsdl:output name="intf:bookTaxiBAResponse" message="intf:bookTaxiBAResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="TaxiServiceBASoapBinding" type="intf:ITaxiServiceBA">
+
+      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="bookTaxi">
+
+         <wsdlsoap:operation soapAction=""/>
+
+         <wsdl:input name="bookTaxiBARequest">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Taxi"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="bookTaxiBAResponse">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Taxi"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="TaxiServiceBAService">
+
+      <wsdl:port name="TaxiServiceBA" binding="intf:TaxiServiceBASoapBinding">
+
+         <wsdlsoap:address location="http://localhost:8080/xtsdemowebservices/TaxiServiceBA"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceAT.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceAT.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceAT.wsdl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,81 @@
+<!--
+  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.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://www.jboss.com/jbosstm/xts/demo/Theatre" xmlns:impl="http://www.jboss.com/jbosstm/xts/demo/Theatre" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.jboss.com/jbosstm/xts/demo/Theatre">
+
+   <wsdl:message name="bookSeatsResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="bookSeatsRequest">
+
+      <wsdl:part name="how_many" type="xsd:int"/>
+
+      <wsdl:part name="which_area" type="xsd:int"/>
+
+   </wsdl:message>
+
+   <wsdl:portType name="ITheatreService">
+
+      <wsdl:operation name="bookSeats" parameterOrder="how_many which_area">
+
+         <wsdl:input name="intf:bookSeatsRequest" message="intf:bookSeatsRequest"/>
+
+         <wsdl:output name="intf:bookSeatsResponse" message="intf:bookSeatsResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="TheatreServiceATSoapBinding" type="intf:ITheatreService">
+
+      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="bookSeats">
+
+         <wsdlsoap:operation soapAction=""/>
+
+         <wsdl:input name="bookSeatsRequest">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Theatre"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="bookSeatsResponse">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Theatre"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="TheatreServiceATService">
+
+      <wsdl:port name="TheatreServiceAT" binding="intf:TheatreServiceATSoapBinding">
+
+         <wsdlsoap:address location="http://localhost:8080/xtsdemowebservices/TheatreServiceAT"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceBA.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceBA.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/TheatreServiceBA.wsdl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,83 @@
+<!--
+  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.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://www.jboss.com/jbosstm/xts/demo/Theatre" xmlns:impl="http://www.jboss.com/jbosstm/xts/demo/Theatre" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.jboss.com/jbosstm/xts/demo/Theatre">
+
+   <wsdl:message name="bookSeatsBAResponse">
+
+      <wsdl:part name="bookSeatsBAResponse" type="xsd:boolean"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="bookSeatsBARequest">
+
+      <wsdl:part name="how_many" type="xsd:int"/>
+
+      <wsdl:part name="which_area" type="xsd:int"/>
+
+   </wsdl:message>
+
+   <wsdl:portType name="ITheatreServiceBA">
+
+      <wsdl:operation name="bookSeats" parameterOrder="how_many which_area">
+
+         <wsdl:input name="bookSeatsBARequest" message="intf:bookSeatsBARequest"/>
+
+         <wsdl:output name="bookSeatsBAResponse" message="intf:bookSeatsBAResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="TheatreServiceBASoapBinding" type="intf:ITheatreServiceBA">
+
+      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="bookSeats">
+
+         <wsdlsoap:operation soapAction=""/>
+
+         <wsdl:input name="bookSeatsBARequest">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Theatre"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="bookSeatsBAResponse">
+
+            <wsdlsoap:body use="literal" namespace="http://www.jboss.com/jbosstm/xts/demo/Theatre"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="TheatreServiceBAService">
+
+      <wsdl:port name="TheatreServiceBA" binding="intf:TheatreServiceBASoapBinding">
+
+         <wsdlsoap:address location="http://localhost:8080/xtsdemowebservices/TheatreServiceBA"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/build.sh
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/build.sh	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wsdl/build.sh	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,25 @@
+#!/bin/bash
+# generate jaxws code from wsdl
+
+GLASSFISHDIR=/home/adinn/glassfish/v2-b58g/glassfish/
+WSIMPORT=$GLASSFISHDIR/bin/wsimport
+
+if [ -d tmp/src ] ; then
+  rm -rf tmp/src/*
+fi
+if [ -d tmp/classes ] ; then
+  rm -rf tmp/classes/*
+fi
+if [ ! -d tmp/src ]; then
+  mkdir -p tmp/src
+fi
+if [ ! -d tmp/classes ] ; then
+  mkdir -p tmp/classes
+fi
+
+for wsdlfile in RestaurantServiceAT.wsdl TaxiServiceAT.wsdl \
+    TheatreServiceAT.wsdl RestaurantServiceBA.wsdl \
+    TaxiServiceBA.wsdl TheatreServiceBA.wsdl
+do
+  $WSIMPORT -s tmp/src -d tmp/classes -keep -wsdllocation file:/WEB-INF/wsdl/$wsdlfile $wsdlfile
+done

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/application.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/application.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<!-- $Id: axis-application.xml,v 1.5 2003/04/14 11:54:17 jhalliday 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>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+<!--
+  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.
+-->
+
+<!-- $Id: web-app.xml,v 1.2 2003/04/14 11:54:17 jhalliday Exp $ -->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
+
+<web-app>
+    <display-name>XML Transaction Service Demo Client</display-name>
+
+    <description>XML Transaction Service Demo Client</description>
+
+    <servlet>
+        <servlet-name>Basic Client Servlet</servlet-name>
+        <servlet-class>com.arjuna.xts.nightout.clients.weblogic.BasicClient</servlet-class>
+        <init-param>
+            <param-name>restaurantATURL</param-name>
+            <param-value>@restaurantATURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>restaurantBAURL</param-name>
+            <param-value>@restaurantBAURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>taxiATURL</param-name>
+            <param-value>@taxiATURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>taxiBAURL</param-name>
+            <param-value>@taxiBAURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>theatreATURL</param-name>
+            <param-value>@theatreATURL@</param-value>
+        </init-param>
+        <init-param>
+            <param-name>theatreBAURL</param-name>
+            <param-value>@theatreBAURL@</param-value>
+        </init-param>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>Basic Client Servlet</servlet-name>
+        <url-pattern>/basicclient</url-pattern>
+    </servlet-mapping>
+
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-services.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-services.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web-services.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,104 @@
+<!--
+  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.
+-->
+
+<web-services xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <handler-chains>
+    <handler-chain name="WSTContextProcessor">
+      <handler class-name="com.arjuna.mw.wst.service.JaxRPCHeaderContextProcessor"/>
+    </handler-chain>
+  </handler-chains>
+
+  <web-service name="RestaurantServiceAT" uri="/RestaurantServiceAT" targetNamespace="http://www.arjuna.com/xtsdemo/nightout/RestaurantServiceAT">
+    <components>
+      <java-class name="restaurantServiceAT" class-name="com.arjuna.xts.nightout.services.Restaurant.RestaurantServiceAT"/>
+    </components>
+    <operations>
+      <operation method="bookSeats" handler-chain="WSTContextProcessor" component="restaurantServiceAT">
+        <params>
+          <param name="howMany" class-name="java.lang.Integer" style="in" type="xsd:int"/>
+        </params>
+      </operation>
+    </operations>
+  </web-service>
+  <web-service name="RestaurantServiceBA" uri="/RestaurantServiceBA" targetNamespace="http://www.arjuna.com/xtsdemo/nightout/RestaurantServiceBA">
+    <components>
+      <java-class name="restaurantServiceBA" class-name="com.arjuna.xts.nightout.services.Restaurant.RestaurantServiceBA"/>
+    </components>
+    <operations>
+      <operation method="bookSeats" handler-chain="WSTContextProcessor" component="restaurantServiceBA">
+        <params>
+          <param name="howMany" class-name="java.lang.Integer" style="in" type="xsd:int"/>
+	      <return-param name="result" class-name="java.lang.Boolean" type="xsd:boolean"/>
+	    </params>
+      </operation>
+    </operations>
+  </web-service>
+
+  <web-service name="TaxiServiceAT" uri="/TaxiServiceAT" targetNamespace="http://www.arjuna.com/xtsdemo/nightout/TaxiServiceAT">
+    <components>
+      <java-class name="taxiServiceAT" class-name="com.arjuna.xts.nightout.services.Taxi.TaxiServiceAT"/>
+    </components>
+    <operations>
+      <operation method="bookTaxi" handler-chain="WSTContextProcessor" component="taxiServiceAT"/>
+    </operations>
+  </web-service>
+  <web-service name="TaxiServiceBA" uri="/TaxiServiceBA" targetNamespace="http://www.arjuna.com/xtsdemo/nightout/TaxiServiceBA">
+    <components>
+      <java-class name="taxiServiceBA" class-name="com.arjuna.xts.nightout.services.Taxi.TaxiServiceBA"/>
+    </components>
+    <operations>
+      <operation method="bookTaxi" handler-chain="WSTContextProcessor" component="taxiServiceBA">
+        <params>
+	      <return-param name="result" class-name="java.lang.Boolean" type="xsd:boolean"/>
+	    </params>
+	  </operation>
+    </operations>
+  </web-service>
+
+  <web-service name="TheatreServiceAT" uri="/TheatreServiceAT" targetNamespace="http://www.arjuna.com/xtsdemo/nightout/TheatreServiceAT">
+    <components>
+      <java-class name="theatreServiceAT" class-name="com.arjuna.xts.nightout.services.Theatre.TheatreServiceAT"/>
+    </components>
+    <operations>
+      <operation method="bookSeats" handler-chain="WSTContextProcessor" component="theatreServiceAT">
+        <params>
+          <param name="howMany" class-name="java.lang.Integer" style="in" type="xsd:int"/>
+          <param name="whichArea" class-name="java.lang.Integer" style="in" type="xsd:int"/>
+        </params>
+      </operation>
+    </operations>
+  </web-service>
+  <web-service name="TheatreServiceBA" uri="/TheatreServiceBA" targetNamespace="http://www.arjuna.com/xtsdemo/nightout/TheatreServiceBA">
+    <components>
+      <java-class name="theatreServiceBA" class-name="com.arjuna.xts.nightout.services.Theatre.TheatreServiceBA"/>
+    </components>
+    <operations>
+      <operation method="bookSeats" handler-chain="WSTContextProcessor" component="theatreServiceBA">
+        <params>
+          <param name="howMany" class-name="java.lang.Integer" style="in" type="xsd:int"/>
+          <param name="whichArea" class-name="java.lang.Integer" style="in" type="xsd:int"/>
+	      <return-param name="result" class-name="java.lang.Boolean" type="xsd:boolean"/>
+	    </params>
+      </operation>
+    </operations>
+  </web-service>
+</web-services>
+

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/weblogic/web.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,23 @@
+<!--
+  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/j2ee/dtds/web-app_2.3.dtd">
+<web-app>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceAT.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceAT.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceAT.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<service>
+  <constructor>
+    <class>com.arjuna.xts.nightout.services.Restaurant.RestaurantServiceAT</class>
+  </constructor>
+  <description>Restaurant (Atomic Transaction) service</description>
+
+  <interface>com.arjuna.xts.nightout.services.Restaurant.IRestaurantService</interface>
+
+  <inboundSoapRequestInterceptor>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</inboundSoapRequestInterceptor>
+  <outboundSoapResponseInterceptor>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</outboundSoapResponseInterceptor>
+</service>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceBA.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceBA.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/RestaurantServiceBA.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<service>
+  <constructor>
+    <class>com.arjuna.xts.nightout.services.Restaurant.RestaurantServiceBA</class>
+  </constructor>
+  <description>Restaurant (Business Activity) service</description>
+
+  <interface>com.arjuna.xts.nightout.services.Restaurant.IRestaurantServiceBA</interface>
+
+  <inboundSoapRequestInterceptor>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</inboundSoapRequestInterceptor>
+  <outboundSoapResponseInterceptor>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</outboundSoapResponseInterceptor>
+</service>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceAT.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceAT.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceAT.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<service>
+  <constructor>
+    <class>com.arjuna.xts.nightout.services.Taxi.TaxiServiceAT</class>
+  </constructor>
+  <description>Taxi (Atomic Transaction) service</description>
+
+  <interface>com.arjuna.xts.nightout.services.Taxi.ITaxiService</interface>
+
+  <inboundSoapRequestInterceptor>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</inboundSoapRequestInterceptor>
+  <outboundSoapResponseInterceptor>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</outboundSoapResponseInterceptor>
+</service>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceBA.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceBA.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TaxiServiceBA.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<service>
+  <constructor>
+    <class>com.arjuna.xts.nightout.services.Taxi.TaxiServiceBA</class>
+  </constructor>
+  <description>Taxi (Business Activity) service</description>
+
+  <interface>com.arjuna.xts.nightout.services.Taxi.ITaxiServiceBA</interface>
+
+  <inboundSoapRequestInterceptor>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</inboundSoapRequestInterceptor>
+  <outboundSoapResponseInterceptor>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</outboundSoapResponseInterceptor>
+</service>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceAT.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceAT.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceAT.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<service>
+  <constructor>
+    <class>com.arjuna.xts.nightout.services.Theatre.TheatreServiceAT</class>
+  </constructor>
+  <description>Theatre (Atomic Transaction) service</description>
+
+  <interface>com.arjuna.xts.nightout.services.Theatre.ITheatreService</interface>
+
+  <inboundSoapRequestInterceptor>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</inboundSoapRequestInterceptor>
+  <outboundSoapResponseInterceptor>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</outboundSoapResponseInterceptor>
+</service>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceBA.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceBA.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/TheatreServiceBA.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+
+<service>
+  <constructor>
+    <class>com.arjuna.xts.nightout.services.Theatre.TheatreServiceBA</class>
+  </constructor>
+  <description>Theatre (Business Activity) service</description>
+
+  <interface>com.arjuna.xts.nightout.services.Theatre.ITheatreServiceBA</interface>
+
+  <inboundSoapRequestInterceptor>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</inboundSoapRequestInterceptor>
+  <outboundSoapResponseInterceptor>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</outboundSoapResponseInterceptor>
+</service>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/glue-config.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/glue-config.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/glue-config.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,1958 @@
+<!--
+  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.
+-->
+
+<!--
+  Welcome to the Glue configuration file.
+
+  A copy of this file is located in glue.jar with the name "glue-default-config.xml".
+  If Glue runs a web application and no "glue-config.xml" is found in the application's
+  class path or WEB-INF directory, the file "glue-default-config.xml" is used instead.
+
+  If the newapp utility is used to create a skeleton J2EE application structure,
+  this file is copied from <GLUE-HOME>/app-template/WEB-INF/glue-config.xml
+  into the new application's WEB-INF directory.
+
+  The configuration file is comprised of the following sections:
+
+  PRODUCT INFORMATION
+    - the product name and version information
+
+  SERVER SETTINGS
+    - specifies the URL of the application's web server and optional JMS servers
+
+  BASE WEB.XML MAPPINGS
+    - specifies the base web-app mappings that are added to the ones in web.xml
+
+  MAP FILE LIST
+    - if Glue is hosted in an old servlet 2.1 container, this section is used to
+      list all the map files in WEB-INF\maps
+
+  SERVICE DESCRIPTOR LIST
+    - if Glue is hosted in an old servlet 2.1 container, this section is used to
+      list all the service descriptors in WEB-INF\services
+
+  STARTUP COMMANDS
+    - lists static methods to invoke on application startup
+
+  LOGGING
+    - configures logging channels
+    - sets log file
+    - sets the format of logged events
+
+  INSTRUMENTATION
+    - enables/disables instrumentation of web services and/or http messaging
+
+  HOT DEPLOYMENT
+    - enables/disables hot deployment
+    - sets cycle time for monitoring changes
+
+  THREADS
+    - sets the thread pool size
+
+  SOCKETS
+    - sets socket timeout values, pool sizes, buffer sizes, and factories
+
+  SOCKET FACTORIES
+    - lists socket factories
+
+  MESSAGE FACTORIES
+    - lists message factories
+
+  HTTP
+    - sets http buffer sizes
+
+  HTTP PROXIES
+    - sets the host, port and authentication for an http proxy
+
+  SSL
+    - specifies authentication and cipher suites for ssl sockets
+
+  AUTHENTICATION
+    - lists realms
+    - sets default realm
+    - sets the default authentication method
+
+  WS-SECURITY
+    - lists predefined security templates
+
+  XML-SIGNATURES/ENCRYPTION
+    - canonicalization, signature and encryption algorithms
+
+  SESSIONS
+    - sets the session timeout value
+    - sets cycle time for checking sessions
+
+  SOAP HTTP
+    - sets the max retries for soap messages
+
+  SOAP INTERCEPTORS
+    - lists inbound and outbound soap interceptors
+
+  SOAP OPTIMIZATIONS
+    - enables/disables various soap message optimizations
+
+  SOAP OPERATION LOOKUP
+    - lists the factories for soap operation lookup
+
+  SOAP ATTACHMENTS
+    - lists the content id used for soap attachments
+    - sets the attachments buffer size
+
+  WSDL
+    - lists the wsdl bindings to generate
+    - sets the default target namespace
+    - lists the protocols to support
+
+  SERVICES
+    - sets the default messaging style
+    - sets the wrapper class for objects published as web services
+    - sets handlers for initializing a service from a descriptor
+
+  HOLDERS
+    - enable/disable JAX/RPC holders
+
+  SOAP HANDLER FACTORIES
+    - list of factories for creating server-side soap handler chain
+
+  SOAP REFERENCE FACTORIES
+    - list of factories for creating client-side soap reference chain
+
+  REGISTRIES
+    - registry chain for resolving publish/bind requests
+
+  LOAD BALANCER FACTORIES
+    - set up fabric load balancing
+
+  APPLICATION CONTEXT
+    - list of properties to add to application context at startup
+
+  MIME TYPES
+    - list of default mime type mappings
+
+  XPATHS
+    - set default xpath factory
+    - enable/disable xpath caching
+
+  JAXP
+    - set default dom and sax factories
+
+  XML/JAVA MAPPING
+    - enable/disable direct field access
+    - enable/disable property supression
+    - enable/disable java serialization
+    - set namespace prefix
+    - enable/disable type attributes when writing literals
+
+  TYPE FACTORIES
+    - lists type factories
+    - specify the default array type
+
+  XML SCHEMAS
+    - lists all supported xml schemas
+    - sets the default schema
+
+  XML ENCODINGS
+    - sets suggested encodings
+
+  HTTP ENCODINGS
+    - sets assumed encodings
+
+  SOAP ENCODINGS
+    - sets default encodings for soap messages
+
+  JMS ADAPTORS
+    - lists installed jms adapters
+
+  MANAGEMENT CONSOLE
+    - lists console panels
+
+  UDDI
+    - lists default tmodels
+
+  GENERAL FABRIC
+    - allows an application to automatically join fabric
+    
+  FABRIC SECURITY
+    - selects the realm to use as the fabric realm
+    - selects fabric username and password
+    - selects fabric key store and trust store
+
+  FABRIC DISCOVERY
+    - selects locator to use
+    - lists available locators
+
+  FABRIC XML DATABASE
+    - seconds between server syncs
+    - default replication factor
+    - factory for creating data stores
+
+  FABRIC ENDPOINT ACTIVITY
+    - seconds between keep-alive cycles
+    - seconds between check for rule updates
+
+  FABRIC LIVENESS CHECKING
+    - seconds between checking nodes for liveness
+    - seconds after which a dead node should be removed
+    - seconds between checking services for liveness
+    - seconds after which a dead service should be removed
+-->
+
+<config>
+  <!--***************************************************************-->
+  <!--PRODUCT INFORMATION-->
+  <!--***************************************************************-->
+
+  <!--name and version information-->
+  <product>
+    <name>Glue</name>
+    <version>
+      <major>5</major>
+      <minor>0</minor>
+      <patch>1</patch>
+    </version>
+  </product>
+
+
+  <!--***************************************************************-->
+  <!--SERVER SETTINGS-->
+  <!--***************************************************************-->
+
+  <!--web server-->
+  <!--this entry is only used when glue is running in standalone mode-->
+  <!--the runapp -p and -u options may be used to override this default url-->
+  <!--$APPNAME is replaced at runtime by the application name-->
+  <webServer>
+    <url>http://@hostname@:@port@/$APPNAME</url>
+  </webServer>
+
+  <!--jms/soap server (Glue professional only)-->
+  <!--$APPNAME is replaced at runtime by the application name-->
+  <!--
+    <url>jms:///$APPNAME</url>
+    <registryPath>/</registryPath>
+  </jmsSoapServer>
+  -->
+
+
+  <!--***************************************************************-->
+  <!--BASE WEB.XML MAPPINGS-->
+  <!--***************************************************************-->
+
+  <!--when glue is running in standalone mode and web.xml is-->
+  <!--read, any url patterns that are in this base web-app but not-->
+  <!--in the web.xml are automatically added. this feature is currently-->
+  <!--used to automatically add jsp support to user applications-->
+  <base-web-app>
+    <servlet>
+      <servlet-name>glue-jsp</servlet-name>
+      <servlet-class>electric.jsp.JSPServlet</servlet-class>
+      <load-on-startup>3</load-on-startup>
+      <!-- valid logVerbosityLevel settings are FATAL -->
+      <!-- ERROR, WARNING, INFORMATION and DEBUG -->
+      <!--
+      <init-param>
+        <param-name>logVerbosityLevel</param-name>
+        <param-value>DEBUG</param-value>
+      </init-param>
+      -->
+    </servlet>
+
+    <servlet-mapping>
+      <servlet-name>glue-jsp</servlet-name>
+      <url-pattern>*.jsp</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list>
+      <welcome-file>index.htm</welcome-file>
+      <welcome-file>index.html</welcome-file>
+      <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+  </base-web-app>
+
+
+  <!--***************************************************************-->
+  <!--MAP FILES-->
+  <!--***************************************************************-->
+
+  <mapFiles>
+    <!--list of map files to read from WEB-INF\maps-->
+    <!--only needed when Glue is hosted in a 3rd-party non-2.3 servlet engine-->
+    <!--attempts to load the same file twice are benign and ignored-->
+    <!--<path>mymap.map</path>-->
+  </mapFiles>
+
+
+  <!--***************************************************************-->
+  <!--SERVICE DESCRIPTORS-->
+  <!--***************************************************************-->
+
+  <serviceDescriptors>
+    <!--list of descriptors to read from WEB-INF\services-->
+    <!--only needed when Glue is hosted in a 3rd-party non-2.3 servlet engine-->
+    <!--attempts to load the same file twice are benign and ignored-->
+    <!-- <path>system/application.xml</path>
+    <path>system/console.xml</path>
+    <path>system/jndi.xml</path> -->
+  </serviceDescriptors>
+
+
+  <!--***************************************************************-->
+  <!--STARTUP COMMANDS-->
+  <!--***************************************************************-->
+
+  <!--list of static methods to invoke on startup-->
+  <!--a method is located using its qualified name and number of arguments-->
+  <!--if a formal argument is not a primitive or string, an instance is-->
+  <!--created by calling its constructor with the string as an argument-->
+  <!--
+  <command>
+    <invoke>mypackage.MyClass.foo()</invoke>
+    <invoke>mypackage.MyClass.bar( 42, "cats" )</invoke>
+  </command>
+  -->
+
+
+  <!--***************************************************************-->
+  <!--LOGGING-->
+  <!--***************************************************************-->
+
+  <logging>
+    <!-- each logger entry defines an instance of a logger to be used-->
+    <logger>
+      <name>default</name>
+      <constructor>
+        <class>electric.util.log.WriterLogger</class>
+        <args>
+          <!--log date and time?-->
+          <logDateTime>false</logDateTime>
+          <logDateTimeFormat>MM:dd:yy hh:mm:ss</logDateTimeFormat>
+          <!--log name of thread?-->
+          <logThreadName>false</logThreadName>
+          <!--log to file?-->
+          <logToFile>false</logToFile>
+          <!-- change this to a reasonable file name-->
+          <fileName>log/default.log</fileName>
+          <append>true</append>
+        </args>
+      </constructor>
+
+      <!--list of logging channels-->
+      <log enabled="yes">STARTUP</log>
+      <log enabled="yes">ERROR</log>
+      <log enabled="yes">COMMENT</log>
+      <log enabled="yes">WARNING</log>
+      <log enabled="yes">SCHEMA</log>
+      <log enabled="no">SECURITY</log>
+      <log enabled="no">SECURITY_DETAIL</log>
+      <log enabled="no">SECURITY_DEBUG</log>
+      <log enabled="no">CONSOLE_DEBUG</log>
+      <log enabled="no">DEPLOYMENT</log>
+      <log enabled="no">CLASSLOADER</log>
+      <log enabled="no">COMMAND</log>
+      <log enabled="no">EXCEPTION</log>
+      <log enabled="no">HTTP</log>
+      <log enabled="no">JMS</log>
+      <log enabled="no">MAPPING</log>
+      <log enabled="no">SERVLET</log>
+      <log enabled="no">SOAP</log>
+      <log enabled="no">SOURCE</log>
+      <log enabled="no">RESOURCES</log>
+
+      <!--fabric channels-->
+      <log enabled="yes">FAILOVER</log>
+      <log enabled="no">XDB_CLIENT</log>
+      <log enabled="no">XDB_SERVER</log>
+      <log enabled="no">XDB_SYNC</log>
+      <log enabled="no">LOCATOR</log>
+      <log enabled="no">INTERMEDIARY</log>
+      <log enabled="no">SERVICE_MANAGER</log>
+    </logger>
+  </logging>
+
+
+  <!--***************************************************************-->
+  <!--INSTRUMENTATION-->
+  <!--***************************************************************-->
+
+  <instrumentation>
+    <!--gather statistics for individual services?-->
+    <instrumentServices>yes</instrumentServices>
+
+    <!--gather statistics for individual http calls?-->
+    <instrumentHttp>yes</instrumentHttp>
+  </instrumentation>
+
+
+  <!--***************************************************************-->
+  <!--HOT DEPLOYMENT-->
+  <!--***************************************************************-->
+
+  <hotDeployment>
+    <!--enable hot deployment?-->
+    <enabled>no</enabled>
+
+    <!--milliseconds between checks for resource changes-->
+    <syncCycle>5000</syncCycle>
+  </hotDeployment>
+
+
+  <!--***************************************************************-->
+  <!--THREADS-->
+  <!--***************************************************************-->
+
+  <!--maximum number of threads in shared thread pool-->
+  <threadPoolSize>70</threadPoolSize>
+
+
+  <!--***************************************************************-->
+  <!--SOCKETS-->
+  <!--***************************************************************-->
+
+  <sockets>
+    <!--max socket connections kept alive in server-side socket pool-->
+    <maxInboundKeepAlive>50</maxInboundKeepAlive>
+
+    <!--max socket connections kept alive in client-side socket pool-->
+    <maxOutboundKeepAlive>30</maxOutboundKeepAlive>
+
+    <!--keep alive connections by default?-->
+    <keepAlive>yes</keepAlive>
+
+    <!--timeout in milliseconds for a client reading a response, 0 => infinite-->
+    <clientReadTimeout>0</clientReadTimeout>
+
+    <!--timeout in milliseconds for a server reading a request, 0 => infinite-->
+    <serverReadTimeout>15000</serverReadTimeout>
+
+    <!--buffer size in bytes for socket streams-->
+    <bufferSize>8192</bufferSize>
+
+    <!--max queue length for incoming connection requests-->
+    <backlog>200</backlog>
+  </sockets>
+
+
+  <!--***************************************************************-->
+  <!--SOCKET FACTORIES-->
+  <!--***************************************************************-->
+
+  <!--list of socket factories-->
+  <socketFactories>
+    <factory>electric.net.socket.tcp.TCPSocketFactory</factory>
+    <factory>electric.net.socket.ssl.SSLSocketFactory</factory>
+  </socketFactories>
+
+
+  <!--***************************************************************-->
+  <!--SERVLET MESSAGE FACTORIES-->
+  <!--***************************************************************-->
+
+  <!--list of servlet message factories-->
+  <messageFactories>
+    <factory>electric.webserver.messages.tcp.TCPMessageFactory</factory>
+    <factory>electric.webserver.messages.ssl.SSLMessageFactory</factory>
+  </messageFactories>
+
+
+  <!--***************************************************************-->
+  <!--HTTP-->
+  <!--***************************************************************-->
+
+  <http>
+    <!--buffer size in bytes for streaming http responses-->
+    <responseBufferSize>2048</responseBufferSize>
+
+    <!--buffer size in bytes for copying files from docbase to http response-->
+    <copyBufferSize>16384</copyBufferSize>
+
+    <!--the default http authentication method (basic/digest)-->
+    <defaultAuthMethod>basic</defaultAuthMethod>
+  </http>
+
+
+  <!--***************************************************************-->
+  <!--HTTP PROXIES-->
+  <!--***************************************************************-->
+
+  <!--
+  <httpProxy>
+    <host>proxyhost</host>
+    <port>8000</port>
+    <user>username</user>
+    <password>password</password>
+  </httpProxy>
+  -->
+
+
+  <!--***************************************************************-->
+  <!--SSL-->
+  <!--***************************************************************-->
+
+  <ssl>
+    <!--glue server asks clients for ssl certificates? if the client-->
+    <!--does not send a certificate, or if the client cert is not in the-->
+    <!--server's trust store, the request will be rejected.-->
+    <serverNeedsClientAuth>no</serverNeedsClientAuth>
+
+    <!--glue client forced to ssl server mode (with client auth)? this-->
+    <!--setting is useful only with unusual configurations, and should-->
+    <!--not normally be changed.-->
+    <clientNeedsClientAuth>no</clientNeedsClientAuth>
+
+    <!--cipher suites for client sockets-->
+    <clientCipherSuite>SSL_DH_anon_WITH_RC4_128_MD5</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_WITH_DES_CBC_SHA</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</clientCipherSuite>
+    <clientCipherSuite>SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA</clientCipherSuite>
+
+    <!--cipher suites for server sockets-->
+    <serverCipherSuite>SSL_DH_anon_WITH_RC4_128_MD5</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_WITH_DES_CBC_SHA</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</serverCipherSuite>
+    <serverCipherSuite>SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA</serverCipherSuite>
+  </ssl>
+
+
+  <!--***************************************************************-->
+  <!--AUTHENTICATION-->
+  <!--***************************************************************-->
+
+  <realms>
+    <!--the default realm-->
+    <!--<defaultRealm>acl</defaultRealm>-->
+
+    <!--list of realms, used by security guards to authenticate clients-->
+    <!--
+    <realm>
+      <constructor>
+        <class>electric.security.acl.ACLRealm</class>
+        <args>
+          <name>acl</name>
+          <path>security\acl.xml</path>
+        </args>
+      </constructor>
+    </realm>
+    -->
+
+    <!--
+    <realm>
+      <constructor>
+        <class>electric.security.jaas.JAASRealm</class>
+        <args>
+          <name>jaas</name>
+          <config>security\jaas.config</config>
+        </args>
+      </constructor>
+    </realm>
+    -->
+
+    <realm>
+      <constructor>
+        <class>com.webmethods.fabric.security.realm.FabricRealm</class>
+        <args>
+          <realmName>realm</realmName>
+          <fabricUser>fabric</fabricUser>
+          <!--<fabricPassword>changeit</fabricPassword>-->
+          <fabricRoles>read,write</fabricRoles>
+        </args>
+      </constructor>
+    </realm>
+
+  </realms>
+
+
+  <!--***************************************************************-->
+  <!--WS-SECURITY -->
+  <!--***************************************************************-->
+
+  <!--ws-security depends on the xml-canonicalization, xml-signature-->
+  <!--and xml-encryption specifications. to use these algorithms it-->
+  <!--may be necessary to uncomment the jaxen xpath factory listed-->
+  <!--in the xpath section-->
+  <wsSecurity>
+    <!--template that specifies that outgoing soap requests-->
+    <!--have the entire soap body element signed-->
+    <!--
+    <signatureTemplate>
+      <name>ExampleSignature</name>
+      <reference>soap:Envelope/soap:Body</reference>
+      <keyStore>clientcert</keyStore>
+      <keyStorePassword>changeit</keyStorePassword>
+      <alias>test</alias>
+    </signatureTemplate>
+    -->
+
+    <!--template that specifies encryption of the body-->
+    <!--contents of outgoing soap requests with the given-->
+    <!--user and key-->
+    <!--
+    <encryptionTemplate>
+      <name>ExampleEncryptionTemplate</name>
+      <reference>soap:Envelope/soap:Body/*</reference>
+      <secretKey>
+        <user>crypto</user>
+        <base64Key>kn89W7byFYz4EOXWs0UxnpJ/PVu28hWM</base64Key>
+      </secretKey>
+    </encryptionTemplate>
+    -->
+  </wsSecurity>
+
+
+  <!--***************************************************************-->
+  <!--XML SIGNATURES/ENCRYPTION -->
+  <!--***************************************************************-->
+
+  <xmlCanonicalization>
+    <factory>
+      <id>http://www.w3.org/2001/10/xml-exc-c14n</id>
+      <class>electric.soap.security.signature.xml.canonical.ExclusiveFactory</class>
+    </factory>
+
+    <factory>
+      <id>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</id>
+      <class>electric.soap.security.signature.xml.canonical.CanonicalFactory</class>
+    </factory>
+  </xmlCanonicalization>
+
+  <xmlSignature>
+    <signatureAlgorithm>
+      <id>http://www.w3.org/2000/09/xmldsig#rsa-sha1</id>
+      <class>electric.soap.security.signature.xml.crypto.SHA1withRSA</class>
+    </signatureAlgorithm>
+
+    <signatureAlgorithm>
+      <id>http://www.w3.org/2000/09/xmldsig#hmac-sha1</id>
+      <class>electric.soap.security.signature.xml.crypto.HMACwithSHA1</class>
+    </signatureAlgorithm>
+  </xmlSignature>
+
+  <xmlEncryption>
+    <encryptionAlgorithm>
+      <id>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</id>
+      <class>electric.soap.security.encryption.xml.crypto.TripleDESCBC</class>
+    </encryptionAlgorithm>
+  </xmlEncryption>
+
+
+  <!--***************************************************************-->
+  <!--SESSIONS-->
+  <!--***************************************************************-->
+
+  <sessions>
+    <!--session timeout in seconds-->
+    <timeout>300</timeout>
+
+    <!--milliseconds between checks for session expiration-->
+    <reapCycle>60000</reapCycle>
+  </sessions>
+
+
+  <!--***************************************************************-->
+  <!--SOAP HTTP-->
+  <!--***************************************************************-->
+
+  <soapHttp>
+    <!--max number of retries for soap invocations-->
+    <invokeMaxRetry>2</invokeMaxRetry>
+  </soapHttp>
+
+
+  <!--***************************************************************-->
+  <!--SOAP INTERCEPTORS-->
+  <!--***************************************************************-->
+
+  <soapInterceptors>
+    <!--list of interceptors for outbound soap responses-->
+    <!--<outboundSoapResponseInterceptor>pkg.MyInterceptor</outboundSoapResponseInterceptor>-->
+
+    <!--list of interceptors for outbound soap requests-->
+    <!--<outboundSoapRequestInterceptor>pkg.MyInterceptor</outboundSoapRequestInterceptor>-->
+	<outboundSoapRequestInterceptor>com.arjuna.mw.wst.client.GlueOutgoingContextInterceptor</outboundSoapRequestInterceptor>
+
+    <!--list of interceptors for inbound soap responses-->
+    <!--<inboundSoapResponseInterceptor>pkg.MyInterceptor</inboundSoapResponseInterceptor>-->
+	<inboundSoapResponseInterceptor>com.arjuna.mw.wst.client.GlueIncomingContextInterceptor</inboundSoapResponseInterceptor>
+
+    <!--list of interceptors for inbound soap requests-->
+    <!--<inboundSoapRequestInterceptor>pkg.MyInterceptor</inboundSoapRequestInterceptor>-->
+  </soapInterceptors>
+
+
+  <!--***************************************************************-->
+  <!--SOAP OPTIMIZATIONS-->
+  <!--***************************************************************-->
+
+  <soapOptimizations>
+    <!--omit xsi:type attributes when possible?-->
+    <typeOmission>yes</typeOmission>
+
+    <!--dynamically compress tags? (glue to glue only)-->
+    <tagSubstitution>yes</tagSubstitution>
+
+    <!--omit envelope when there's just a simple body? (glue to glue only)-->
+    <envelopeOmission>yes</envelopeOmission>
+
+    <!--inline hrefs? (glue to glue only)-->
+    <hrefInlining>yes</hrefInlining>
+  </soapOptimizations>
+
+
+  <!--***************************************************************-->
+  <!--SOAP OPERATION LOOKUP-->
+  <!--***************************************************************-->
+
+  <soapOperationLookupFactories>
+    <!--list of operation lookup factories-->
+    <factory>electric.soap.local.handlers.service.rpc.RPCOperationLookupFactory</factory>
+    <factory>electric.soap.local.handlers.service.wrapped.WrappedOperationLookupFactory</factory>
+  </soapOperationLookupFactories>
+
+
+  <!--***************************************************************-->
+  <!--SOAP ATTACHMENTS-->
+  <!--***************************************************************-->
+
+  <soapAttachments>
+    <!--default style, may be overridden in service descriptors-->
+    <defaultStyle>mime</defaultStyle>
+
+    <!--content id of soap message inside of attachments-->
+    <rootContentId>http://www.webmethods.com/rootpart.xml</rootContentId>
+
+    <!--buffer size in bytes for writing soap requests in soap Attachments-->
+    <streamSourceBufferSize>2048</streamSourceBufferSize>
+  </soapAttachments>
+
+
+  <!--***************************************************************-->
+  <!--WSDL-->
+  <!--***************************************************************-->
+
+  <wsdl>
+    <!--list of bindings-->
+    <binding>soap</binding>
+    <!--<binding>getpost</binding>-->
+
+    <!--target namespace prefix-->
+    <targetNamespacePrefix>http://www.webmethods.com/wsdl/</targetNamespacePrefix>
+
+    <!--target namespace (overrides use of target namespace prefix)-->
+    <!--<targetNamespace>http://www.mytarget.com/mynamespace</targetNamespace>-->
+
+    <!--list of get/post protocols-->
+    <getPostProtocol>http</getPostProtocol>
+    <getPostProtocol>https</getPostProtocol>
+
+    <!-- process wsdl faults -->
+    <wsdlFaults>true</wsdlFaults>
+
+    <!-- generate stack traces on faults -->
+    <enableStackTraces>false</enableStackTraces>
+
+    <!-- allow java.lang.Errors to be thrown from services-->
+    <transmitErrors>false</transmitErrors>
+  </wsdl>
+
+
+  <!--***************************************************************-->
+  <!--SERVICES-->
+  <!--***************************************************************-->
+
+  <services>
+    <!--default messaging style (rpc/document)-->
+    <defaultStyle>rpc</defaultStyle>
+
+    <!--wrapper class for objects published as web services-->
+    <wrapper>electric.service.object.ObjectService</wrapper>
+
+    <!--list of handlers for initializing a service from a descriptor-->
+    <initializer>electric.service.descriptor.initializer.Default</initializer>
+    <initializer>electric.service.descriptor.initializer.Security</initializer>
+    <initializer>electric.service.descriptor.initializer.Role</initializer>
+    <initializer>electric.service.descriptor.initializer.ServiceContext</initializer>
+    <initializer>electric.service.descriptor.initializer.Attachments</initializer>
+    <initializer>electric.soap.security.initializer.Security</initializer>
+  </services>
+
+
+  <!--***************************************************************-->
+  <!--HOLDERS-->
+  <!--***************************************************************-->
+
+  <!--use jax/rpc holders?-->
+  <jaxRpcHolders>no</jaxRpcHolders>
+
+
+  <!--***************************************************************-->
+  <!--SOAP HANDLER FACTORIES-->
+  <!--***************************************************************-->
+
+  <soapHandlerFactories>
+    <!--setup handler-->
+    <factory>
+      <name>setup</name>
+      <constructor>
+        <class>electric.soap.handlers.setup.SetupHandlerFactory</class>
+      </constructor>
+      <priority>1</priority>
+    </factory>
+
+    <!--logging-->
+    <factory>
+      <name>logging</name>
+      <constructor>
+        <class>electric.soap.handlers.logging.SOAPLoggingHandlerFactory</class>
+      </constructor>
+      <priority>2</priority>
+    </factory>
+
+    <!--ws-routing-->
+    <factory>
+      <name>ws-routing</name>
+      <constructor>
+        <class>electric.soap.routing.RoutingHandlerFactory</class>
+      </constructor>
+      <priority>3</priority>
+    </factory>
+
+    <!--user-defined interceptors-->
+    <factory>
+      <name>interceptors</name>
+      <constructor>
+        <class>electric.soap.handlers.interceptor.SOAPInterceptorHandlerFactory</class>
+      </constructor>
+      <priority>4</priority>
+    </factory>
+
+    <!--ws-security-->
+    <factory>
+      <name>ws-security</name>
+      <constructor>
+        <class>electric.soap.security.handlers.SecurityHandlerFactory</class>
+      </constructor>
+      <priority>5</priority>
+    </factory>
+
+    <!--objects that implement IService-->
+    <factory>
+      <name>soap-to-service</name>
+      <constructor>
+        <class> electric.soap.local.handlers.service.SOAPToServiceHandlerFactory </class>
+      </constructor>
+      <priority>6</priority>
+    </factory>
+
+    <!--objects that implement ISOAPHandler-->
+    <factory>
+      <name>soap-to-user-handler</name>
+      <constructor>
+        <class> electric.soap.local.handlers.user.SOAPToUserHandlerFactory </class>
+      </constructor>
+      <priority>7</priority>
+    </factory>
+  </soapHandlerFactories>
+
+
+  <!--***************************************************************-->
+  <!--SOAP REFERENCE FACTORIES-->
+  <!--***************************************************************-->
+
+  <soapReferenceFactories>
+    <!--user-defined interceptors-->
+    <factory>
+      <name>interceptors</name>
+      <constructor>
+        <class>electric.soap.references.interceptor.InterceptorSOAPReferenceFactory</class>
+      </constructor>
+      <priority>1</priority>
+    </factory>
+
+    <!--ws-routing-->
+    <factory>
+      <name>ws-routing</name>
+      <constructor>
+        <class>electric.soap.routing.RoutingReferenceFactory</class>
+      </constructor>
+      <priority>2</priority>
+    </factory>
+
+    <!--ws-security-->
+    <factory>
+      <name>ws-security</name>
+      <constructor>
+        <class>electric.soap.security.references.SecuritySOAPReferenceFactory</class>
+      </constructor>
+      <priority>3</priority>
+    </factory>
+
+    <!--logging-->
+    <factory>
+      <name>logging</name>
+      <constructor>
+        <class>electric.soap.references.logging.LoggingSOAPReferenceFactory</class>
+      </constructor>
+      <priority>4</priority>
+    </factory>
+
+    <!--transport: soap to local service loaded by different classloader-->
+    <factory>
+      <name>soap-local</name>
+      <constructor>
+        <class>electric.soap.local.reference.SOAPLocalTransportFactory</class>
+      </constructor>
+      <priority>5</priority>
+    </factory>
+
+    <!--transport: soap over http-->
+    <factory>
+      <name>soap-to-http</name>
+      <constructor>
+        <class>electric.soap.http.reference.SOAPToHTTPFactory</class>
+      </constructor>
+      <priority>6</priority>
+    </factory>
+
+    <!--transport: soap over jms-->
+    <factory>
+      <name>soap-to-jms</name>
+      <constructor>
+        <class>electric.soap.jms.reference.SOAPToJMSFactory</class>
+      </constructor>
+      <priority>6</priority>
+    </factory>
+  </soapReferenceFactories>
+
+
+  <!--***************************************************************-->
+  <!--LOAD BALANCER FACTORIES-->
+  <!--***************************************************************-->
+
+  <loadBalancerFactories>
+    <!-- always succeeds, so anything after this will never be used -->
+    <factory>
+      <constructor>
+        <class>com.webmethods.fabric.services.reference.balance.RoundRobinFactory</class>
+      </constructor>
+    </factory>
+
+    <!-- like round robin, but rebind every cycleTime milliseconds. -->
+    <!-- this is an unsupported class -->
+    <factory>
+      <constructor>
+        <class>com.webmethods.fabric.services.reference.balance.RoundRobinReloadFactory</class>
+        <args>
+          <defaultCycleTime>60000</defaultCycleTime> <!-- 1 minute, in milliseconds -->
+        </args>
+      </constructor>
+    </factory>
+  </loadBalancerFactories>
+
+
+  <!--***************************************************************-->
+  <!--REGISTRIES-->
+  <!--***************************************************************-->
+
+  <registries>
+    <!--local services-->
+    <registry>
+      <name>local</name>
+      <constructor>
+        <class>electric.registry.local.LocalRegistry</class>
+      </constructor>
+      <priority>3</priority>
+    </registry>
+
+    <!--remote soap services-->
+    <registry>
+      <name>soap</name>
+      <constructor>
+        <class>electric.soap.registry.SOAPRegistry</class>
+      </constructor>
+      <priority>4</priority>
+    </registry>
+
+    <!--services hosted in the same vm, but different applications-->
+    <registry>
+      <name>crossapplication</name>
+      <constructor>
+        <class>electric.soap.registry.CrossApplicationRegistry</class>
+      </constructor>
+      <priority>5</priority>
+    </registry>
+  </registries>
+
+
+  <!--***************************************************************-->
+  <!--APPLICATION CONTEXT-->
+  <!--***************************************************************-->
+
+  <!--list of properties to be added into application context-->
+  <applicationContext>
+    <!--
+    <simple>foo</simple>
+      <complex>
+        <x>10</x>
+        <y>20</y>
+      </complex>
+    -->
+  </applicationContext>
+
+
+  <!--***************************************************************-->
+  <!--MIME TYPES-->
+  <!--***************************************************************-->
+
+  <!--list of mime types recognized by web server-->
+  <mimeTypes>
+    <mimeType>
+      <extension/>
+      <type>text/plain</type>
+    </mimeType>
+    <mimeType>
+      <extension>avi</extension>
+      <type>video/x-msvideo</type>
+    </mimeType>
+    <mimeType>
+      <extension>bmp</extension>
+      <type>image/bmp</type>
+    </mimeType>
+    <mimeType>
+      <extension>class</extension>
+      <type>application/java</type>
+    </mimeType>
+    <mimeType>
+      <extension>css</extension>
+      <type>text/css</type>
+    </mimeType>
+    <mimeType>
+      <extension>dll</extension>
+      <type>application/octet-stream</type>
+    </mimeType>
+    <mimeType>
+      <extension>doc</extension>
+      <type>application/msword</type>
+    </mimeType>
+    <mimeType>
+      <extension>exe</extension>
+      <type>application/octet-stream</type>
+    </mimeType>
+    <mimeType>
+      <extension>gif</extension>
+      <type>image/gif</type>
+    </mimeType>
+    <mimeType>
+      <extension>gz</extension>
+      <type>application/x-gzip</type>
+    </mimeType>
+    <mimeType>
+      <extension>htm</extension>
+      <type>text/html</type>
+    </mimeType>
+    <mimeType>
+      <extension>html</extension>
+      <type>text/html</type>
+    </mimeType>
+    <mimeType>
+      <extension>jar</extension>
+      <type>application/java-archive</type>
+    </mimeType>
+    <mimeType>
+      <extension>jpeg</extension>
+      <type>image/jpeg</type>
+    </mimeType>
+    <mimeType>
+      <extension>jpg</extension>
+      <type>image/jpeg</type>
+    </mimeType>
+    <mimeType>
+      <extension>js</extension>
+      <type>text/javascript</type>
+    </mimeType>
+    <mimeType>
+      <extension>mov</extension>
+      <type>video/quicktime</type>
+    </mimeType>
+    <mimeType>
+      <extension>mpg</extension>
+      <type>video/mpeg</type>
+    </mimeType>
+    <mimeType>
+      <extension>pdf</extension>
+      <type>application/pdf</type>
+    </mimeType>
+    <mimeType>
+      <extension>png</extension>
+      <type>image/png</type>
+    </mimeType>
+    <mimeType>
+      <extension>ppt</extension>
+      <type>application/vnd.ms-powerpoint</type>
+    </mimeType>
+    <mimeType>
+      <extension>ps</extension>
+      <type>application/postscript</type>
+    </mimeType>
+    <mimeType>
+      <extension>rtf</extension>
+      <type>application/rtf</type>
+    </mimeType>
+    <mimeType>
+      <extension>so</extension>
+      <type>application/octet-stream</type>
+    </mimeType>
+    <mimeType>
+      <extension>swf</extension>
+      <type>application/x-shockwave-flash</type>
+    </mimeType>
+    <mimeType>
+      <extension>tar</extension>
+      <type>application/x-tar</type>
+    </mimeType>
+    <mimeType>
+      <extension>tif</extension>
+      <type>image/tiff</type>
+    </mimeType>
+    <mimeType>
+      <extension>tiff</extension>
+      <type>image/tiff</type>
+    </mimeType>
+    <mimeType>
+      <extension>txt</extension>
+      <type>text/plain</type>
+    </mimeType>
+    <mimeType>
+      <extension>wav</extension>
+      <type>audio/x-wav</type>
+    </mimeType>
+    <mimeType>
+      <extension>wml</extension>
+      <type>text/vnd.wap.wml</type>
+    </mimeType>
+    <mimeType>
+      <extension>wmlc</extension>
+      <type>application/vnd.wap.wmlc</type>
+    </mimeType>
+    <mimeType>
+      <extension>wmls</extension>
+      <type>application/vnd.wap.wmlscript</type>
+    </mimeType>
+    <mimeType>
+      <extension>wmlsc</extension>
+      <type>application/vnd.wap.wmlscriptc</type>
+    </mimeType>
+    <mimeType>
+      <extension>wsdl</extension>
+      <type>text/xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xht</extension>
+      <type>application/xhtml+xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xhtml</extension>
+      <type>application/xhtml+xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xls</extension>
+      <type>application/vnd.ms-excel</type>
+    </mimeType>
+    <mimeType>
+      <extension>xml</extension>
+      <type>text/xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>xsl</extension>
+      <type>text/xml</type>
+    </mimeType>
+    <mimeType>
+      <extension>zip</extension>
+      <type>application/zip</type>
+    </mimeType>
+  </mimeTypes>
+
+
+  <!--***************************************************************-->
+  <!--XPATHS-->
+  <!--***************************************************************-->
+
+  <xpath>
+    <!--factory to use for creating xpaths?-->
+    <factory>electric.xml.xpath.TMEXPathFactory</factory>
+
+    <!-- needed for ws-security, this factory requires that the -->
+    <!-- jaxen implementation jars are available on the classpath -->
+    <factory>electric.xml.jaxen.JaxenXPathFactory</factory>
+
+    <!--cache xpaths by default?-->
+    <cacheByDefault>yes</cacheByDefault>
+  </xpath>
+
+
+  <!--***************************************************************-->
+  <!--JAXP-->
+  <!--***************************************************************-->
+
+  <jaxp>
+    <DOMFactory>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</DOMFactory>
+    <SAXFactory>org.apache.xerces.jaxp.SAXParserFactoryImpl</SAXFactory>
+  </jaxp>
+
+
+  <!--***************************************************************-->
+  <!--XML/JAVA MAPPING-->
+  <!--***************************************************************-->
+
+  <javaMapping>
+    <!--use direct field access?-->
+    <directFieldAccess>yes</directFieldAccess>
+
+    <!--suppress javabean properties if at least one public field?-->
+    <propertySuppression>yes</propertySuppression>
+
+    <!--use java serialization by default?-->
+    <useJavaSerializationByDefault>no</useJavaSerializationByDefault>
+
+    <!--
+    namespace prefixes that use the glue extended form for package mappings.
+    primary means that this is the one that glue uses to produce a namespace for a package.
+    last primary wins.
+    -->
+    <understoodNamespacePrefix primary="true">http://www.webmethods.com/package/</understoodNamespacePrefix>
+    <understoodNamespacePrefix>http://www.themindelectric.com/package/</understoodNamespacePrefix>
+
+    <!--include xsi:type attributes when writing in literal mode?-->
+    <writeTypesForLiteral>yes</writeTypesForLiteral>
+  </javaMapping>
+
+
+  <!--***************************************************************-->
+  <!--TYPE FACTORIES-->
+  <!--***************************************************************-->
+
+  <typeFactories>
+    <!--list of type factories (order is significant)-->
+    <factory>electric.xml.io.mapping.MappingTypeFactory</factory>
+    <factory>electric.xml.io.array.ArrayTypeFactory</factory>
+    <factory>electric.xml.io.elements.ElementTypeFactory</factory>
+    <factory>electric.xml.io.serialize.SerializeTypeFactory</factory>
+    <factory>electric.xml.io.simple.SimpleTypeFactory</factory>
+    <factory>electric.xml.io.complex.ComplexTypeFactory</factory>
+
+    <defaultArrayType>electric.xml.io.array.ArrayType</defaultArrayType>
+  </typeFactories>
+
+
+  <!--***************************************************************-->
+  <!--XML SCHEMAS-->
+  <!--***************************************************************-->
+
+  <schema>
+    <!--list of xsd versions-->
+    <xsd>http://www.w3.org/1999/XMLSchema</xsd>
+    <xsd>http://www.w3.org/2000/10/XMLSchema</xsd>
+    <xsd>http://www.w3.org/2001/XMLSchema</xsd>
+
+    <!--default xsd version to be used during publishing-->
+    <defaultXSD>http://www.w3.org/2001/XMLSchema</defaultXSD>
+    <defaultMinOccurs>1</defaultMinOccurs>
+
+    <!--namespace prefix-->
+    <namespacePrefix>http://www.webmethods.com/</namespacePrefix>
+  </schema>
+
+
+  <!--***************************************************************-->
+  <!--XML ENCODINGS-->
+  <!--***************************************************************-->
+
+  <xmlEncodings>
+    <!--list of encodings to try in order when decyphering an xml document-->
+    <encoding>UTF-16BE</encoding>
+    <encoding>UTF-16LE</encoding>
+    <encoding>cp037</encoding>
+    <encoding>UTF8</encoding>
+  </xmlEncodings>
+
+
+  <!--***************************************************************-->
+  <!--HTTP ENCODINGS-->
+  <!--***************************************************************-->
+
+  <httpEncoding>
+    <!--some protocols declare things bytes, but are used as Strings/char[]s-->
+    <!--internally for other reasons. basic authentication in http is a-->
+    <!--good example of this. this setting is used to set the encoding to-->
+    <!--use for those situations.-->
+    <assumed>UTF8</assumed>
+
+    <!--http requires that certain things be in ascii (the method/version of-->
+    <!--request, and the status of the response. in japan, and other asian-->
+    <!--countries, however, the request-uri of the service or file could contain-->
+    <!--Shift-JIS or KOI-8 characters. since there is no way to represent these-->
+    <!--in ascii, we offer this setting to control this behaviour. the encoding-->
+    <!--specified should be ascii compliant, or you will have problems-->
+    <!--communicating with other http compliant servers and clients-->
+    <protocol>UTF8</protocol>
+  </httpEncoding>
+
+
+  <!--***************************************************************-->
+  <!--SOAP ENCODINGS-->
+  <!--***************************************************************-->
+
+  <soapEncoding>
+    <!--character encoding for soap documents-->
+    <!--<xmlEncoding>UTF-8</xmlEncoding>-->
+
+    <!--use system default encoding for soap documents?-->
+    <useSystemDefault>no</useSystemDefault>
+  </soapEncoding>
+
+
+  <!--***************************************************************-->
+  <!--JMS ADAPTERS-->
+  <!--***************************************************************-->
+
+  <jms>
+    <!--list of built-in jms adaptors-->
+    <adapter>electric.server.jms.tibco.TibcoAdapter</adapter>
+    <adapter>electric.server.jms.swiftmq.SwiftMQAdapter</adapter>
+    <adapter>electric.server.jms.j2ee.J2EEAdapter</adapter>
+    <adapter>electric.server.jms.mqseries.MQSeriesAdapter</adapter>
+    <adapter>electric.server.jms.sonicmq.SonicMQAdapter</adapter>
+    <adapter>electric.server.jms.jbossmq.JBossMQAdapter</adapter>
+  </jms>
+
+
+  <!--***************************************************************-->
+  <!--CONSOLE-->
+  <!--***************************************************************-->
+
+  <console>
+    <!--enable the console by default?-->
+    <enabled>yes</enabled>
+
+    <!--title for console home page-->
+    <title>Glue Management Console</title>
+
+    <product productName='Glue Professional' treeLabel='Glue' detailsPanelURL='console/glue/glue-details.swf' helpFileURL='console/glue/gluePanelHelp.xml' serviceURL='console/system/console' consoleService='electric.console.services.glue.Glue'>
+      <module>
+        <title>Product</title>
+        <detailsPanelURL>console/glue/licensing/licensing-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/licensing/licensingPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.licensing.Licensing</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>System</title>
+        <detailsPanelURL>console/glue/system/systeminfo-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/system/systemPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.system.System</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>HTTP</title>
+        <detailsPanelURL>console/glue/http/connections-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/http/httpPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.connections.Connections</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Services</title>
+        <detailsPanelURL>console/glue/services/services-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/services/servicesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.services.Services</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Servlets</title>
+        <detailsPanelURL>console/glue/servlets/servlet-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/servlets/servletPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.servlets.Servlets</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Threads</title>
+        <detailsPanelURL>console/glue/threads/threads-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/threads/threadsPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.threads.Threads</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+
+      <module>
+        <title>Logging</title>
+        <detailsPanelURL>console/glue/logging/logging-details.swf</detailsPanelURL>
+        <helpFileURL>console/glue/logging/loggingPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.pro.console.services.log.Logging</consoleService>
+        <productName>Glue Professional</productName>
+      </module>
+    </product>
+
+    <product productName='Glue Enterprise' treeLabel='Glue' detailsPanelURL='console/glue/glue-details.swf' helpFileURL='console/glue/gluePanelHelp.xml' serviceURL='console/system/console' consoleService='electric.console.services.glue.Glue'>
+      <module>
+         <title>Cluster</title>
+         <detailsPanelURL>console/clusters/cluster/cluster-details.swf</detailsPanelURL>
+         <helpFileURL>console/clusters/cluster/clusterPanelHelp.xml</helpFileURL>
+         <serviceURL>console/system/console</serviceURL>
+         <consoleService>electric.glue.enterprise.console.services.cluster.Cluster</consoleService>
+         <productName>Glue Enterprise</productName>
+      </module>
+
+      <module>
+        <title>Application</title>
+        <detailsPanelURL>console/clusters/application/application-details.swf</detailsPanelURL>
+        <helpFileURL>console/clusters/application/applicationPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>electric.glue.enterprise.console.services.application.Application</consoleService>
+        <productName>Glue Enterprise</productName>
+      </module>
+
+    </product>
+
+    <product productName='Fabric' treeLabel='Fabric' detailsPanelURL='console/fabric/fabric-details.swf' helpFileURL='console/fabric/fabricPanelHelp.xml' serviceURL='console/system/console' consoleService='electric.console.services.fabric.Fabric'>
+
+      <module>
+        <title>Nodes</title>
+        <detailsPanelURL>console/fabric/nodes/nodes-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/nodes/nodesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.nodes.Nodes</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Web Services</title>
+        <detailsPanelURL>console/fabric/services/services-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/services/servicesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.services.Services</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Log</title>
+        <detailsPanelURL>console/fabric/log/log-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/log/logPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.log.Log</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Rules</title>
+        <detailsPanelURL>console/fabric/rules/rules-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/rules/rulesPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.rules.Rules</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Security</title>
+        <detailsPanelURL>console/fabric/security/security-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/security/securityPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.security.Security</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Databases</title>
+        <detailsPanelURL>console/fabric/database/database-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/database/databasePanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.database.Database</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+      <module>
+        <title>Configuration</title>
+        <detailsPanelURL>console/fabric/configuration/configuration-details.swf</detailsPanelURL>
+        <helpFileURL>console/fabric/configuration/configurationPanelHelp.xml</helpFileURL>
+        <serviceURL>console/system/console</serviceURL>
+        <consoleService>com.webmethods.fabric.console.services.configuration.Configuration</consoleService>
+        <productName>Fabric</productName>
+      </module>
+
+    </product>
+
+    <!-- <handler>electric.console.handlers.IConsoleHandler</handler>
+    <handler>electric.console.handlers.DefaultHandler</handler>
+    <handler>electric.console.handlers.LayoutHandler</handler>
+    <handler>electric.console.handlers.ResourceHandler</handler>
+    <handler>electric.console.handlers.ServiceHandler</handler> -->
+    <handler>electric.glue.pro.console.handlers.LoggingHandler</handler>
+    <handler>electric.glue.pro.console.handlers.VitalSignsHandler</handler>
+    <handler>electric.glue.enterprise.console.handlers.AppDeploymentHandler</handler>
+    <handler>electric.glue.enterprise.console.handlers.ClusterHandler</handler>
+    <handler>electric.glue.enterprise.console.handlers.DeployServiceHandler</handler>
+    <handler>com.webmethods.fabric.console.handlers.AddTransformHandler</handler>
+
+    <extension>
+      <name>consoleLoggingService</name>
+      <value>console/system/console</value>
+    </extension>
+
+    <extension>
+      <name>vitalSignsService</name>
+      <value>console/system/console</value>
+    </extension>
+  </console>
+
+
+  <!--***************************************************************-->
+  <!--SQL DATABASE-->
+  <!--***************************************************************-->
+
+  <sql>
+    <!--list of sql databases -->
+    <!--
+    <database>
+      <name>uddi</name>
+      <driver>org.hsqldb.jdbcDriver</driver>
+      <url>jdbc:hsqldb:hsql://@hostname@:9001</url>
+      <user>sa</user>
+      <password></password>
+      <poolSize>10</poolSize>
+    </database>
+    -->
+  </sql>
+
+
+  <!--***************************************************************-->
+  <!--UDDI-->
+  <!--***************************************************************-->
+
+  <uddi>
+    <!--uddi type taxonomy-->
+    <tModel tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'>
+      <name>uddi-org:types</name>
+      <description xml:lang='en'>UDDI Type Taxonomy</description>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:4CD7E4BC-648B-426D-9936-443EAAC8AE23'>
+      <name>uddi-org:inquiry</name>
+      <description xml:lang='en'>UDDI Inquiry API - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B'>
+      <name>uddi-org:inquiry_v2</name>
+      <description xml:lang='en'>UDDI Inquiry API V2.0 - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:A2F36B65-2D66-4088-ABC7-914D0E05EB9E'>
+      <name>uddi-org:publication_v2</name>
+      <description xml:lang='en'>UDDI Publication API V2.0 - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:64C756D1-3374-4E00-AE83-EE12E38FAE63'>
+      <name>uddi-org:publication</name>
+      <description xml:lang='en'>UDDI Publication API - Core Specification</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:3FB66FB7-5FC3-462F-A351-C140D9BD8304'>
+      <name>uddi-org:taxonomy</name>
+      <description xml:lang='en'>UDDI Taxonomy API</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi registry tmodel-->
+    <tModel tModelKey='uuid:1E3E9CBC-F8CE-41AB-8F99-88326BAD324A'>
+      <name>uddi-org:taxonomy_v2</name>
+      <description xml:lang='en'>UDDI validate_values API</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='xmlSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+        <keyedReference keyName='categorization' keyValue='soapSpec' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2' checked='true'>
+      <name>ntis-gov-naics:1997</name>
+      <description xml:lang='en'>Business Taxonomy: NAISC (1997 Release)</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384' checked='true'>
+      <name>unspsc-org:3-1</name>
+      <description xml:lang='en'>Product Taxonomy: UNSPSC (Version 3.1)</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:61668105-B6B6-425C-914B-409FB252C36D' checked='true'>
+      <name>uddi-org:iso-ch:3166:1999</name>
+      <description xml:lang='en'>UDDI Geographic Taxonomy</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4'>
+      <name>uddi-org:misc-taxonomy</name>
+      <description xml:lang='en'>Other Taxonomy</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='categorization' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:4064C064-6D14-4F35-8953-9652106476A9' checked='true'>
+      <name>uddi-org:owningBusiness</name>
+      <description xml:lang='en'>A pointer to a businessEntity that owns the categorized data</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03'>
+      <name>uddi-org:relationships</name>
+      <description xml:lang='en'>UDDI businessEntity relationship descriptions</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:327A56F0-3299-4461-BC23-5CD513E95C55' checked='true'>
+      <name>uddi-org:operators</name>
+      <description xml:lang='en'>Identifier system for identifying operators of a registry</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823'>
+      <name>dnb-com:D-U-N-S</name>
+      <description xml:lang='en'>Dun &amp; Bradstreet D-U-N-S(r) Number</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - taxonomy-->
+    <tModel tModelKey='uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039'>
+      <name>thomasregister-com:supplierID</name>
+      <description xml:lang='en'>Thomas Registry Suppliers</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='identifier' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:93335D49-3EFB-48A0-ACEA-EA102B60DDC6'>
+      <name>uddi-org:smtp</name>
+      <description xml:lang='en'>E-mail based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='transport' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:1A2B00BE-6E2C-42F5-875B-56F32686E0E7'>
+      <name>uddi-org:fax</name>
+      <description xml:lang='en'>Fax based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='protocol' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:5FCF5CD0-629A-4C50-8B16-F94E9CF2A674'>
+      <name>uddi-org:ftp</name>
+      <description xml:lang='en'>File transfer protocol (ftp) based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='transport' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:38E12427-5536-4260-A6F9-B5B530E63A07'>
+      <name>uddi-org:telephone</name>
+      <description xml:lang='en'>Telephone based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:68DE9E80-AD09-469D-8A37-088422BFBC36'>
+      <name>uddi-org:http</name>
+      <description xml:lang='en'>E-mail based web service</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='transport' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+
+    <!--uddi core model - other-->
+    <tModel tModelKey='uuid:4CEC1CEF-1F68-4B23-8CB7-8BAA763AEB89'>
+      <name>uddi-org:homepage</name>
+      <description xml:lang='en'>HTTP Web Home Page URL</description>
+      <categoryBag>
+        <keyedReference keyName='categorization' keyValue='specification' tModelKey='uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4'/>
+      </categoryBag>
+    </tModel>
+    
+    <predefinedKeys>
+      <businessKeys>
+        <business>
+          <name>fabric</name>
+          <businessKey>62188325-6296-3f9e-9a11-f138eb84e52b</businessKey>
+        </business>
+      </businessKeys>  
+      <tModelKeys>
+        <tModel>
+          <name>webmethods-org:signature</name>
+          <tModelKey>89f556a1-f683-3ae0-a09d-4c463b335e2a</tModelKey>
+        </tModel>
+      </tModelKeys> 
+    </predefinedKeys>  
+    
+  </uddi>
+
+
+  <!--***************************************************************-->
+  <!--GENERAL FABRIC-->
+  <!--***************************************************************-->
+
+  <!--If true, execute a Fabric.join() when startup occurs.--> 
+  <!--This allows Glue applications to join the fabric when hosted in a-->
+  <!--third party servlet container as well as allowing existing Glue -->
+  <!--programs to join the fabric without adding Fabric.join().-->
+  <autoJoinFabric>false</autoJoinFabric>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC SECURITY -->
+  <!--***************************************************************-->
+
+  <fabricSecurity>
+    <!--realm entry must match fabric realm configures in the "realms" section-->
+    <fabricRealm>realm</fabricRealm>
+    <!--<fabricUser>fabric</fabricUser>-->
+    <!--<fabricPassword>changeit</fabricPassword>-->
+    <!--<keyStore>FabricKeyStore</keyStore>-->
+    <!--<keyStorePassword>changeit</keyStorePassword>-->
+    <!--<trustStore>FabricTrustStore</trustStore>-->
+  </fabricSecurity>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC DISCOVERY-->
+  <!--***************************************************************-->
+
+  <discovery>
+    <noPath>fabric://failover&amp;monitor</noPath>
+    <useLocator>chain</useLocator>
+    <useSignatures>true</useSignatures>
+
+    <!--This locator creates a local UDDI registry that uses a-->
+    <!--P2P XML database backend. This registry attempts to replicate itself-->
+    <!--until there are at least two copies of the registry in the fabric.-->
+    <locator>
+      <name>xdb</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.xdb.XDBLocator</class>
+        <args>
+          <inquiryURL>/fabric/uddi/inquiry</inquiryURL>
+          <publicationURL>/fabric/uddi/publication</publicationURL>
+          <adminURL>/fabric/uddi/admin</adminURL>
+          <user>guest</user>
+          <password>guest</password>
+          <business>fabric</business>
+          <operator>fabric</operator>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This locator returns a reference to a third party UDDI registry.-->
+    <!--Use this locator if you want the fabric to store information about services-->
+    <!--into a third party UDDI implementation instead of into the Fabric's built-in-->
+    <!--replicating UDDI server.-->
+    <locator>
+      <name>thirdparty</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.uddi.UDDILocator</class>
+        <args>
+          <inquiryURL>http://@hostname@:@port@/uddi/inquiry</inquiryURL>
+          <publicationURL>http://@hostname@:8005/uddi/publication</publicationURL>
+          <user>santa</user>
+          <password>christmas</password>
+          <business>fabric</business>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This locator sends out a UDP ping on a particular port (9030 by default)-->
+    <!--to other nodes in the same subnet. When a node with an installed SubnetLocator-->
+    <!--receives this ping, it responds with a UDP packet that contains the URL of the-->
+    <!--registry that it is currently using. The SubnetLocator that sent the ping selects-->
+    <!--the first UDDI registry that can be contacted using a received URL, or null if no live-->
+    <!--registries are located.-->
+    <locator>
+      <name>subnet</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.subnet.SubnetLocator</class>
+        <args>
+          <port>9030</port>
+          <maxWait>10</maxWait>
+          <pingCycle>5</pingCycle>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This locator returns a reference to the same UDDI registry as the one being used-->
+    <!--by the fabric node at the specified URL.-->
+    <!--It does this by contacting the service manager-->
+    <!--whose WSDL is located at <url>/fabric/servicemanager.wsdl.-->
+    <locator>
+      <name>wan</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.wan.WANLocator</class>
+        <args>
+          <url>http://host:port/context</url>
+        </args>
+      </constructor>
+    </locator>
+
+    <!--This is the default locator, and iterates through a list of named-->
+    <!--locators until one of them returns a reference to a UDDI registry.-->
+    <!--Named locators cannot currently be forward referenced.-->
+    <locator>
+      <name>chain</name>
+      <constructor>
+        <class>com.webmethods.fabric.services.registry.locators.chain.ChainedLocator</class>
+        <args>
+          <clientExitStartup>true</clientExitStartup>
+          <serverExitStartup>true</serverExitStartup>
+          <retryLimit>-1</retryLimit>
+          <maxWaitTime>60000</maxWaitTime>
+          <locators>subnet,xdb</locators>
+        </args>
+      </constructor>
+    </locator>
+  </discovery>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC XML DATABASES-->
+  <!--***************************************************************-->
+
+  <!--xml database settings-->
+  <xdbServers>
+    <!--default seconds between server syncs-->
+    <defaultSyncCycle>10</defaultSyncCycle>
+
+    <!--default replication factor-->
+    <defaultReplicationFactor>2</defaultReplicationFactor>
+
+    <!--factory for creating data stores-->
+    <defaultStoreFactory>
+      <constructor>
+        <class>com.webmethods.xdb.store.memory.MemoryStoreFactory</class>
+      </constructor>
+    </defaultStoreFactory>
+  </xdbServers>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC ENDPOINT ACTIVITY-->
+  <!--***************************************************************-->
+
+  <endpointActivity>
+    <!--seconds between keep-alive cycles-->
+    <keepAliveCycle>60</keepAliveCycle>
+
+    <!--seconds between check for rule updates-->
+    <ruleCheckCycle>20</ruleCheckCycle>
+  </endpointActivity>
+
+
+  <!--***************************************************************-->
+  <!--FABRIC LIVENESS CHECKING-->
+  <!--***************************************************************-->
+
+  <liveness>
+    <!--seconds between checking nodes for liveness-->
+    <nodeCycle>30</nodeCycle>
+
+    <!--seconds after which a dead node should be removed-->
+    <nodeThreshold>100</nodeThreshold>
+
+    <!--seconds between checking services for liveness-->
+    <serviceCycle>30</serviceCycle>
+
+    <!--seconds after which a dead service should be removed-->
+    <serviceThreshold>100</serviceThreshold>
+  </liveness>
+</config>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.MessageFactory
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.MessageFactory	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.MessageFactory	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1 @@
+electric.jaxm.MessageFactoryImpl
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.SOAPConnectionFactory
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.SOAPConnectionFactory	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/javax.xml.soap.SOAPConnectionFactory	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1 @@
+electric.jaxm.SOAPConnectionFactoryImpl
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/webmethods/web-app.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!--
+  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">
+
+<!--
+  Welcome to the Glue web.xml file.
+
+  A copy of this file is located in glue.jar with the name "default-web.xml".
+  If Glue starts a web application and no web.xml is found in the application's
+  WEB-INF directory, the file "default-web.xml" is loaded via the class path and
+  used instead.
+
+  If the newapp utility is used to create a skeleton J2EE application structure,
+  this file is copied from <GLUE-HOME>/app-template/WEB-INF/web.xml
+  into the new application's WEB-INF directory.
+
+  This file installs two servlets:
+
+  1. The glue-soap servlet processes WSDL requests and
+     SOAP invocations that arrive via /services/*.
+
+  2. The glue-console servlet processes flash console
+     requests that arrive via /console/*.
+
+  All other requests, such as those for HTML and JSPs, are assumed to be handled
+  by the servlet container, which can be either the Glue servlet container in
+  the standalone case, or a 3rd party servlet container when Glue is hosted.
+
+  By default, requests are not authenticated. To enable authentication,
+  uncomment the <login-config> element and set the <auth-method> and <realm-name>
+  fields to their desired values. If you are running in the Glue servlet
+  container, you can define realms by editing the Glue WEB-INF/glue-config.xml file.
+
+  The <init-param> for httpRegistryRoot defines how inbound messages are routed
+  to the local registry. A value of "/" maps ".../services/xxx" to "/xxx" in the
+  registry, while a value of "/foo" maps ".../services/xxx" to "/foo/xxx". If
+  this parameter is not set, a value of "/" is assumed.
+
+  If Glue is hosted in an old servlet 2.1 container, uncomment the
+  <init-param> for electric.http.url and set the <param-value> to the URL
+  that Glue is exposed on.
+-->
+
+<web-app>
+	<display-name>XML Transaction Service Demo Client</display-name>
+
+    <description>XML Transaction Service Demo Client</description>
+    
+    <!--  Initialise the Task Manager -->
+    <context-param>
+        <param-name>TaskManager.minWorkerCount</param-name>
+        <param-value>0</param-value>
+    </context-param>
+    <context-param>
+        <param-name>TaskManager.maxWorkerCount</param-name>
+        <param-value>10</param-value>
+    </context-param>
+    <listener>
+        <listener-class>com.arjuna.services.framework.admin.TaskManagerInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationRequesterInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationRequesterInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-C  -->
+    <listener>
+        <listener-class>com.arjuna.wsc.messaging.deploy.CoordinationInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WSCF -->
+    <listener>
+        <listener-class>com.arjuna.mw.wsc.deploy.WSCFInitialisation</listener-class>
+    </listener>
+
+    <!-- Initialise Arjuna TX services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationCoordinatorInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-AT services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionInitiatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.ParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-BA services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionParticipantInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionCoordinatorInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionParticipantInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-T  -->
+    <listener>
+        <listener-class>com.arjuna.wst.messaging.deploy.TransactionInitialisation</listener-class>
+    </listener>
+
+    <!-- Initialise WSTX -->
+    <listener>
+        <listener-class>com.arjuna.mw.wst.deploy.WSTXInitialisation</listener-class>
+    </listener>
+    
+    <!--  Initialise the HTTP Client -->
+    <listener>
+        <listener-class>com.arjuna.webservices.transport.http.HttpClientInitialisation</listener-class>
+    </listener>
+
+    <servlet>
+      <servlet-name>Basic Client Servlet</servlet-name>
+      <servlet-class>com.arjuna.xts.nightout.clients.webmethods.BasicClient</servlet-class>
+      <init-param>
+        <param-name>restaurantATURL</param-name>
+        <param-value>@restaurantATURL@</param-value>
+      </init-param>
+      <init-param>
+        <param-name>restaurantBAURL</param-name>
+        <param-value>@restaurantBAURL@</param-value>
+      </init-param>
+      <init-param>
+        <param-name>taxiATURL</param-name>
+        <param-value>@taxiATURL@</param-value>
+      </init-param>
+      <init-param>
+        <param-name>taxiBAURL</param-name>
+        <param-value>@taxiBAURL@</param-value>
+      </init-param>
+      <init-param>
+        <param-name>theatreATURL</param-name>
+        <param-value>@theatreATURL@</param-value>
+      </init-param>
+      <init-param>
+        <param-name>theatreBAURL</param-name>
+        <param-value>@theatreBAURL@</param-value>
+      </init-param>
+    </servlet>
+    
+    <servlet>
+      <servlet-name>glue-soap</servlet-name>
+      <servlet-class>electric.server.http.ServletServer</servlet-class>
+      <init-param>
+        <param-name>httpRegistryRoot</param-name>
+        <param-value>/</param-value>
+      </init-param>
+      <!--
+      <init-param>
+        <param-name>electric.http.url</param-name>
+        <param-value>http://host:port/context</param-value>
+      </init-param>
+      -->
+      <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet>
+      <servlet-name>glue-console</servlet-name>
+      <servlet-class>electric.console.ConsoleServlet</servlet-class>
+      <init-param>
+        <param-name>soapServletContext</param-name>
+        <param-value>/services</param-value>
+      </init-param>
+      <load-on-startup>2</load-on-startup>
+    </servlet>
+    
+    <servlet>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <servlet-class>com.arjuna.webservices.transport.http.HttpServiceMultiplexorServlet</servlet-class>
+        <!--
+          The BaseHttpURI and BaseHttpsURI parameters specify the default values
+          used to generate the service URIs without reference to an incoming
+          request.
+         -->
+        <init-param>
+            <param-name>BaseHttpURI</param-name>
+            <param-value>http://@hostname@:@port@/@urlstub@/soap/</param-value>
+        </init-param>
+        <!--
+        <init-param>
+            <param-name>BaseHttpsURI</param-name>
+            <param-value>https://@hostname@:@port@/@urlstub@/soap/</param-value>
+        </init-param>
+        <init-param>
+            <param-name>LogPackets</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        -->
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    
+    <!-- servlet mappings -->	
+    <servlet-mapping>
+      <servlet-name>Basic Client Servlet</servlet-name>
+      <url-pattern>/basicclient</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+      <servlet-name>glue-soap</servlet-name>
+      <url-pattern>/services/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+      <servlet-name>glue-console</servlet-name>
+      <url-pattern>/console/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+        <url-pattern>/soap/*</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list>
+      <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/about.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/about.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/about.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<page title="XML Transaction Service Demonstration Application: About the sample application" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: About the sample application
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="installcontent.html">Previous</link>
+                <link ref="deploying.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="About the sample application">
+            <html>
+                <p>
+                    The sample application features some simple transactional Web services, a client application, deployment metadata files and a build script.
+                    The application is designed to introduce some of the key features of the XML Transaction component of JBossTS 4.2.2 and help you get started with writing your own transactional Web services applications.
+                </p>
+                <p>
+                    The application is based around a simple booking scenario. The services provide the ability to transactionally reserve resources,
+                    whilst the client provides an interface to select the nature and quantity of the reservations.
+                    The chosen application domain is services for a night out.
+                </p>
+                <p>
+                    The server components consist of three Web services (Restaurant, Theatre, Taxi) which offer transactional booking services.
+                    These services each expose a GUI with state information and an event trace log.
+                </p>
+                <p>
+                    The client side of the application is a servlet which allows the user to select the required reservations and then books a night out by making invocations on each of the services within the scope of a Web Services transaction.
+                </p>
+                <p>
+                    Full source code for the services and the client is included, along with an ant script for building and deploying the code.
+                    The following step of this trail map will show you how to deploy and run the application.
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/atomictransaction.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/atomictransaction.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/atomictransaction.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<page title="XML Transaction Service Demonstration Application: Atomic Transactions" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Atomic Transactions
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="deploying.html">Previous</link>
+                <link ref="businessactivity.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="Atomic Transactions">
+            <html>
+                <p>
+                    Atomic transactions are the classical transaction type found in most enterprise data systems, such as relational databases.
+                    Atomic transactions typically exhibit ACID properties (Atomic, Consistent, Isolated and Durable).
+                    This is usually achieved by the transactions holding locks on data, particularly during transaction resolution through the two phase commit protocol (2PC).
+                    In J2EE applications, such transactions are normally managed through the JTA interface, or implicitly by the application container in the case of e.g. certain EJB configurations.
+                    Because of their lock based nature, atomic transactions are best suited to short lived operations within the enterprise.
+                </p>
+                <p>
+                    Long lived transactions can exhibit poor concurrency when holding locks for a prolonged period.
+                    For the same reason, use of lock based transactions for inter-enterprise integration is avoided due to the possibility of denial of service situations based on incorrect lock management.
+                    The next section of the trail map explains how these problems can be addressed through the use of an extended transaction model, Business Activities.
+                </p>
+                <p>
+                    To use the Atomic Transaction transaction type in the sample application, simply select it from the pull down menu at the top of the client interface.
+                    Notice that the server applications show the reservation resources (e.g. seats, tables) passing though a lifecycle involving the initial state (free), reserved (locked) and booked (committed).
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/businessactivity.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/businessactivity.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/businessactivity.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+<!--
+  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.
+-->
+<page title="XML Transaction Service Demonstration Application: Business Activities" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Business Activities
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="atomictransaction.html">Previous</link>
+                <link ref="sourcecode.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="Business Activities">
+            <html>
+                <p>
+                    Business activities are an extended transaction model designed to support long running business processes.
+                    Unlike traditional atomic transactions, business activities typically use a compensation model to support the reversal of previously performed work in the event of transaction cancellation (rollback).
+                    This makes them more suitable for long duration processes and inter-enterprise coordination. However, it also requires the relaxation of traditional ACID properties, particularly isolation.
+                </p>
+                <p>
+                    The programming of business activities can involve more effort than is required for atomic transactions, as less infrastructure is typically available.
+                    For example, the XA support found in many enterprise databases handles the necessary locking, 2PC and other functions transparently, allowing databases to be used in atomic transactions with minimal programmer effort.
+                    However, equivalent support for business activities, particularly with regard to compensation logic, must be added to the code of each new application by the programmer.
+                </p>
+                <p>
+                    The demonstration application illustrates one possible approach to creating services for use in business activities. It shows how to create a transaction participant that can expose existing business logic, originally intended for use in atomic transactions, as a service suitable for use in a business activity.
+                    This is a particularly common scenario for enterprises seeking to reuse existing logic by packaging it for use as a component in the composition of workflow type processes. <!-- TODO -->
+                </p>
+                <p>
+                    To use the Business Activity transaction type in the sample application, simply select it from the pull down menu at the top of the client interface.
+                    Notice that the client applications show the reservation resources as booked (committed) even before the transaction is terminated, subsequently performing a compensating transaction to reverse this effect if the transaction is cancelled.
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/deploying.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/deploying.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/deploying.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+<!--
+  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.
+-->
+<page title="XML Transaction Service Demonstration Application: Deploying the sample application" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Deploying the sample application
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="about.html">Previous</link>
+                <link ref="atomictransaction.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="Deploying the sample application">
+            <html>
+                <p>
+                    To run the demonstration application, you must compile the source code; bundle it, along with the required metadata files, into appropriate deployment constructs and then deploy these into the application container. This process is somewhat involved, but fortunately is completely automated by an ant build script.
+                </p>
+                <p>
+                    To proceed, you will need to install ant (<a class="linkscoloured" href="http://ant.apache.org/" target="_blank">http://ant.apache.org/</a>) to take advantage of the supplied build file. Version 1.6.1 or later of ant is recommended for this application. The application may not function correctly with versions prior to 1.5.
+                </p>
+                <p>
+					Deploying into JBoss.
+				</p>
+				<p>
+					This release has been tested against JBoss 4.0.3SP1, 4.0.4GA and 4.0.5GA.
+			    </p>
+                <ol>
+                    <li><p>Install JBoss.</p>
+                    </li>
+                    <li><p>Edit the <code>&lt;xts-home&gt;/demo/jboss.properties</code> file, replacing the <code>JBOSS_HOSTNAME</code>, <code>JBOSS_PORT</code>, <code>JBOSS_URLSTUB</code>, <code>JBOSS_DEPLOY_DIR</code> and <code>JBOSS_HOME</code> variables to reflect the location of your JBoss installation</p></li>
+                    <li><p>Compile the application source, build the application archive file and deploy it into JBoss deploy directory by typing '<code>build.sh jboss clean deploy</code>' on Unix or '<code>build.bat jboss clean deploy</code>' on Windows</p></li>
+                    <li><p>Run the application server by using the run.sh or run.bat command.</p></li>
+                    <li><p>Invoke the demo client by browsing the URL (e.g.): <code>http://hostname:port/xts-demo/</code></p></li>
+                </ol>
+                <p>
+					Deploying into webMethods.
+				</p>
+				<p>
+					This release has been tested against webMethods 5.0.2.
+			    </p>
+			    <p>
+					N.B. The classpath used to run webMethods must be modified so that the stax-api.1.0.jar contained within this distribution is encountered prior to all other webMethods jars.
+                </p>
+                <ol>
+                    <li><p>Install webMethods.</p>
+                    </li>
+                    <li><p>Edit the <code>&lt;xts-home&gt;/demo/webmethods.properties</code> file, replacing the <code>WEBMETHODS_HOSTNAME</code>, <code>WEBMETHODS_PORT</code>, <code>WEBMETHODS_URLSTUB</code>, <code>WEBMETHODS_DEPLOY_DIR</code> and <code>WEBMETHODS_HOME</code> variables to reflect the location of your webMethods installation</p></li>
+                    <li><p>Compile the application source, build the application archive file and deploy it into webMethods deploy directory by typing '<code>build.sh webmethods clean deploy</code>' on Unix or '<code>build.bat webmethods clean deploy</code>' on Windows</p></li>
+                    <li><p>Run the application from the deploy directory by using the webMethods runapp command.</p></li>
+                    <li><p>Invoke the demo client by browsing the URL (e.g.): <code>http://hostname:port/xts-demo/</code></p></li>
+                </ol>
+                <p>
+                This release of the demo application includes the ability to run the client against a mixture of backend webservices. The property files contain the URLs of the webservices, which can be changed to exercise any combination and demonstrate a distributed transaction.
+                The services are started using the same mechanism as above. Each platform will be running its own copy of the webservices but the deployed client will access those services configured in the relevant property file.
+                </p>
+                <p>Using the application</p>
+                <ul>
+                    <li><p>When invoked, the client will attempt to begin a transaction, reserve theatre tickets, a restaurant table and a taxi according to the parameters you have selected, then commit the transaction. It will log each step of its activity to the console window. As the transaction proceeds, each of the Web Services will pop up a window of its own in which its state and activity log can be seen. Some events in the service code are also logged to the console.</p></li>
+                    <li><p>The three server applications support a manual transaction control mode which you can use to simulate transaction failures. Use the Change Mode button on the server GUIs. Notice that the client throws an exception if the transaction is rolled back. [ Note: The manual commit mode overrides the normal availability checks in the services, so overbooking may occur. ]</p></li>
+                    <li><p>The following pages explain the two transaction models available in the XML Transaction , Atomic Transactions and Business Activities. Reading the following pages will help you understand the events taking place within the sample application.</p></li>
+                </ul>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/JBoss_DivOfRH_RGB.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/JBoss_DivOfRH_RGB.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/arjuna_strapline.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/arjuna_strapline.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/header_grid.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/header_grid.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/icon_email.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/icon_email.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/icon_printer.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/icon_printer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/menu_spacer.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/menu_spacer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/search_bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/search_bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/spacer.jpg
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/spacer.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/trans_spacer.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/images/look_and_feel/trans_spacer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/includes/trailmap_navigation.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/includes/trailmap_navigation.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/includes/trailmap_navigation.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,31 @@
+<!--
+  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.
+-->
+
+<links title="Trail map">
+    <link ref="index.html">Introduction</link>
+    <link ref="installcontent.html">Installation Content</link>
+    <link ref="about.html">About the Sample Application</link>
+    <link ref="deploying.html">Deploying the Sample Application</link>
+    <link ref="atomictransaction.html">Atomic Transactions</link>
+    <link ref="businessactivity.html">Business Activities</link>
+    <link ref="sourcecode.html">Sample Application Source Code</link>
+    <link ref="wherenext.html">Where next?</link>
+</links>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/index.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/index.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/index.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,60 @@
+<!--
+  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.
+-->
+<page title="XML Transaction Service Demonstration Application: Introduction" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Introduction
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="installcontent.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="Introduction">
+            <html>
+                <p>
+                    Welcome to the &quot;Night Out&quot; sample application for the XML Transaction component of JBossTS 4.2.2.
+                </p>
+                <p>
+                    This documentation will help you get started with using the JBossTS Web services transactioning product.
+                </p>
+                <p>
+                    This trail map is structured as follows:
+                    <ul>
+                        <li><a class="linkscoloured" href="installcontent.html">Installation Content</a>: Details the components which have been installed.</li>
+                        <li><a class="linkscoloured" href="about.html">About the Sample Application</a>: An explanatory overview of the sample application.</li>
+                        <li><a class="linkscoloured" href="deploying.html">Deploying the Sample Application</a>: Shows how to deploy and run the sample.</li>
+                        <li><a class="linkscoloured" href="atomictransaction.html">Atomic Transactions</a>: Overview and example for short lived ACID transactions style.</li>
+                        <li><a class="linkscoloured" href="businessactivity.html">Business Activities</a>: Extended transactions for long running business processes.</li>
+                        <li><a class="linkscoloured" href="sourcecode.html">Source code</a>: How the sample application is structured and built.</li>
+                        <li><a class="linkscoloured" href="wherenext.html">Where Next?</a>: Further reading and suggested next steps.</li>
+                    </ul>
+                </p>
+                <p>
+                    Use the links in the panel on the left to navigate the documentation. On the following pages, click the 'Home' link to return to this page.
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/installcontent.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/installcontent.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/installcontent.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,62 @@
+<!--
+  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.
+-->
+<page title="XML Transaction Service Demonstration Application: Installation Content" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Installation Content
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="about.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="Installation Content">
+            <html>
+                <p>
+                    The installer should have installed the following directories under &lt;jbosst 4.2.2 install&gt;/wst directory:
+                    <ul>
+                        <p>conf: product configuration files.</p>
+                        <p>coordinator: an application independent version of the transaction coordinator.</p>
+                        <p>demo: a sample application and introductory documentation.</p>
+                        <p>docs: product manuals and API javadocs.</p>
+                        <p>lib: jar files for the JBossTS components and their 3rd party prerequisites.</p>
+                        <p>webapps: pre built J2EE web applications for the product components.</p>
+                    </ul>
+                </p>
+                <p>
+                    In addition, you will require a Web services platform on which to deploy and run the product.
+				    This release of the XML Transaction component of JBossTS 4.2.2 is designed to run within JBoss and webMethods.
+				</p>
+				<p>
+    				This release has been tested on JBoss 4.0.3SP1, 4.0.4GA, 4.0.5GA and webMethods 5.0.2.
+                </p>
+                <p>
+                    To compile, deploy and run the sample application we also recommend using java SDK 1.4.2 and Apache ant 1.6.1 or later.
+                    If you do not already have these, you can download them from <a class="linkscoloured" href="http://java.sun.com/">java website</a> and the <a class="linkscoloured" href="http://ant.apache.org/">ant website</a>.
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/sourcecode.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/sourcecode.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/sourcecode.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,112 @@
+<!--
+  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.
+-->
+<page title="XML Transaction Service Demonstration Application: Source code overview" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Source code overview
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="businessactivity.html">Previous</link>
+                <link ref="wherenext.html">Next</link>
+            </links>
+        </navigation>
+
+        <area title="Source code overview">
+            <html>
+                <p>
+                    You can begin experimenting with the XML Transaction component of JBoss 4.2.2 by editing the sample application source code, which is heavily commented to assist your understanding. The source code can be found in the &lt;jbossts 4.2.2 install&gt;/wst/demo/src directory.
+                </p>
+                <p>
+                    It is structured as follows:
+                </p>
+                <p>
+                    <ul>
+                        <li>
+                            <p>
+                                com/arjuna/xts/nightout/clients/
+                            </p>
+                            <ul>
+                                <li>
+                                    <p>
+                                        jboss/BasicClient.java: A servlet that processes the form input and runs either an Atomic Transaction or Business Activity to make the bookings.
+                                    </p>
+                                    <p>
+                                        This servlet uses the JBoss JAX-RPC implementation as the SOAP transport library.
+                                    </p>
+                                </li>
+                                <li>
+                                    <p>
+                                        jboss/restaurant/* : JBoss JAX-RPC client interfaces for accessing the restaurant web services.
+                                    </p>
+                                </li>
+                                <li>
+                                    <p>
+                                        jboss/taxi/* : JBoss JAX-RPC client interfaces for accessing the taxi web services.
+                                    </p>
+                                </li>
+                                <li>
+                                    <p>
+                                        jboss/theatre/* : JBoss JAX-RPC client interfaces for accessing the theatre web services.
+                                    </p>
+                                </li>
+                                <li>
+                                    <p>
+                                        weblogic/BasicClient.java: A servlet that processes the form input and runs either an Atomic Transaction or Business Activity to make the bookings.
+                                    </p>
+                                    <p>
+                                        This servlet uses the WebLogic JAX-RPC implementation as the SOAP transport library.
+                                    </p>
+                                </li>
+                                <li>
+                                    <p>
+                                        weblogic/proxies/* : WebLogic JAX-RPC client side code for accessing the Web services. This is automatically generated code.
+                                    </p>
+                                </li>
+                                <li>
+                                    <p>
+                                        webmethods/BasicClient.java: A servlet that processes the form input and runs either an Atomic Transaction or Business Activity to make the bookings.
+                                    </p>
+                                </li>
+                            </ul>
+                        </li>
+                        <li>
+                            <p>
+                                com/arjuna/xts/nightout/services/[Restuarant|Taxi|Theatre]/
+                            </p>
+                            <ul>
+                                <li>
+                                    <p>Each of these three Web services has similar structure, featuring a *Manager.java class (the transactional business logic, knowing nothing of Web services),
+                                    a *View.java file (the GUI component, largely tool generated), and the files that expose the business logic as transactional Web services.
+                                    In the filenames, AT denotes Atomic Transaction, whilst BA is for Business Activities. The *Service.java file is the business interface, whilst the *Participant.java file has the transaction management code.
+                                    </p>
+                                </li>
+                            </ul>
+                        </li>
+                    </ul>
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/styles.css
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/styles.css	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/styles.css	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+A:hover {
+	COLOR: #2fa9ec; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline
+}
+A {
+	COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none
+}
+.menuheader {
+	FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.menuoptions {
+	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #585858; LINE-HEIGHT: normal; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.bodytext {
+	FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.bodyheader {
+	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.quotetext {
+	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #253169; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.boldbodytext {
+	FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.linkscoloured {
+	FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #2fa9ec; FONT-FAMILY: Arial, Helvetica, sans-serif
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/docs/wherenext.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/docs/wherenext.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/docs/wherenext.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,56 @@
+<!--
+  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.
+-->
+<page title="XML Transaction Service Demonstration Application: Where next?" rootpath="../..">
+    <header>
+        XML Transaction Service Demonstration Application: Where next?
+    </header>
+    <content>
+        <navigation>
+            <links include="includes/trailmap_navigation.xml"/>
+            <links title="Navigation">
+                <link ref="index.html">Start Trailmap</link>
+                <link ref="sourcecode.html">Previous</link>
+            </links>
+        </navigation>
+
+        <area title="Where next?">
+            <html>
+                <p>
+                    For further information, please consult the XML Transaction component of JBossTS 4.2.2 product documentation set.
+                    <li><a class="linkscoloured" href="../../docs/Programmers Guide.pdf" target="_blank">Programmers Guide</a> (.pdf)</li>
+                </p>
+                <p>
+                    A collection of links to additional background reading material on Web services coordination and transactions is also avaialble on the JBossTS labs site:
+                    <a class="linkscoloured" href="http://labs.jboss.com/jbosstm" target="_blank">http://labs.jboss.com/jbosstm</a>
+                </p>
+                <p>
+
+                    Updates to the XML Transaction component of JBossTS, as well as additional sample material, are periodically made available via the product web site at
+                    <a class="linkscoloured" href="http://labs.jboss.com/jbosstm" target="_blank">http://labs.jboss.com/jbosstm</a>
+                    Please drop by from time to time to ensure you have the most comprehensive material available.
+                    You can also discuss the software with its authors and other users on our
+                    <a class="linkscoloured" href="http://www.jboss.com/index.html?module=bb&amp;op=viewforum&amp;f=240">forum</a>.
+                </p>
+            </html>
+        </area>
+    </content>
+    <footer/>
+</page>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/about.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/about.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/about.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: About the sample application</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./installcontent.html">Previous</A>
+<BR>
+                
+<A href="./deploying.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">About the sample application<DIV class="bodytext">
+            
+                
+<p>
+                    The sample application features some simple transactional Web services, a client application, deployment metadata files and a build script.
+                    The application is designed to introduce some of the key features of the XML Transaction component of JBossTS 4.2.2 and help you get started with writing your own transactional Web services applications.
+                </p>
+                
+<p>
+                    The application is based around a simple booking scenario. The services provide the ability to transactionally reserve resources,
+                    whilst the client provides an interface to select the nature and quantity of the reservations.
+                    The chosen application domain is services for a night out.
+                </p>
+                
+<p>
+                    The server components consist of three Web services (Restaurant, Theatre, Taxi) which offer transactional booking services.
+                    These services each expose a GUI with state information and an event trace log.
+                </p>
+                
+<p>
+                    The client side of the application is a servlet which allows the user to select the required reservations and then books a night out by making invocations on each of the services within the scope of a Web Services transaction.
+                </p>
+                
+<p>
+                    Full source code for the services and the client is included, along with an ant script for building and deploying the code.
+                    The following step of this trail map will show you how to deploy and run the application.
+                </p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/atomictransaction.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/atomictransaction.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/atomictransaction.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Atomic Transactions</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./deploying.html">Previous</A>
+<BR>
+                
+<A href="./businessactivity.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Atomic Transactions<DIV class="bodytext">
+            
+                
+<p>
+                    Atomic transactions are the classical transaction type found in most enterprise data systems, such as relational databases.
+                    Atomic transactions typically exhibit ACID properties (Atomic, Consistent, Isolated and Durable).
+                    This is usually achieved by the transactions holding locks on data, particularly during transaction resolution through the two phase commit protocol (2PC).
+                    In J2EE applications, such transactions are normally managed through the JTA interface, or implicitly by the application container in the case of e.g. certain EJB configurations.
+                    Because of their lock based nature, atomic transactions are best suited to short lived operations within the enterprise.
+                </p>
+                
+<p>
+                    Long lived transactions can exhibit poor concurrency when holding locks for a prolonged period.
+                    For the same reason, use of lock based transactions for inter-enterprise integration is avoided due to the possibility of denial of service situations based on incorrect lock management.
+                    The next section of the trail map explains how these problems can be addressed through the use of an extended transaction model, Business Activities.
+                </p>
+                
+<p>
+                    To use the Atomic Transaction transaction type in the sample application, simply select it from the pull down menu at the top of the client interface.
+                    Notice that the server applications show the reservation resources (e.g. seats, tables) passing though a lifecycle involving the initial state (free), reserved (locked) and booked (committed).
+                </p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/businessactivity.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/businessactivity.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/businessactivity.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Business Activities</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./atomictransaction.html">Previous</A>
+<BR>
+                
+<A href="./sourcecode.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Business Activities<DIV class="bodytext">
+            
+                
+<p>
+                    Business activities are an extended transaction model designed to support long running business processes.
+                    Unlike traditional atomic transactions, business activities typically use a compensation model to support the reversal of previously performed work in the event of transaction cancellation (rollback).
+                    This makes them more suitable for long duration processes and inter-enterprise coordination. However, it also requires the relaxation of traditional ACID properties, particularly isolation.
+                </p>
+                
+<p>
+                    The programming of business activities can involve more effort than is required for atomic transactions, as less infrastructure is typically available.
+                    For example, the XA support found in many enterprise databases handles the necessary locking, 2PC and other functions transparently, allowing databases to be used in atomic transactions with minimal programmer effort.
+                    However, equivalent support for business activities, particularly with regard to compensation logic, must be added to the code of each new application by the programmer.
+                </p>
+                
+<p>
+                    The demonstration application illustrates one possible approach to creating services for use in business activities. It shows how to create a transaction participant that can expose existing business logic, originally intended for use in atomic transactions, as a service suitable for use in a business activity.
+                    This is a particularly common scenario for enterprises seeking to reuse existing logic by packaging it for use as a component in the composition of workflow type processes. <!-- TODO -->
+                </p>
+                
+<p>
+                    To use the Business Activity transaction type in the sample application, simply select it from the pull down menu at the top of the client interface.
+                    Notice that the client applications show the reservation resources as booked (committed) even before the transaction is terminated, subsequently performing a compensating transaction to reverse this effect if the transaction is cancelled.
+                </p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/deploying.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/deploying.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/deploying.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Deploying the sample application</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./about.html">Previous</A>
+<BR>
+                
+<A href="./atomictransaction.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Deploying the sample application<DIV class="bodytext">
+            
+                
+<p>
+                    To run the demonstration application, you must compile the source code; bundle it, along with the required metadata files, into appropriate deployment constructs and then deploy these into the application container. This process is somewhat involved, but fortunately is completely automated by an ant build script.
+                </p>
+                
+<p>
+                    To proceed, you will need to install ant (<a class="linkscoloured" href="http://ant.apache.org/" target="_blank">http://ant.apache.org/</a>) to take advantage of the supplied build file. Version 1.6.1 or later of ant is recommended for this application. The application may not function correctly with versions prior to 1.5.
+                </p>
+                
+<p>
+					Deploying into JBoss.
+				</p>
+				
+<p>
+					This release has been tested against JBoss 4.0.3SP1, 4.0.4GA and 4.0.5GA.
+			    </p>
+                
+<ol>
+                    
+<li>
+<p>Install JBoss.</p>
+                    
+</li>
+                    
+<li>
+<p>Edit the <code>&lt;xts-home&gt;/demo/jboss.properties</code> file, replacing the <code>JBOSS_HOSTNAME</code>, <code>JBOSS_PORT</code>, <code>JBOSS_URLSTUB</code>, <code>JBOSS_DEPLOY_DIR</code> and <code>JBOSS_HOME</code> variables to reflect the location of your JBoss installation</p>
+</li>
+                    
+<li>
+<p>Compile the application source, build the application archive file and deploy it into JBoss deploy directory by typing '<code>build.sh jboss clean deploy</code>' on Unix or '<code>build.bat jboss clean deploy</code>' on Windows</p>
+</li>
+                    
+<li>
+<p>Run the application server by using the run.sh or run.bat command.</p>
+</li>
+                    
+<li>
+<p>Invoke the demo client by browsing the URL (e.g.): <code>http://hostname:port/xts-demo/</code>
+</p>
+</li>
+                
+</ol>
+                
+<p>
+					Deploying into webMethods.
+				</p>
+				
+<p>
+					This release has been tested against webMethods 5.0.2.
+			    </p>
+			    
+<p>
+					N.B. The classpath used to run webMethods must be modified so that the stax-api.1.0.jar contained within this distribution is encountered prior to all other webMethods jars.
+                </p>
+                
+<ol>
+                    
+<li>
+<p>Install webMethods.</p>
+                    
+</li>
+                    
+<li>
+<p>Edit the <code>&lt;xts-home&gt;/demo/webmethods.properties</code> file, replacing the <code>WEBMETHODS_HOSTNAME</code>, <code>WEBMETHODS_PORT</code>, <code>WEBMETHODS_URLSTUB</code>, <code>WEBMETHODS_DEPLOY_DIR</code> and <code>WEBMETHODS_HOME</code> variables to reflect the location of your webMethods installation</p>
+</li>
+                    
+<li>
+<p>Compile the application source, build the application archive file and deploy it into webMethods deploy directory by typing '<code>build.sh webmethods clean deploy</code>' on Unix or '<code>build.bat webmethods clean deploy</code>' on Windows</p>
+</li>
+                    
+<li>
+<p>Run the application from the deploy directory by using the webMethods runapp command.</p>
+</li>
+                    
+<li>
+<p>Invoke the demo client by browsing the URL (e.g.): <code>http://hostname:port/xts-demo/</code>
+</p>
+</li>
+                
+</ol>
+                
+<p>
+                This release of the demo application includes the ability to run the client against a mixture of backend webservices. The property files contain the URLs of the webservices, which can be changed to exercise any combination and demonstrate a distributed transaction.
+                The services are started using the same mechanism as above. Each platform will be running its own copy of the webservices but the deployed client will access those services configured in the relevant property file.
+                </p>
+                
+<p>Using the application</p>
+                
+<ul>
+                    
+<li>
+<p>When invoked, the client will attempt to begin a transaction, reserve theatre tickets, a restaurant table and a taxi according to the parameters you have selected, then commit the transaction. It will log each step of its activity to the console window. As the transaction proceeds, each of the Web Services will pop up a window of its own in which its state and activity log can be seen. Some events in the service code are also logged to the console.</p>
+</li>
+                    
+<li>
+<p>The three server applications support a manual transaction control mode which you can use to simulate transaction failures. Use the Change Mode button on the server GUIs. Notice that the client throws an exception if the transaction is rolled back. [ Note: The manual commit mode overrides the normal availability checks in the services, so overbooking may occur. ]</p>
+</li>
+                    
+<li>
+<p>The following pages explain the two transaction models available in the XML Transaction , Atomic Transactions and Business Activities. Reading the following pages will help you understand the events taking place within the sample application.</p>
+</li>
+                
+</ul>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/JBoss_DivOfRH_RGB.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/JBoss_DivOfRH_RGB.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/arjuna_strapline.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/arjuna_strapline.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/header_grid.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/header_grid.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/icon_email.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/icon_email.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/icon_printer.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/icon_printer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/menu_spacer.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/menu_spacer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/search_bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/search_bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/spacer.jpg
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/spacer.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/trans_spacer.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/html/images/look_and_feel/trans_spacer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/index.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/index.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/index.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Introduction</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./installcontent.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Introduction<DIV class="bodytext">
+            
+                
+<p>
+                    Welcome to the "Night Out" sample application for the XML Transaction component of JBossTS 4.2.2.
+                </p>
+                
+<p>
+                    This documentation will help you get started with using the JBossTS Web services transactioning product.
+                </p>
+                
+<p>
+                    This trail map is structured as follows:
+                    <ul>
+                        
+<li>
+<a class="linkscoloured" href="installcontent.html">Installation Content</a>: Details the components which have been installed.</li>
+                        
+<li>
+<a class="linkscoloured" href="about.html">About the Sample Application</a>: An explanatory overview of the sample application.</li>
+                        
+<li>
+<a class="linkscoloured" href="deploying.html">Deploying the Sample Application</a>: Shows how to deploy and run the sample.</li>
+                        
+<li>
+<a class="linkscoloured" href="atomictransaction.html">Atomic Transactions</a>: Overview and example for short lived ACID transactions style.</li>
+                        
+<li>
+<a class="linkscoloured" href="businessactivity.html">Business Activities</a>: Extended transactions for long running business processes.</li>
+                        
+<li>
+<a class="linkscoloured" href="sourcecode.html">Source code</a>: How the sample application is structured and built.</li>
+                        
+<li>
+<a class="linkscoloured" href="wherenext.html">Where Next?</a>: Further reading and suggested next steps.</li>
+                    
+</ul>
+                
+</p>
+                
+<p>
+                    Use the links in the panel on the left to navigate the documentation. On the following pages, click the 'Home' link to return to this page.
+                </p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/installcontent.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/installcontent.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/installcontent.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Installation Content</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./about.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Installation Content<DIV class="bodytext">
+            
+                
+<p>
+                    The installer should have installed the following directories under &lt;jbosst 4.2.2 install&gt;/wst directory:
+                    <ul>
+                        
+<p>conf: product configuration files.</p>
+                        
+<p>coordinator: an application independent version of the transaction coordinator.</p>
+                        
+<p>demo: a sample application and introductory documentation.</p>
+                        
+<p>docs: product manuals and API javadocs.</p>
+                        
+<p>lib: jar files for the JBossTS components and their 3rd party prerequisites.</p>
+                        
+<p>webapps: pre built J2EE web applications for the product components.</p>
+                    
+</ul>
+                
+</p>
+                
+<p>
+                    In addition, you will require a Web services platform on which to deploy and run the product.
+				    This release of the XML Transaction component of JBossTS 4.2.2 is designed to run within JBoss and webMethods.
+				</p>
+				
+<p>
+    				This release has been tested on JBoss 4.0.3SP1, 4.0.4GA, 4.0.5GA and webMethods 5.0.2.
+                </p>
+                
+<p>
+                    To compile, deploy and run the sample application we also recommend using java SDK 1.4.2 and Apache ant 1.6.1 or later.
+                    If you do not already have these, you can download them from <a class="linkscoloured" href="http://java.sun.com/">java website</a> and the <a class="linkscoloured" href="http://ant.apache.org/">ant website</a>.
+                </p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/sourcecode.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/sourcecode.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/sourcecode.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Source code overview</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./businessactivity.html">Previous</A>
+<BR>
+                
+<A href="./wherenext.html">Next</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Source code overview<DIV class="bodytext">
+            
+                
+<p>
+                    You can begin experimenting with the XML Transaction component of JBoss 4.2.2 by editing the sample application source code, which is heavily commented to assist your understanding. The source code can be found in the &lt;jbossts 4.2.2 install&gt;/wst/demo/src directory.
+                </p>
+                
+<p>
+                    It is structured as follows:
+                </p>
+                
+<p>
+                    
+<ul>
+                        
+<li>
+                            
+<p>
+                                com/arjuna/xts/nightout/clients/
+                            </p>
+                            
+<ul>
+                                
+<li>
+                                    
+<p>
+                                        jboss/BasicClient.java: A servlet that processes the form input and runs either an Atomic Transaction or Business Activity to make the bookings.
+                                    </p>
+                                    
+<p>
+                                        This servlet uses the JBoss JAX-RPC implementation as the SOAP transport library.
+                                    </p>
+                                
+</li>
+                                
+<li>
+                                    
+<p>
+                                        jboss/restaurant/* : JBoss JAX-RPC client interfaces for accessing the restaurant web services.
+                                    </p>
+                                
+</li>
+                                
+<li>
+                                    
+<p>
+                                        jboss/taxi/* : JBoss JAX-RPC client interfaces for accessing the taxi web services.
+                                    </p>
+                                
+</li>
+                                
+<li>
+                                    
+<p>
+                                        jboss/theatre/* : JBoss JAX-RPC client interfaces for accessing the theatre web services.
+                                    </p>
+                                
+</li>
+                                
+<li>
+                                    
+<p>
+                                        weblogic/BasicClient.java: A servlet that processes the form input and runs either an Atomic Transaction or Business Activity to make the bookings.
+                                    </p>
+                                    
+<p>
+                                        This servlet uses the WebLogic JAX-RPC implementation as the SOAP transport library.
+                                    </p>
+                                
+</li>
+                                
+<li>
+                                    
+<p>
+                                        weblogic/proxies/* : WebLogic JAX-RPC client side code for accessing the Web services. This is automatically generated code.
+                                    </p>
+                                
+</li>
+                                
+<li>
+                                    
+<p>
+                                        webmethods/BasicClient.java: A servlet that processes the form input and runs either an Atomic Transaction or Business Activity to make the bookings.
+                                    </p>
+                                
+</li>
+                            
+</ul>
+                        
+</li>
+                        
+<li>
+                            
+<p>
+                                com/arjuna/xts/nightout/services/[Restuarant|Taxi|Theatre]/
+                            </p>
+                            
+<ul>
+                                
+<li>
+                                    
+<p>Each of these three Web services has similar structure, featuring a *Manager.java class (the transactional business logic, knowing nothing of Web services),
+                                    a *View.java file (the GUI component, largely tool generated), and the files that expose the business logic as transactional Web services.
+                                    In the filenames, AT denotes Atomic Transaction, whilst BA is for Business Activities. The *Service.java file is the business interface, whilst the *Participant.java file has the transaction management code.
+                                    </p>
+                                
+</li>
+                            
+</ul>
+                        
+</li>
+                    
+</ul>
+                
+</p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/styles.css
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/styles.css	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/styles.css	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+A:hover {
+	COLOR: #2fa9ec; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline
+}
+A {
+	COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none
+}
+.menuheader {
+	FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.menuoptions {
+	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #585858; LINE-HEIGHT: normal; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.bodytext {
+	FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.bodyheader {
+	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.quotetext {
+	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #253169; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.boldbodytext {
+	FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #585858; FONT-FAMILY: Arial, Helvetica, sans-serif
+}
+.linkscoloured {
+	FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #2fa9ec; FONT-FAMILY: Arial, Helvetica, sans-serif
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/html/wherenext.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/html/wherenext.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/html/wherenext.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems">
+<META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service">
+<TITLE>XML Transaction Service Demonstration Application: Where next?</TITLE>
+<LINK href="./styles.css" rel="stylesheet" type="text/css">
+<SCRIPT type="text/javascript" language="JavaScript">
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&body=" + location.href;
+}
+                </SCRIPT>
+</HEAD>
+<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+<TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+    
+<TR>
+<TD width="494"><IMG src="./images/look_and_feel/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" width="178" height="63"></TD><TD width="233"><IMG src="./images/look_and_feel/arjuna_strapline.gif" alt="arjuna strap line" width="233" height="63"></TD>
+</TR>
+    
+<TR>
+<TD colspan="2">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="172" valign="top">
+<FORM name="form1" method="post" action="">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+            
+<P class="menuheader">Trail map<DIV class="menuoptions">
+    
+<A href="./index.html">Introduction</A>
+<BR>
+    
+<A href="./installcontent.html">Installation Content</A>
+<BR>
+    
+<A href="./about.html">About the Sample Application</A>
+<BR>
+    
+<A href="./deploying.html">Deploying the Sample Application</A>
+<BR>
+    
+<A href="./atomictransaction.html">Atomic Transactions</A>
+<BR>
+    
+<A href="./businessactivity.html">Business Activities</A>
+<BR>
+    
+<A href="./sourcecode.html">Sample Application Source Code</A>
+<BR>
+    
+<A href="./wherenext.html">Where next?</A>
+<BR>
+
+</DIV>
+</P>
+            
+<P class="menuheader">Navigation<DIV class="menuoptions">
+                
+<A href="./index.html">Start Trailmap</A>
+<BR>
+                
+<A href="./sourcecode.html">Previous</A>
+<BR>
+            
+</DIV>
+</P>
+        
+</TD>
+</TR>
+<TR>
+<TD valign="top" background="./images/look_and_feel/search_bg.gif" bgcolor="#FFFFFF" class="bodytext">
+<BR>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+<TR>
+<TD width="15"><A href="javascript:printThisPage();"><IMG src="./images/look_and_feel/icon_printer.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:printThisPage();">print this page</A></TD>
+</TR>
+<TR>
+<TD width="15"><A href="javascript:emailThisPage();"><IMG src="./images/look_and_feel/icon_email.gif" width="15" height="14" border="0"></A></TD><TD class="bodytext"><A href="javascript:emailThisPage();">email this page</A></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD><TD width="6" height="214"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD><TD width="555" valign="top">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD width="537" valign="top">
+<TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+<TR>
+<TD height="57">
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+<TR>
+<TD height="8" background="./images/look_and_feel/header_grid.gif" bgcolor="#FFFFFF"><IMG src="./images/look_and_feel/trans_spacer.gif" width="6" height="10"></TD>
+</TR>
+</TABLE>
+<TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+<TR>
+<TD valign="top" bgcolor="#FFFFFF">
+<P class="menuheader">Where next?<DIV class="bodytext">
+            
+                
+<p>
+                    For further information, please consult the XML Transaction component of JBossTS 4.2.2 product documentation set.
+                    <li>
+<a class="linkscoloured" href="../../docs/Programmers Guide.pdf" target="_blank">Programmers Guide</a> (.pdf)</li>
+                
+</p>
+                
+<p>
+                    A collection of links to additional background reading material on Web services coordination and transactions is also avaialble on the JBossTS labs site:
+                    <a class="linkscoloured" href="http://labs.jboss.com/jbosstm" target="_blank">http://labs.jboss.com/jbosstm</a>
+                
+</p>
+                
+<p>
+
+                    Updates to the XML Transaction component of JBossTS, as well as additional sample material, are periodically made available via the product web site at
+                    <a class="linkscoloured" href="http://labs.jboss.com/jbosstm" target="_blank">http://labs.jboss.com/jbosstm</a>
+                    Please drop by from time to time to ensure you have the most comprehensive material available.
+                    You can also discuss the software with its authors and other users on our
+                    <a class="linkscoloured" href="http://www.jboss.com/index.html?module=bb&op=viewforum&f=240">forum</a>.
+                </p>
+            
+        
+</DIV>
+</P>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+<TR>
+<TD height="8" background="./images/look_and_feel/trans_spacer.gif" bgcolor="#FFFFFF"></TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+</TABLE>
+</TD>
+</TR>
+    
+<TR>
+<TD width="727" valign="top" align="right" colspan="3"><FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    All Rights Reserved.
+
+                    <br>
+<a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a><IMG src="./images/look_and_feel/spacer.jpg" alt="" border="0">
+
+                    +44 191 243 0676
+                </FONT></TD>
+</TR>
+
+</TABLE>
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/jboss.properties
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/jboss.properties	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/jboss.properties	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,65 @@
+<!--
+  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.
+-->
+<!-- JBoss property file
+  The following variables should be replaced for JBoss deployment
+  
+  JBOSS_HOSTNAME - the hostname of the JBoss installation (localhost)
+  JBOSS_PORT - the port of the JBoss web server (8080)
+  JBOSS_URLSTUB - the url stub for the demo webservices (xtsdemowebservices)
+  JBOSS_DEPLOY_DIR - the deploy directory of the JBoss instance ([JBOSS_HOME]/server/all/deploy)
+  
+  You can choose any combination of the URL entries provided that there is an entry for each service.
+  The default services are the ones running within JBoss.
+-->
+<arjuna>
+  <hostname>localhost</hostname>
+  <port>8080</port>
+  <urlstub>xtsdemowebservices</urlstub>
+  <deploy>
+    <dir>JBOSS_DEPLOY_DIR</dir>
+  </deploy>
+
+  <!-- webMethods services
+  <restaurantATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/RestaurantServiceATService</restaurantATURL>
+  <restaurantBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/RestaurantServiceBAService</restaurantBAURL>
+  <taxiATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TaxiServiceATService</taxiATURL>
+  <taxiBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TaxiServiceBAService</taxiBAURL>
+  <theatreATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TheatreServiceATService</theatreATURL>
+  <theatreBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TheatreServiceBAService</theatreBAURL>
+  -->
+
+  <!-- WebLogic services
+  <restaurantATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/RestaurantServiceATService</restaurantATURL>
+  <restaurantBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/RestaurantServiceBAService</restaurantBAURL>
+  <taxiATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TaxiServiceATService</taxiATURL>
+  <taxiBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TaxiServiceBAService</taxiBAURL>
+  <theatreATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TheatreServiceATService</theatreATURL>
+  <theatreBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TheatreServiceBAService</theatreBAURL>
+  -->
+
+  <!-- JBoss services -->
+  <restaurantATURL>http://localhost:8080/xtsdemowebservices/RestaurantServiceATService</restaurantATURL>
+  <restaurantBAURL>http://localhost:8080/xtsdemowebservices/RestaurantServiceBAService</restaurantBAURL>
+  <taxiATURL>http://localhost:8080/xtsdemowebservices/TaxiServiceATService</taxiATURL>
+  <taxiBAURL>http://localhost:8080/xtsdemowebservices/TaxiServiceBAService</taxiBAURL>
+  <theatreATURL>http://localhost:8080/xtsdemowebservices/TheatreServiceATService</theatreATURL>
+  <theatreBAURL>http://localhost:8080/xtsdemowebservices/TheatreServiceBAService</theatreBAURL>
+</arjuna>

Added: 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	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/client/BasicClient.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,620 @@
+/*
+ * 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.
+ */
+/*
+ * BasicClient.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: BasicClient.java,v 1.10 2004/12/02 16:52:58 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.client;
+
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mw.wst.UserBusinessActivityFactory;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mw.wst.UserTransactionFactory;
+import com.arjuna.mw.wst.client.JaxWSHeaderContextProcessor;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.jboss.jbosstm.xts.demo.restaurant.IRestaurantService;
+import com.jboss.jbosstm.xts.demo.restaurant.IRestaurantServiceBA;
+import com.jboss.jbosstm.xts.demo.taxi.ITaxiService;
+import com.jboss.jbosstm.xts.demo.taxi.ITaxiServiceBA;
+import com.jboss.jbosstm.xts.demo.theatre.ITheatreService;
+import com.jboss.jbosstm.xts.demo.theatre.ITheatreServiceBA;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * A very basic client application that drives the
+ * (transactional) Web Services to arrange a night out.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Id: BasicClient.java,v 1.10 2004/12/02 16:52:58 kconner Exp $
+ */
+public class BasicClient extends HttpServlet
+{
+    /**
+     * The client serial version UID.
+     */
+    private static final long serialVersionUID = 7728495576623420083L ;
+
+    /**
+     * The servlet context.
+     */
+    private ServletContext context ;
+
+    /***** RESTAURANT SERVICE *****/
+
+    /**
+     * The namespace for the Restaurant webservice.
+     */
+    private static final String RESTAURANT_NS = "http://www.jboss.com/jbosstm/xts/demo/Restaurant" ;
+    /**
+     * The prefix for the Restaurant webservice.
+     */
+    private static final String RESTAURANT_PREFIX = "restaurant";
+    /**
+     * The local name for the AT Restaurant webservice.
+     */
+    private static final String RESTAURANT_SERVICE_AT = "RestaurantServiceATService";
+    /**
+     * The QName for the AT Restaurant webservice.
+     */
+    private static final QName RESTAURANT_SERVICE_AT_QNAME
+            = new QName(RESTAURANT_NS, RESTAURANT_SERVICE_AT, RESTAURANT_PREFIX);
+    /**
+     * The local name for the BA Restaurant webservice.
+     */
+    private static final String RESTAURANT_SERVICE_BA = "RestaurantServiceBAService" ;
+    /**
+     * The QName for the AT Restaurant webservice.
+     */
+    private static final QName RESTAURANT_SERVICE_BA_QNAME
+            = new QName(RESTAURANT_NS, RESTAURANT_SERVICE_BA, RESTAURANT_PREFIX);
+    /**
+     * The local name for the AT Restaurant _.
+     */
+    private static final String RESTAURANT_ENDPOINT_AT = "RestaurantServiceAT";
+    /**
+     * The QName for the AT Restaurant endpoint.
+     */
+    private static final QName RESTAURANT_ENDPOINT_AT_QNAME
+            = new QName(RESTAURANT_NS, RESTAURANT_ENDPOINT_AT, RESTAURANT_PREFIX);
+    /**
+     * The local name for the BA Restaurant endpoint.
+     */
+    private static final String RESTAURANT_ENDPOINT_BA = "RestaurantServiceBA";
+    /**
+     * The QName for the BA Restaurant endpoint.
+     */
+    private static final QName RESTAURANT_ENDPOINT_BA_QNAME
+            = new QName(RESTAURANT_NS, RESTAURANT_ENDPOINT_BA, RESTAURANT_PREFIX);
+
+    /***** THEATRE SERVICE *****/
+
+    /**
+     * The namespace for the Theatre webservice.
+     */
+    private static final String THEATRE_NS = "http://www.jboss.com/jbosstm/xts/demo/Theatre" ;
+    /**
+     * The prefix for the Theatre webservice.
+     */
+    private static final String THEATRE_PREFIX = "theatre";
+    /**
+     * The local name for the AT Theatre webservice.
+     */
+    private static final String THEATRE_SERVICE_AT = "TheatreServiceATService";
+    /**
+     * The QName for the AT Theatre webservice.
+     */
+    private static final QName THEATRE_SERVICE_AT_QNAME
+            = new QName(THEATRE_NS, THEATRE_SERVICE_AT, THEATRE_PREFIX);
+    /**
+     * The local name for the BA Theatre webservice.
+     */
+    private static final String THEATRE_SERVICE_BA = "TheatreServiceBAService" ;
+    /**
+     * The QName for the AT Theatre webservice.
+     */
+    private static final QName THEATRE_SERVICE_BA_QNAME
+            = new QName(THEATRE_NS, THEATRE_SERVICE_BA, THEATRE_PREFIX);
+    /**
+     * The local name for the AT Theatre endpoint.
+     */
+    private static final String THEATRE_ENDPOINT_AT = "TheatreServiceAT";
+    /**
+     * The QName for the AT Theatre endpoint.
+     */
+    private static final QName THEATRE_ENDPOINT_AT_QNAME
+            = new QName(THEATRE_NS, THEATRE_ENDPOINT_AT, THEATRE_PREFIX);
+    /**
+     * The local name for the BA Theatre endpoint.
+     */
+    private static final String THEATRE_ENDPOINT_BA = "TheatreServiceBA";
+    /**
+     * The QName for the BA Theatre endpoint.
+     */
+    private static final QName THEATRE_ENDPOINT_BA_QNAME
+            = new QName(THEATRE_NS, THEATRE_ENDPOINT_BA, THEATRE_PREFIX);
+
+    /***** TAXI SERVICE *****/
+
+    /**
+     * The namespace for the Taxi webservice.
+     */
+    private static final String TAXI_NS = "http://www.jboss.com/jbosstm/xts/demo/Taxi" ;
+    /**
+     * The prefix for the Taxi webservice.
+     */
+    private static final String TAXI_PREFIX = "taxi";
+    /**
+     * The local name for the AT Taxi webservice.
+     */
+    private static final String TAXI_SERVICE_AT = "TaxiServiceATService";
+    /**
+     * The QName for the AT Taxi webservice.
+     */
+    private static final QName TAXI_SERVICE_AT_QNAME
+            = new QName(TAXI_NS, TAXI_SERVICE_AT, TAXI_PREFIX);
+    /**
+     * The local name for the BA Taxi webservice.
+     */
+    private static final String TAXI_SERVICE_BA = "TaxiServiceBAService" ;
+    /**
+     * The QName for the AT Taxi webservice.
+     */
+    private static final QName TAXI_SERVICE_BA_QNAME
+            = new QName(TAXI_NS, TAXI_SERVICE_BA, TAXI_PREFIX);
+    /**
+     * The local name for the AT Taxi endpoint.
+     */
+    private static final String TAXI_ENDPOINT_AT = "TaxiServiceAT";
+    /**
+     * The QName for the AT Taxi endpoint.
+     */
+    private static final QName TAXI_ENDPOINT_AT_QNAME
+            = new QName(TAXI_NS, TAXI_ENDPOINT_AT, TAXI_PREFIX);
+    /**
+     * The local name for the BA Taxi endpoint.
+     */
+    private static final String TAXI_ENDPOINT_BA = "TaxiServiceBA";
+    /**
+     * The QName for the BA Taxi endpoint.
+     */
+    private static final QName TAXI_ENDPOINT_BA_QNAME
+            = new QName(TAXI_NS, TAXI_ENDPOINT_BA, TAXI_PREFIX);
+
+    /***** Client Handles for Service Endpoint Ports *****/
+
+    /**
+     * The atomic transaction restaurant stub.
+     */
+    private IRestaurantService restaurantAT;
+    /**
+     * The atomic transaction theatre stub.
+     */
+    private ITheatreService theatreAT;
+    /**
+     * The atomic transaction taxi stub.
+     */
+    private ITaxiService taxiAT;
+    /**
+     * The business activity restaurant stub.
+     */
+    private IRestaurantServiceBA restaurantBA;
+    /**
+     * The business activity theatre stub.
+     */
+    private ITheatreServiceBA theatreBA;
+    /**
+     * The business activity taxi stub.
+     */
+    private ITaxiServiceBA taxiBA;
+
+    /***** Endpoint Addresses *****/
+
+    /**
+     * URL of restaurant AT
+     */
+    private String restaurantATURL ;
+    /**
+     * URL of restaurant BA
+     */
+    private String restaurantBAURL ;
+    /**
+     * URL of taxi AT
+     */
+    private String taxiATURL ;
+    /**
+     * URL of taxi BA
+     */
+    private String taxiBAURL ;
+    /**
+     * URL of theatre AT
+     */
+    private String theatreATURL ;
+    /**
+     * URL of theatre BA
+     */
+    private String theatreBAURL ;
+
+    /***** WSDL file locations *****/
+
+    /**
+     * URL of restaurant AT
+     */
+    private final String restaurantATWSDL = "file:/home/adinn/jboss/jbossts/vanilla/trunk/XTS/xts-install/demo/dd/jboss/wsdl/RestaurantServiceAT.wsdl";
+    /**
+     * URL of restaurant BA
+     */
+    private final String restaurantBAWSDL = "file:/home/adinn/jboss/jbossts/vanilla/trunk/XTS/xts-install/demo/dd/jboss/wsdl/RestaurantServiceBA.wsdl";
+    /**
+     * URL of taxi AT
+     */
+    private final String taxiATWSDL = "file:/home/adinn/jboss/jbossts/vanilla/trunk/XTS/xts-install/demo/dd/jboss/wsdl/TaxiServiceAT.wsdl";
+    /**
+     * URL of taxi BA
+     */
+    private final String taxiBAWSDL = "file:/home/adinn/jboss/jbossts/vanilla/trunk/XTS/xts-install/demo/dd/jboss/wsdl/TaxiServiceBA.wsdl";
+    /**
+     * URL of theatre AT
+     */
+    private final String theatreATWSDL = "file:/home/adinn/jboss/jbossts/vanilla/trunk/XTS/xts-install/demo/dd/jboss/wsdl/TheatreServiceAT.wsdl";
+    /**
+     * URL of theatre BA
+     */
+    private final String theatreBAWSDL = "file:/home/adinn/jboss/jbossts/vanilla/trunk/XTS/xts-install/demo/dd/jboss/wsdl/TheatreServiceBA.wsdl";
+
+    /**
+     * The initialised flag.
+     */
+    private boolean initialised ;
+    
+    /**
+     * Initialise the servlet.
+     * @param servletConfig The servlet configuration.
+     */
+    public void init(final ServletConfig config)
+        throws ServletException
+    {
+        final String baseURL = "http://localhost:8080/xtsdemowebservices/" ;
+
+        restaurantATURL = getURL(config, "restaurantATURL", baseURL + RESTAURANT_SERVICE_AT);
+        restaurantBAURL = getURL(config, "restaurantBAURL", baseURL + RESTAURANT_SERVICE_BA);
+        taxiATURL = getURL(config, "taxiATURL", baseURL + TAXI_SERVICE_AT);
+        taxiBAURL = getURL(config, "taxiBAURL", baseURL + TAXI_SERVICE_BA);
+        theatreATURL = getURL(config, "theatreATURL", baseURL + THEATRE_SERVICE_AT);
+        theatreBAURL = getURL(config, "theatreBAURL", baseURL + THEATRE_SERVICE_BA);
+
+        context = config.getServletContext();
+    }
+
+    /**
+     * configure the XTS client handler which manages transaction flow for invocations of the services
+     *
+     * @param bindingProvider
+     */
+    private void configureClientHandler(BindingProvider bindingProvider)
+    {
+        Handler handler = new JaxWSHeaderContextProcessor();
+        List<Handler> handlers = Collections.singletonList(handler);
+        bindingProvider.getBinding().setHandlerChain(handlers);
+    }
+
+    /**
+     * Initialise if necessary
+     */
+    private synchronized void initialise()
+    throws ServletException
+    {
+        if (!initialised)
+        {
+            try
+            {
+                restaurantAT = getService(RESTAURANT_SERVICE_AT_QNAME, RESTAURANT_ENDPOINT_AT_QNAME,
+                        restaurantATURL, restaurantATWSDL, IRestaurantService.class);
+                configureClientHandler((BindingProvider)restaurantAT);
+
+                restaurantBA = getService(RESTAURANT_SERVICE_BA_QNAME, RESTAURANT_ENDPOINT_BA_QNAME,
+                        restaurantBAURL, restaurantBAWSDL, IRestaurantServiceBA.class);
+                configureClientHandler((BindingProvider)restaurantBA);
+
+                theatreAT = getService(THEATRE_SERVICE_AT_QNAME, THEATRE_ENDPOINT_AT_QNAME,
+                        theatreATURL, theatreATWSDL, ITheatreService.class);
+                configureClientHandler((BindingProvider)theatreAT);
+
+                theatreBA = getService(THEATRE_SERVICE_BA_QNAME, THEATRE_ENDPOINT_BA_QNAME,
+                        theatreBAURL, theatreBAWSDL, ITheatreServiceBA.class);
+                configureClientHandler((BindingProvider)theatreBA);
+
+                taxiAT = getService(TAXI_SERVICE_AT_QNAME, TAXI_ENDPOINT_AT_QNAME,
+                        taxiATURL, taxiATWSDL, ITaxiService.class);
+                configureClientHandler((BindingProvider)taxiAT);
+
+                taxiBA = getService(TAXI_SERVICE_BA_QNAME, TAXI_ENDPOINT_BA_QNAME,
+                        taxiBAURL, taxiBAWSDL, ITaxiServiceBA.class);
+                configureClientHandler((BindingProvider)taxiBA);
+
+                /*
+                W3CEndpointReference endpoint;
+
+                endpoint = getService(RESTAURANT_SERVICE_AT_QNAME, RESTAURANT_ENDPOINT_AT_QNAME,
+                        restaurantATURL, restaurantATWSDL);
+                restaurantAT = (IRestaurantService)endpoint.getPort(IRestaurantService.class);
+                configureClientHandler((BindingProvider)restaurantAT);
+
+                endpoint = getService(RESTAURANT_SERVICE_BA_QNAME, RESTAURANT_ENDPOINT_BA_QNAME,
+                        restaurantBAURL, restaurantBAWSDL);
+                restaurantBA = (IRestaurantServiceBA)endpoint.getPort(IRestaurantServiceBA.class);
+                configureClientHandler((BindingProvider)restaurantAT);
+
+                endpoint = getService(TAXI_SERVICE_AT_QNAME, TAXI_ENDPOINT_AT_QNAME,
+                        taxiATURL, taxiATWSDL);
+                taxiAT = (ITaxiService)endpoint.getPort(ITaxiService.class);
+                configureClientHandler((BindingProvider)restaurantAT);
+
+                endpoint = getService(TAXI_SERVICE_BA_QNAME, TAXI_ENDPOINT_BA_QNAME,
+                        taxiBAURL, taxiBAWSDL);
+                taxiBA = (ITaxiServiceBA)endpoint.getPort(ITaxiServiceBA.class) ;
+                configureClientHandler((BindingProvider)restaurantAT);
+
+                endpoint = getService(THEATRE_SERVICE_AT_QNAME, THEATRE_ENDPOINT_AT_QNAME,
+                        theatreATURL, theatreATWSDL);
+                theatreAT = (ITheatreService)endpoint.getPort(ITheatreService.class);
+                configureClientHandler((BindingProvider)restaurantAT);
+
+                endpoint = getService(THEATRE_SERVICE_BA_QNAME, THEATRE_ENDPOINT_BA_QNAME,
+                        theatreBAURL, theatreBAWSDL);
+                theatreBA = (ITheatreServiceBA)endpoint.getPort(ITheatreServiceBA.class);
+                configureClientHandler((BindingProvider)restaurantAT);
+                */
+            }
+            catch (final Exception ex)
+            {
+                ex.printStackTrace();
+                throw new ServletException(ex);
+            }
+            initialised = true ;
+        }
+    }
+
+    /**
+     * Simple wrapper to allow our test method to be invoked when
+     * running in a servlet container, taking parameters from the
+     * request URL and displaying the outcome on the resulting html page.
+     *
+     * @param request
+     * @param response
+     * @throws ServletException
+     * @throws IOException
+     */
+    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+    {
+        initialise() ;
+
+        // get business logic params from the form submission.
+        int restaurantSeats = Integer.parseInt(request.getParameter("restaurant"));
+        int theatreSeats = Integer.parseInt(request.getParameter("theatrecount"));
+        int theatreArea = Integer.parseInt(request.getParameter("theatrearea"));
+        int taxiCount = Integer.parseInt(request.getParameter("taxi"));
+        boolean bookTaxi = (taxiCount >= 1 ? true : false);
+
+        String result = "Transaction finished OK.";
+        String txType = request.getParameter("txType");
+
+        try
+        {
+            if ("AtomicTransaction".equals(txType))
+            {
+                testAtomicTransaction(restaurantSeats, theatreSeats, theatreArea, bookTaxi);
+            }
+            else if ("BusinessActivity".equals(txType))
+            {
+                testBusinessActivity(restaurantSeats, theatreSeats, theatreArea, bookTaxi);
+            }
+            else
+            {
+                result = "Unknown transaction type " + txType;
+            }
+        }
+        catch (final TransactionRolledBackException tre)
+        {
+            result = "Transaction rolled back" ;
+            System.out.println("Transaction rolled back") ;
+        }
+        catch (Exception e)
+        {
+            result = "Transaction failed! Cause: " + e.toString();
+            System.out.println("CLIENT: problem: ");
+            e.printStackTrace(System.out);
+        }
+
+        request.setAttribute("result", result);
+        context.getRequestDispatcher("/index.jsp").forward(request, response);
+    }
+
+    /**
+     * Run a simple transaction involving three Web Services.
+     * Use the Atomic Transaction type.
+     * <p/>
+     * Note: due to the implementation of the transaction infrastructure,
+     * this method must be invoked with a web application container. It will
+     * not run correctly in a standalone java application.
+     *
+     * @throws Exception for any unexpected errors, such as a failure to commit.
+     */
+    private void testAtomicTransaction(int restaurantSeats, int theatreSeats, int theatreArea, boolean bookTaxi) throws Exception
+    {
+        System.out.println("CLIENT: obtaining userTransaction...");
+
+        UserTransaction ut = UserTransactionFactory.userTransaction();
+
+        System.out.println("CLIENT: starting the transaction...");
+
+        ut.begin();
+
+        System.out.println("CLIENT: transaction ID= " + ut.toString());
+
+        System.out.println("CLIENT: calling business Web Services...");
+
+        restaurantAT.bookSeats(restaurantSeats);
+        theatreAT.bookSeats(theatreSeats, theatreArea);
+        if (bookTaxi)
+        {
+            taxiAT.bookTaxi();
+        }
+
+        System.out.println("CLIENT: calling commit on the transaction...");
+
+        ut.commit();
+
+        System.out.println("done.");
+        System.out.flush();
+    }
+
+    /**
+     * Run a simple transaction involving three Web Services.
+     * Use the Business Activity type.
+     * <p/>
+     * Note: due to the implementation of the transaction infrastructure,
+     * this method must be invoked with a web application container. It will
+     * not run correctly in a standalone java application.
+     *
+     * @throws Exception for any unexpected errors, such as a failure to commit.
+     */
+    private void testBusinessActivity(int restaurantSeats, int theatreSeats, int theatreArea, boolean bookTaxi) throws Exception
+    {
+        System.out.println("CLIENT: obtaining userBusinessActivity...");
+
+        UserBusinessActivity uba = UserBusinessActivityFactory.userBusinessActivity();
+
+        System.out.println("CLIENT: starting the transaction...");
+
+        uba.begin();
+
+        System.out.println("CLIENT: transaction ID= " + uba.toString());
+
+        System.out.println("CLIENT: calling business Web Services...");
+
+        boolean isOK = false ;
+        try
+        {
+            if (restaurantBA.bookSeats(restaurantSeats) && theatreBA.bookSeats(theatreSeats, theatreArea))
+            {
+                isOK = !bookTaxi || taxiBA.bookTaxi() ;
+            }
+        }
+        catch (final Throwable th)
+        {
+            System.out.println("CLIENT: caught exception processing bookings, cancelling (" + th.getMessage() + ")") ;
+        }
+
+        if (isOK)
+        {
+            System.out.println("CLIENT: all OK");
+            System.out.println("CLIENT: calling close on the transaction...");
+            uba.close();
+        }
+        else
+        {
+            System.out.println("CLIENT: one or more services failed, calling cancel.");
+            uba.cancel();
+        }
+
+        System.out.println("CLIENT: done.");
+        System.out.flush();
+    }
+
+    /**
+     * @param config The servlet config
+     * @param property The property name
+     * @param defaultValue The default value.
+     * @return The initialisation property value or the default value if not present. 
+     */
+    private String getURL(final ServletConfig config, final String property, final String defaultValue)
+    {
+        final String value = config.getInitParameter(property) ;
+        return (value == null ? defaultValue : value) ;
+    }
+    
+    /**
+     * Get an endpoint reference for a service so we can create a JaxWS port for it
+     * @param serviceName the QName of the service in question..
+     * @param endpointName the QName of the endpoint associated with the service
+     * @param address a string representation of the service URL. null is ok if this is a service located in the
+     * same app as the client
+     * @return a W3CEndpointReference from which the service port can be obtained.
+     */
+    private <T> T getService(final QName serviceName, final QName endpointName,
+                                            final String address, final String wsdlURL, final Class<T> clazz)
+            throws MalformedURLException
+    {
+        URL addressURL = new URL(address);
+        Service service = Service.create(addressURL, serviceName);
+        return service.getPort(endpointName, clazz);
+    }
+/*
+ * n.b. we cannot do this because the service is not in the same webapp as this client.
+ * it would be ok to do this from the same war file.
+    private W3CEndpointReference getService(final QName serviceName, final QName endpointName,
+                                            final String address, final String wsdlURL)
+            throws IllegalStateException
+    {
+        try {
+            W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+            builder.serviceName(serviceName);
+            builder.endpointName(endpointName);
+            builder.wsdlDocumentLocation(wsdlURL);
+            // don't use address -- only getting local service from same app
+            return builder.build();
+        } catch (IllegalStateException e) {
+            // must have been given a bad address
+            StringBuffer buffer = new StringBuffer();
+            buffer.append("CLIENT: failed to locate endpoint: \n\tendpoint name: ");
+            buffer.append(serviceName);
+            buffer.append("\n\tservice name: ");
+            buffer.append(endpointName);
+            buffer.append("\n\taddress: ");
+            buffer.append(address);
+            System.out.println(buffer.toString());
+            throw e;
+        }
+    }
+    */
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,30 @@
+
+package com.jboss.jbosstm.xts.demo.restaurant;
+
+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.1
+ * 
+ */
+ at WebService(name = "IRestaurantService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Restaurant")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface IRestaurantService {
+
+
+    /**
+     * 
+     * @param howMany
+     */
+    @WebMethod
+    public void bookSeats(
+        @WebParam(name = "how_many", partName = "how_many")
+        int howMany);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantServiceBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantServiceBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantServiceBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,34 @@
+
+package com.jboss.jbosstm.xts.demo.restaurant;
+
+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.1
+ * 
+ */
+ at WebService(name = "IRestaurantServiceBA", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Restaurant")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface IRestaurantServiceBA {
+
+
+    /**
+     * 
+     * @param howMany
+     * @return
+     *     returns boolean
+     */
+    @WebMethod
+    @WebResult(name = "bookSeatsBAResponse", partName = "bookSeatsBAResponse")
+    public boolean bookSeats(
+        @WebParam(name = "how_many", partName = "how_many")
+        int howMany);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceATService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceATService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceATService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,71 @@
+
+package com.jboss.jbosstm.xts.demo.restaurant;
+
+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;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.1
+ * 
+ */
+ at WebServiceClient(name = "RestaurantServiceATService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Restaurant", wsdlLocation = "file:/WEB-INF/wsdl/RestaurantServiceAT.wsdl")
+public class RestaurantServiceATService
+    extends Service
+{
+
+    private final static URL RESTAURANTSERVICEATSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.jboss.jbosstm.xts.demo.restaurant.RestaurantServiceATService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.jboss.jbosstm.xts.demo.restaurant.RestaurantServiceATService.class.getResource(".");
+            url = new URL(baseUrl, "file:/WEB-INF/wsdl/RestaurantServiceAT.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: 'file:/WEB-INF/wsdl/RestaurantServiceAT.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        RESTAURANTSERVICEATSERVICE_WSDL_LOCATION = url;
+    }
+
+    public RestaurantServiceATService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public RestaurantServiceATService() {
+        super(RESTAURANTSERVICEATSERVICE_WSDL_LOCATION, new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceATService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns IRestaurantService
+     */
+    @WebEndpoint(name = "RestaurantServiceAT")
+    public IRestaurantService getRestaurantServiceAT() {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceAT"), IRestaurantService.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns IRestaurantService
+     */
+    @WebEndpoint(name = "RestaurantServiceAT")
+    public IRestaurantService getRestaurantServiceAT(WebServiceFeature... features) {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceAT"), IRestaurantService.class, features);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceBAService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceBAService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/restaurant/RestaurantServiceBAService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,71 @@
+
+package com.jboss.jbosstm.xts.demo.restaurant;
+
+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;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.1
+ * 
+ */
+ at WebServiceClient(name = "RestaurantServiceBAService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Restaurant", wsdlLocation = "file:/WEB-INF/wsdl/RestaurantServiceBA.wsdl")
+public class RestaurantServiceBAService
+    extends Service
+{
+
+    private final static URL RESTAURANTSERVICEBASERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.jboss.jbosstm.xts.demo.restaurant.RestaurantServiceBAService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.jboss.jbosstm.xts.demo.restaurant.RestaurantServiceBAService.class.getResource(".");
+            url = new URL(baseUrl, "file:/WEB-INF/wsdl/RestaurantServiceBA.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: 'file:/WEB-INF/wsdl/RestaurantServiceBA.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        RESTAURANTSERVICEBASERVICE_WSDL_LOCATION = url;
+    }
+
+    public RestaurantServiceBAService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public RestaurantServiceBAService() {
+        super(RESTAURANTSERVICEBASERVICE_WSDL_LOCATION, new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceBAService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns IRestaurantServiceBA
+     */
+    @WebEndpoint(name = "RestaurantServiceBA")
+    public IRestaurantServiceBA getRestaurantServiceBA() {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceBA"), IRestaurantServiceBA.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns IRestaurantServiceBA
+     */
+    @WebEndpoint(name = "RestaurantServiceBA")
+    public IRestaurantServiceBA getRestaurantServiceBA(WebServiceFeature... features) {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceBA"), IRestaurantServiceBA.class, features);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,456 @@
+/*
+ * 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.
+ */
+/*
+ * RestaurantManager.java
+ *
+ * Copyright (c) 2003 Arjuna Technologies Ltd.
+ *
+ * $Id: RestaurantManager.java,v 1.3 2004/04/21 13:09:18 jhalliday Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.restaurant;
+
+import java.util.Hashtable;
+
+/**
+ * The transactional application logic for the Restaurant Service.
+ * <p/>
+ * Stores and manages seating reservations. Knows nothing about Web Services.
+ * Understands transactional booking lifecycle: unprepared, prepared, finished.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class RestaurantManager
+{
+    /**
+     * Create and initialise a new RestaurantManager instance.
+     */
+    public RestaurantManager()
+    {
+        setToDefault();
+    }
+
+    /**
+     * Book a number of seats in the restaurant.
+     *
+     * @param txID   The transaction identifier
+     * @param nSeats The number of seats requested
+     */
+    public void bookSeats(Object txID, int nSeats)
+    {
+        // locate any pre-existing request for the same transaction
+        Integer request = (Integer) unpreparedTransactions.get(txID);
+        if (request == null)
+        {
+            // this is the first request for this transaction
+            // setup the data structure to record it
+            request = new Integer(0);
+        }
+
+        // record the request, keyed to its transaction scope
+        request = new Integer(request.intValue() + nSeats);
+        unpreparedTransactions.put(txID, request);
+
+        // record the increased commitment to provide seating
+        nBookedSeats += nSeats;
+    }
+
+    /**
+     * Attempt to ensure availability of the requested seating.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean prepareSeats(Object txID)
+    {
+        // ensure that we have seen this transaction before
+        Integer request = (Integer) unpreparedTransactions.get(txID);
+        if (request == null)
+        {
+            return false; // error: transaction not registered
+        }
+        else
+        {
+            if (autoCommitMode)
+            {
+                if (request.intValue() <= nFreeSeats)
+                {
+                    // record the prepared transaction
+                    preparedTransactions.put(txID, request);
+                    unpreparedTransactions.remove(txID);
+                    // mark the prepared seats as unavailable
+                    nFreeSeats -= request.intValue();
+                    nPreparedSeats += request.intValue();
+                    return true;
+                }
+                else
+                {
+                    // we don't have enough seats available
+                    return false;
+                }
+            }
+            else
+            {
+                try
+                {
+                    // wait for a user commit/rollback decision
+                    isPreparationWaiting = true;
+                    synchronized (preparation)
+                    {
+                        preparation.wait();
+                    }
+                    isPreparationWaiting = false;
+
+                    // process the user decision
+                    if (isCommit)
+                    {
+                        // record the prepared transaction
+                        preparedTransactions.put(txID, request);
+                        unpreparedTransactions.remove(txID);
+                        // mark the prepared seats as unavailable
+                        nFreeSeats -= request.intValue();
+                        nPreparedSeats += request.intValue();
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+                    }
+                }
+                catch (Exception e)
+                {
+                    System.err.println("RestaurantManager.prepareSeats(): Unable to stop preparation.");
+                    return false;
+                }
+            }
+        }
+    }
+
+    /**
+     * Release booked or prepared seats.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean cancelSeats(Object txID)
+    {
+        boolean success = false;
+
+        // the transaction may be prepared, unprepared or unknown
+
+        if (preparedTransactions.containsKey(txID))
+        {
+            // undo the prepare operations
+            Integer request = (Integer) preparedTransactions.remove(txID);
+            nFreeSeats += request.intValue();
+            nPreparedSeats -= request.intValue();
+            nBookedSeats -= request.intValue();
+            success = true;
+        }
+        else if (unpreparedTransactions.containsKey(txID))
+        {
+            // undo the booking operations
+            Integer request = (Integer) unpreparedTransactions.remove(txID);
+            nBookedSeats -= request.intValue();
+            success = true;
+        }
+        else
+        {
+            success = false; // error: transaction not registered
+        }
+
+        return success;
+    }
+
+    /**
+     * Commit seat bookings.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean commitSeats(Object txID)
+    {
+        boolean success = false;
+
+        // the transaction may be prepared, unprepared or unknown
+
+        if (preparedTransactions.containsKey(txID))
+        {
+            // complete the prepared transaction
+            Integer request = (Integer) preparedTransactions.remove(txID);
+            nCommittedSeats += request.intValue();
+            nPreparedSeats -= request.intValue();
+            nBookedSeats -= request.intValue();
+            success = true;
+        }
+        else if (unpreparedTransactions.containsKey(txID))
+        {
+            // use one phase commit optimisation, skipping prepare
+            Integer request = (Integer) unpreparedTransactions.remove(txID);
+            nCommittedSeats += request.intValue();
+            nFreeSeats -= request.intValue();
+            nBookedSeats -= request.intValue();
+            success = true;
+        }
+        else
+        {
+            success = false; // error: transaction not registered
+        }
+
+        return success;
+    }
+
+    /**
+     * Determine if a specific transaction is known to the business logic.
+     *
+     * @param txID The uniq id for the transaction
+     * @return true if the business logic is holding state related to the given txID,
+     *         false otherwise.
+     */
+    public boolean knowsAbout(Object txID)
+    {
+        return (unpreparedTransactions.containsKey(txID) || preparedTransactions.containsKey(txID));
+    }
+
+    /**
+     * Change the capacity of the Resaurant.
+     *
+     * @param nSeats The new capacity
+     */
+    public void newCapacity(int nSeats)
+    {
+        nFreeSeats += nSeats - nTotalSeats;
+        nTotalSeats = nSeats;
+    }
+
+    /**
+     * Get the number of free seats.
+     *
+     * @return The number of free seats
+     */
+    public int getNFreeSeats()
+    {
+        return nFreeSeats;
+    }
+
+    /**
+     * Get the total number of seats.
+     *
+     * @return The total number of seats
+     */
+    public int getNTotalSeats()
+    {
+        return nTotalSeats;
+    }
+
+    /**
+     * Get the number of booked seats in the given area.
+     *
+     * @return The number of booked seats
+     */
+    public int getNBookedSeats()
+    {
+        return nBookedSeats;
+    }
+
+    /**
+     * Get the number of prepared seats.
+     *
+     * @return The number of prepared seats
+     */
+    public int getNPreparedSeats()
+    {
+        return nPreparedSeats;
+    }
+
+    /**
+     * Get the number of committed seats in the given area.
+     *
+     * @return The number of committed seats
+     */
+    public int getNCommittedSeats()
+    {
+        return nCommittedSeats;
+    }
+
+    /**
+     * Determine the autoCommit status of the instance.
+     *
+     * @return true if autoCommit mode is active, false otherwise
+     */
+    public boolean isAutoCommitMode()
+    {
+        return autoCommitMode;
+    }
+
+    /**
+     * Set the autoCommit mode of the instance.
+     *
+     * @param autoCommit true for automatic commit, false for manual commit.
+     */
+    public void setAutoCommitMode(boolean autoCommit)
+    {
+        autoCommitMode = autoCommit;
+    }
+
+    /**
+     * Get the preparation object for manual commit wait/notify.
+     *
+     * @return The preparation object
+     */
+    public Object getPreparation()
+    {
+        return preparation;
+    }
+
+    /**
+     * Determine if the instance is waiting for manual commit/rollback.
+     *
+     * @return true if waiting, false otherwise
+     */
+    public boolean getIsPreparationWaiting()
+    {
+        return isPreparationWaiting;
+    }
+
+    /**
+     * Set the waiting status of the instance.
+     *
+     * @param isWaiting The new value to set
+     */
+    public void setIsPreparationWaiting(boolean isWaiting)
+    {
+        isPreparationWaiting = isWaiting;
+    }
+
+    /**
+     * Set the manual commit status.
+     *
+     * @param commit true for commitment, false for rollback
+     */
+    public void setCommit(boolean commit)
+    {
+        isCommit = commit;
+    }
+
+    /**
+     * (re-)initialise the instance data structures.
+     */
+    public void setToDefault()
+    {
+        nTotalSeats = DEFAULT_SEATING_CAPACITY;
+        nFreeSeats = nTotalSeats;
+        nBookedSeats = 0;
+        nPreparedSeats = 0;
+        nCommittedSeats = 0;
+        preparedTransactions = new Hashtable();
+        unpreparedTransactions = new Hashtable();
+        autoCommitMode = true;
+        preparation = new Object();
+        isPreparationWaiting = false;
+        isCommit = true;
+    }
+
+    /**
+     * Allow use of a singleton model for web services demo.
+     *
+     * @return the singleton RestaurantManager instance.
+     */
+    public static RestaurantManager getSingletonInstance()
+    {
+        if (singletonInstance == null)
+        {
+            singletonInstance = new RestaurantManager();
+        }
+
+        return singletonInstance;
+    }
+
+    /**
+     * A singleton instance of this class.
+     */
+    private static RestaurantManager singletonInstance;
+
+    /**
+     * The total seating capacity.
+     */
+    private int nTotalSeats;
+
+    /**
+     * The number of free seats.
+     */
+    private int nFreeSeats;
+
+    /**
+     * The number of booked seats.
+     * <p/>
+     * Note: This may exceed the total seating capacity
+     */
+    private int nBookedSeats;
+
+    /**
+     * The number of prepared (promised) seats.
+     */
+    private int nPreparedSeats;
+    /**
+     * The number of committed seats in each area.
+     */
+    private int nCommittedSeats;
+
+    /**
+     * The auto commit mode.
+     * <p/>
+     * true = automatically commit, false = manually commit
+     */
+    private boolean autoCommitMode;
+
+    /**
+     * The object used for wait/notify in manual commit mode.
+     */
+    private Object preparation;
+
+    /**
+     * The waiting status, when in manual commit mode.
+     */
+    private boolean isPreparationWaiting;
+
+    /**
+     * The user specified outcome when in manual commit mode.
+     */
+    private boolean isCommit;
+
+    /**
+     * The transactions we know about but which have not been prepared.
+     */
+    private Hashtable unpreparedTransactions;
+
+    /**
+     * The transactions we know about and are prepared to commit.
+     */
+    private Hashtable preparedTransactions;
+
+    /**
+     * The default initial capacity of each seating area.
+     */
+    public static final int DEFAULT_SEATING_CAPACITY = 100;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantAT.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantAT.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantAT.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,201 @@
+/*
+ * 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.
+ */
+/*
+ * RestaurantParticipantAT.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: RestaurantParticipantAT.java,v 1.3 2005/02/23 09:58:01 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.restaurant;
+
+import com.arjuna.wst.*;
+
+/**
+ * An adapter class that exposes the RestaurantManager transaction lifecycle
+ * API as a WS-T Atomic Transaction participant.
+ * Also logs events to a RestaurantView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class RestaurantParticipantAT implements Durable2PCParticipant
+{
+    /**
+     * Participant instances are related to transaction instances
+     * in a one to one manner.
+     *
+     * @param txID uniq id String for the transaction instance.
+     */
+    public RestaurantParticipantAT(String txID)
+    {
+        // Binds to the singleton RestaurantView and RestaurantManager
+        restaurantManager = RestaurantManager.getSingletonInstance();
+        restaurantView = RestaurantView.getSingletonInstance();
+        // we need to save the txID for later use when calling
+        // business logic methods in the restaurantManger.
+        this.txID = txID;
+    }
+
+    /**
+     * Invokes the prepare step of the business logic,
+     * reporting activity and outcome.
+     *
+     * @return Prepared where possible, Aborted where necessary.
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public Vote prepare() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the prepare operation
+        // on the backend business logic.
+
+        System.out.println("RestaurantParticipantAT.prepare");
+
+        restaurantView.addPrepareMessage("id:" + txID + ". Prepare called on participant: " + this.getClass().toString());
+
+        boolean success = restaurantManager.prepareSeats(txID);
+
+        // Log the outcome and map the return value from
+        // the business logic to the appropriate Vote type.
+
+        if (success)
+        {
+            restaurantView.addMessage("Seats prepared successfully. Returning 'Prepared'\n");
+            restaurantView.updateFields();
+            return new Prepared();
+        }
+        else
+        {
+            restaurantManager.cancelSeats(txID) ;
+            restaurantView.addMessage("Prepare failed (not enough seats?) Returning 'Aborted'\n");
+            restaurantView.updateFields();
+            return new Aborted();
+        }
+    }
+
+    /**
+     * Invokes the commit step of the business logic,
+     * reporting activity and outcome.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void commit() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the commit operation
+        // on the backend business logic.
+
+        System.out.println("RestaurantParticipantAT.commit");
+
+        restaurantView.addMessage("id:" + txID + ". Commit called on participant: " + this.getClass().toString());
+
+        boolean success = restaurantManager.commitSeats(txID);
+
+        // Log the outcome
+
+        if (success)
+        {
+            restaurantView.addMessage("Seats committed\n");
+        }
+        else
+        {
+            restaurantView.addMessage("Something went wrong (Transaction not registered?)\n");
+        }
+
+        restaurantView.updateFields();
+    }
+
+    /**
+     * Invokes the rollback operation on the business logic,
+     * reporting activity and outcome.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void rollback() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the rollback operation
+        // on the backend business logic.
+
+        System.out.println("RestaurantParticipantAT.rollback");
+
+        restaurantView.addMessage("id:" + txID + ". Rollback called on participant: " + this.getClass().toString());
+
+        boolean success = restaurantManager.cancelSeats(txID);
+
+        // Log the outcome
+
+        if (success)
+        {
+            restaurantView.addMessage("Seats booking cancelled\n");
+        }
+        else
+        {
+            restaurantView.addMessage("Something went wrong (Transaction not registered?)\n");
+        }
+
+        restaurantView.updateFields();
+    }
+
+    /**
+     * Shortcut method which combines the prepare
+     * and commit steps in a single operation.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void commitOnePhase() throws WrongStateException, SystemException
+    {
+        prepare();
+        commit();
+    }
+
+    public void unknown() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    public void error() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    /**
+     * Id for the transaction which this participant instance relates to.
+     * Set by the service (via contrtuctor) at enrolment time, this value
+     * is passed to the backend business logic methods.
+     */
+    protected String txID;
+
+    /**
+     * The RestaurantView object to log events through.
+     */
+    protected static RestaurantView restaurantView;
+
+    /**
+     * The RestaurantManager to perform business logic operations on.
+     */
+    protected static RestaurantManager restaurantManager;
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantParticipantBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,189 @@
+/*
+ * 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.
+ */
+/*
+ * RestaurantParticipantBA.java
+ *
+ * Copyright (c) 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: RestaurantParticipantBA.java,v 1.3 2004/09/09 15:18:09 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.restaurant;
+
+import com.arjuna.wst.*;
+import com.arjuna.ats.arjuna.common.Uid;
+
+/**
+ * An adapter class that exposes the RestaurantManager transaction lifecycle
+ * API as a WS-T Business Activity participant.
+ * Also logs events to a RestaurantView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class RestaurantParticipantBA implements BusinessAgreementWithParticipantCompletionParticipant
+{
+    /**
+     * Participant instances are related to business method calls
+     * in a one to one manner.
+     *
+     * @param txID     uniq id String for the transaction instance.
+     * @param how_many seats to book/compensate.
+     */
+    public RestaurantParticipantBA(String txID, int how_many)
+    {
+        // Binds to the singleton RestaurantView and RestaurantManager
+        restaurantManager = RestaurantManager.getSingletonInstance();
+        restaurantView = RestaurantView.getSingletonInstance();
+        // we need to save the txID for later use when logging.
+        this.txID = txID;
+        // we also need the business paramater(s) in case of compensation
+        this.seatCount = how_many;
+    }
+
+    /**
+     * The transaction has completed successfully. The participant previously
+     * informed the coordinator that it was ready to complete.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException never in this implementation.
+     */
+
+    public void close() throws WrongStateException, SystemException
+    {
+        // for logging only. This impl does not do anything else here.
+
+        System.out.println("RestaurantParticipantBA.close");
+
+        restaurantView.addMessage("id:" + txID + ". Close called on participant: " + this.getClass());
+        restaurantView.updateFields();
+    }
+
+
+    /**
+     * The transaction has cancelled, and the participant should undo any work.
+     * The participant cannot have informed the coordinator that it has
+     * completed.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException never in this implementation.
+     */
+
+    public void cancel() throws WrongStateException, SystemException
+    {
+        // we will always have called completed or error, so this can be a null op.
+
+        System.out.println("RestaurantParticipantBA.cancel");
+
+        restaurantView.addMessage("id:" + txID + ". Cancel called on participant: " + this.getClass().toString());
+        restaurantView.updateFields();
+    }
+
+    /**
+     * The transaction has cancelled. The participant previously
+     * informed the coordinator that it had finished work but could compensate
+     * later if required, so it is now requested to do so.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException if unable to perform the compensating transaction.
+     */
+
+    public void compensate() throws WrongStateException, SystemException
+    {
+        System.out.println("RestaurantParticipantBA.compensate");
+
+        // Log the event and perform a compensating transaction
+        // on the backend business logic.
+
+        restaurantView.addPrepareMessage("id:" + txID + ". Compensate called on participant: " + this.getClass().toString());
+        restaurantView.updateFields();
+
+        if (seatCount > 0)
+        {
+            String compensatingTxID = new Uid().toString();
+            // use a negative number of seats to 'reverse' the previous booking
+            // This technique (hack) prevents us needing new business logic to support compensation.
+            restaurantManager.bookSeats(compensatingTxID, seatCount * -1);
+            restaurantView.updateFields();
+
+            boolean success = false;
+            if(restaurantManager.prepareSeats(compensatingTxID))
+            {
+                if (restaurantManager.commitSeats(compensatingTxID))
+                {
+                    restaurantView.addMessage("id:" + txID + " Compensating transaction completed sucessfully.");
+                    restaurantView.updateFields();
+                    success = true;
+                }
+            }
+            else
+            {
+                restaurantManager.cancelSeats(compensatingTxID);
+            }
+
+            if(!success)
+            {
+                restaurantView.addMessage("id:" + txID + " Compensation failed. Throwing SystemException\n");
+                restaurantView.updateFields();
+                throw new SystemException("Compensating transaction failed.");
+            }
+        }
+    }
+
+    public String status()
+    {
+        return Status.STATUS_ACTIVE ;
+    }
+    
+    public void unknown() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    public void error() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    /**
+     * Id for the transaction which this participant instance relates to.
+     * Set by the service (via contrtuctor) at enrolment time, this value
+     * is used in informational log messages.
+     */
+    protected String txID;
+
+    /**
+     * Copy of business state information, may be needed during compensation.
+     */
+    protected int seatCount;
+
+    /**
+     * The RestaurantView object to log events through.
+     */
+    protected static RestaurantView restaurantView;
+
+    /**
+     * The RestaurantManager to perform business logic operations on.
+     */
+    protected static RestaurantManager restaurantManager;
+}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceAT.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceAT.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceAT.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,103 @@
+/*
+ * 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.
+ */
+/*
+ * RestaurantServiceAT.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd
+ *
+ * $Id: RestaurantServiceAT.java,v 1.3 2004/12/01 16:26:44 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.restaurant;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.UserTransactionFactory;
+import com.jboss.jbosstm.xts.demo.restaurant.IRestaurantService;
+
+import javax.jws.HandlerChain;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.WebMethod;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * An adapter class that exposes the RestaurantManager business API as a
+ * transactional Web Service. Also logs events to a RestaurantView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+ at WebService(serviceName="RestaurantServiceATService", portName="RestaurantServiceAT",
+        name = "RestaurantServiceAT", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Restaurant",
+        wsdlLocation = "../wsdl/RestaurantServiceAT.wsdl")
+ at HandlerChain(file = "../context-handlers.xml", name = "Context Handlers")                  
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class RestaurantServiceAT implements IRestaurantService
+{
+    /**
+     * Book a number of seats in the restaurant
+     * Enrols a Participant if necessary, then passes
+     * the call through to the business logic.
+     *
+     * @param how_many The number of seats to book
+     */
+    @WebMethod
+    public void bookSeats(
+            @WebParam(name = "how_many", partName = "how_many")
+            int how_many)
+    {
+        RestaurantView restaurantView = RestaurantView.getSingletonInstance();
+        RestaurantManager restaurantManager = RestaurantManager.getSingletonInstance();
+
+        String transactionId = null;
+        try
+        {
+            // get the transaction context of this thread:
+            transactionId = UserTransactionFactory.userTransaction().toString();
+            System.out.println("RestaurantServiceAT transaction id =" + transactionId);
+
+            if (!restaurantManager.knowsAbout(transactionId))
+            {
+                System.out.println("RestaurantServiceAT - enrolling...");
+                // enlist the Participant for this service:
+                RestaurantParticipantAT restaurantParticipant = new RestaurantParticipantAT(transactionId);
+                TransactionManagerFactory.transactionManager().enlistForDurableTwoPhase(restaurantParticipant, new Uid().toString());
+            }
+        }
+        catch (Exception e)
+        {
+            System.err.println("bookSeats: Participant enrolment failed");
+            e.printStackTrace(System.err);
+            return;
+        }
+
+        restaurantView.addMessage("******************************");
+
+        restaurantView.addMessage("id:" + transactionId + ". Received a booking request for one table of " + how_many + " people");
+
+        restaurantManager.bookSeats(transactionId, how_many);
+
+        restaurantView.addMessage("Request complete\n");
+        restaurantView.updateFields();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantServiceBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+/*
+ * 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.
+ */
+/*
+ * RestaurantServiceBA.java
+ *
+ * Copyright (c) 2004 Arjuna Technologies Ltd
+ *
+ * $Id: RestaurantServiceBA.java,v 1.5 2004/12/01 16:26:44 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.restaurant;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.SystemException;
+import com.jboss.jbosstm.xts.demo.restaurant.IRestaurantServiceBA;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * An adapter class that exposes the RestaurantManager business API as a
+ * transactional Web Service. Also logs events to a RestaurantView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.5 $
+ */
+ at WebService(serviceName="RestaurantServiceBAService", portName="RestaurantServiceBA",
+        name = "RestaurantServiceBA", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Restaurant",
+        wsdlLocation = "../wsdl/RestaurantServiceBA.wsdl")
+ at HandlerChain(file = "../context-handlers.xml", name = "Context Handlers")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class RestaurantServiceBA implements IRestaurantServiceBA
+{
+    /**
+     * Book a number of seats in the restaurant
+     * Enrols a Participant if necessary and passes
+     * the call through to the business logic.
+     *
+     * @param how_many The number of seats to book.
+     * @return true on success, false otherwise.
+     */
+    @WebMethod
+    @WebResult(name = "bookSeatsBAResponse", partName = "bookSeatsBAResponse")
+    public boolean bookSeats(
+            @WebParam(name = "how_many", partName = "how_many")
+            int how_many)
+    {
+        RestaurantView restaurantView = RestaurantView.getSingletonInstance();
+        RestaurantManager restaurantManager = RestaurantManager.getSingletonInstance();
+
+        BusinessActivityManager activityManager = BusinessActivityManagerFactory.businessActivityManager();
+
+        // get the transaction context of this thread:
+        String transactionId = null;
+        try
+        {
+            transactionId = activityManager.currentTransaction().toString();
+        }
+        catch (SystemException e)
+        {
+            System.err.println("bookSeats: unable to obtain a transaction context!");
+            e.printStackTrace(System.err);
+            return false;
+        }
+
+        // log the event:
+        System.out.println("RestaurantServiceBA transaction id =" + transactionId);
+
+        restaurantView.addMessage("******************************");
+
+        restaurantView.addPrepareMessage("id:" + transactionId + ". Received a booking request for one table of " + how_many + " people");
+        restaurantView.updateFields();
+
+        // invoke the backend business logic:
+        restaurantManager.bookSeats(transactionId, how_many);
+
+        // attempt to finalise the booking
+        // (it will be compensated later if necessary)
+        if (restaurantManager.prepareSeats(transactionId))
+        {
+            restaurantView.addMessage("id:" + transactionId + ". Seats prepared, trying to commit and enlist compensation Participant");
+            restaurantView.updateFields();
+
+            // it worked, so now we need a participant enlisted in case of compensation:
+
+            RestaurantParticipantBA restaurantParticipant = new RestaurantParticipantBA(transactionId, how_many);
+            // enlist the Participant for this service:
+            BAParticipantManager participantManager = null;
+            try
+            {
+                participantManager = activityManager.enlistForBusinessAgreementWithParticipantCompletion(restaurantParticipant, new Uid().toString());
+            }
+            catch (Exception e)
+            {
+                restaurantView.addMessage("id:" + transactionId + ". Participant enrolement failed");
+                System.err.println("bookSeats: Participant enlistment failed");
+                e.printStackTrace(System.err);
+                return false;
+            }
+
+            // finish the booking in the backend:
+            restaurantManager.commitSeats(transactionId);
+
+            try
+            {
+                // tell the manager we have finished our work:
+                participantManager.completed();
+            }
+            catch (Exception e)
+            {
+                System.err.println("bookSeats: 'completed' callback failed");
+                e.printStackTrace(System.err);
+                return false;
+            }
+        }
+        else
+        {
+            restaurantView.addMessage("id:" + transactionId + ". Failed to reserve seats. Cancelling.");
+            restaurantManager.cancelSeats(transactionId);
+            restaurantView.updateFields();
+            return false;
+        }
+
+        restaurantView.addMessage("Request complete\n");
+        restaurantView.updateFields();
+
+        return true;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantView.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantView.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/restaurant/RestaurantView.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,470 @@
+/*
+ * 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.
+ */
+/*
+ * RestaurantView.java
+ *
+ * Copyright (c) 2003 Arjuna Technologies Ltd.
+ *
+ * $Id: RestaurantView.java,v 1.2 2004/04/21 13:09:18 jhalliday Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.restaurant;
+
+/**
+ * The visual interface (GUI) for the Restaurant Service.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.2 $
+ */
+public class RestaurantView extends javax.swing.JFrame
+{
+    // Note: Some parts of this file were auto-generated
+    // by NetBeans 3.3 FormEditor (http://www.netbeans.org)
+
+    /**
+     * Create a new RestaurantView instance.
+     *
+     * @param rManager The {@link RestaurantManager} instance to bind to
+     */
+    public RestaurantView(RestaurantManager rManager)
+    {
+        restManager = rManager;
+        initComponents();
+        updateFields();
+        backButtonColor = jButtonConfirm.getBackground();
+    }
+
+    /**
+     * Initialize the form.
+     * This is called by the constructor
+     * <p/>
+     * WARNING: Automatically generated code, may be overwritten
+     */
+    private void initComponents()
+    {//GEN-BEGIN:initComponents
+        jPanel2 = new javax.swing.JPanel();
+        jLabel5 = new javax.swing.JLabel();
+        jLabelNBookedSeats = new javax.swing.JLabel();
+        jLabel9 = new javax.swing.JLabel();
+        jLabelNPreparedSeats = new javax.swing.JLabel();
+        jLabel2 = new javax.swing.JLabel();
+        jLabelNConfirmedSeats = new javax.swing.JLabel();
+        jLabel6 = new javax.swing.JLabel();
+        jLabelNFreeSeats = new javax.swing.JLabel();
+        jLabel7 = new javax.swing.JLabel();
+        jButtonResetFields = new javax.swing.JButton();
+        jPanel1 = new javax.swing.JPanel();
+        jLabel8 = new javax.swing.JLabel();
+        jLabel1 = new javax.swing.JLabel();
+        jLabelNTotalSeats = new javax.swing.JLabel();
+        jLabel4 = new javax.swing.JLabel();
+        jLabel3 = new javax.swing.JLabel();
+        jTextFieldNewNTotalSeats = new javax.swing.JTextField();
+        jButtonSetNTotalSeats = new javax.swing.JButton();
+        jPanelLeft = new javax.swing.JPanel();
+        jLabel10 = new javax.swing.JLabel();
+        jLabelDisplayMode = new javax.swing.JLabel();
+        jButtonChangeMode = new javax.swing.JButton();
+        jLabelResponse = new javax.swing.JLabel();
+        jButtonConfirm = new javax.swing.JButton();
+        jButtonCancel = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        jTextArea = new javax.swing.JTextArea();
+
+        setTitle("Restaurant Service");
+        setName("restaurantView");
+        addWindowListener(new java.awt.event.WindowAdapter()
+        {
+            public void windowClosing(java.awt.event.WindowEvent evt)
+            {
+                exitForm(evt);
+            }
+        });
+
+        jPanel2.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
+        jLabel5.setText("Seats: ");
+        jLabel5.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel2.add(jLabel5);
+
+        jLabelNBookedSeats.setText(Integer.toString(restManager.getNBookedSeats()));
+        jLabelNBookedSeats.setForeground(java.awt.Color.gray);
+        jLabelNBookedSeats.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanel2.add(jLabelNBookedSeats);
+
+        jLabel9.setText("Booked,    ");
+        jPanel2.add(jLabel9);
+
+        jLabelNPreparedSeats.setText(Integer.toString(restManager.getNPreparedSeats()));
+        jLabelNPreparedSeats.setForeground(java.awt.Color.darkGray);
+        jLabelNPreparedSeats.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanel2.add(jLabelNPreparedSeats);
+
+        jLabel2.setText("Prepared,    ");
+        jPanel2.add(jLabel2);
+
+        jLabelNConfirmedSeats.setText(Integer.toString(restManager.getNCommittedSeats()));
+        jLabelNConfirmedSeats.setForeground(new java.awt.Color(0, 51, 204));
+        jLabelNConfirmedSeats.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanel2.add(jLabelNConfirmedSeats);
+
+        jLabel6.setText("Confirmed,    ");
+        jPanel2.add(jLabel6);
+
+        jLabelNFreeSeats.setText(Integer.toString(restManager.getNFreeSeats()));
+        jLabelNFreeSeats.setForeground(new java.awt.Color(0, 153, 0));
+        jLabelNFreeSeats.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanel2.add(jLabelNFreeSeats);
+
+        jLabel7.setText("Free            ");
+        jPanel2.add(jLabel7);
+
+        jButtonResetFields.setText("Reset Fields");
+        jButtonResetFields.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonResetFieldsActionPerformed(evt);
+            }
+        });
+
+        jPanel2.add(jButtonResetFields);
+
+        getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
+
+        jPanel1.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
+        jLabel8.setText("Restaurant              ");
+        jLabel8.setForeground(java.awt.Color.red);
+        jLabel8.setFont(new java.awt.Font("Dialog", 1, 24));
+        jPanel1.add(jLabel8);
+
+        jLabel1.setText("Capacity:");
+        jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel1);
+
+        jLabelNTotalSeats.setText(Integer.toString(restManager.getNTotalSeats()));
+        jLabelNTotalSeats.setForeground(java.awt.Color.darkGray);
+        jLabelNTotalSeats.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanel1.add(jLabelNTotalSeats);
+
+        jLabel4.setText("seats");
+        jLabel4.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel4);
+
+        jLabel3.setText("                   New capacity:");
+        jLabel3.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel3);
+
+        jTextFieldNewNTotalSeats.setFont(new java.awt.Font("Dialog", 0, 18));
+        jTextFieldNewNTotalSeats.setText(Integer.toString(restManager.getNTotalSeats()));
+        jPanel1.add(jTextFieldNewNTotalSeats);
+
+        jButtonSetNTotalSeats.setFont(new java.awt.Font("Dialog", 1, 14));
+        jButtonSetNTotalSeats.setText("Set");
+        jButtonSetNTotalSeats.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonSetNTotalSeatsActionPerformed(evt);
+            }
+        });
+
+        jPanel1.add(jButtonSetNTotalSeats);
+
+        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
+
+        jPanelLeft.setLayout(new javax.swing.BoxLayout(jPanelLeft, javax.swing.BoxLayout.Y_AXIS));
+
+        jLabel10.setText("Mode:");
+        jPanelLeft.add(jLabel10);
+
+        jLabelDisplayMode.setText("Automatic");
+        jLabelDisplayMode.setForeground(java.awt.Color.blue);
+        jLabelDisplayMode.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanelLeft.add(jLabelDisplayMode);
+
+        jButtonChangeMode.setText("Change mode");
+        jButtonChangeMode.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonChangeMode.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonChangeMode.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonChangeModeActionPerformed(evt);
+            }
+        });
+
+        jPanelLeft.add(jButtonChangeMode);
+
+        jLabelResponse.setText("Response:");
+        jPanelLeft.add(jLabelResponse);
+
+        jButtonConfirm.setText("Confirm");
+        jButtonConfirm.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonConfirm.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonConfirm.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonConfirmActionPerformed(evt);
+            }
+        });
+
+        jPanelLeft.add(jButtonConfirm);
+
+        jButtonCancel.setText("Cancel");
+        jButtonCancel.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonCancel.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonCancel.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonCancelActionPerformed(evt);
+            }
+        });
+
+        jPanelLeft.add(jButtonCancel);
+
+        getContentPane().add(jPanelLeft, java.awt.BorderLayout.WEST);
+
+        jScrollPane1.setAutoscrolls(true);
+        jTextArea.setEditable(false);
+        jTextArea.setRows(10);
+        jTextArea.setMargin(new java.awt.Insets(5, 5, 5, 5));
+        jScrollPane1.setViewportView(jTextArea);
+
+        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
+
+        pack();
+    }//GEN-END:initComponents
+
+    /**
+     * Reset event handler.
+     */
+    private void jButtonResetFieldsActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonResetFieldsActionPerformed
+        restManager.setToDefault();
+        updateFields();
+    }//GEN-LAST:event_jButtonResetFieldsActionPerformed
+
+    /**
+     * Cancel event handler.
+     */
+    private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonCancelActionPerformed
+        if (restManager.getIsPreparationWaiting())
+        {
+            Object preparation = restManager.getPreparation();
+            try
+            {
+                restManager.setCommit(false);
+                synchronized (preparation)
+                {
+                    preparation.notify();
+                }
+            }
+            catch (Exception e)
+            {
+                System.err.println("RestaurantView.jButtonCancelActionPerformed(): Unable to notify preparation.");
+            }
+        }
+    }//GEN-LAST:event_jButtonCancelActionPerformed
+
+    /**
+     * Confirm event handler.
+     */
+    private void jButtonConfirmActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonConfirmActionPerformed
+        if (restManager.getIsPreparationWaiting())
+        {
+            Object preparation = restManager.getPreparation();
+            try
+            {
+                restManager.setCommit(true);
+                synchronized (preparation)
+                {
+                    preparation.notify();
+                }
+            }
+            catch (Exception e)
+            {
+                System.err.println("RestaurantView.jButtonCancelActionPerformed(): Unable to notify preparation.");
+            }
+        }
+    }//GEN-LAST:event_jButtonConfirmActionPerformed
+
+    /**
+     * ChangeMode event handler.
+     */
+    private void jButtonChangeModeActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonChangeModeActionPerformed
+        if (restManager.isAutoCommitMode())
+        {
+            restManager.setAutoCommitMode(false);
+        }
+        else
+        {
+            restManager.setAutoCommitMode(true);
+        }
+        updateFields();
+    }//GEN-LAST:event_jButtonChangeModeActionPerformed
+
+    /**
+     * Capacity change event handler.
+     */
+    private void jButtonSetNTotalSeatsActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonSetNTotalSeatsActionPerformed
+        String strNSeats = jTextFieldNewNTotalSeats.getText();
+
+        restManager.newCapacity(Integer.parseInt(strNSeats));
+        int nFreeSeats = restManager.getNFreeSeats();
+
+        jLabelNTotalSeats.setText(strNSeats);
+        jLabelNFreeSeats.setText(Integer.toString(nFreeSeats));
+    }//GEN-LAST:event_jButtonSetNTotalSeatsActionPerformed
+
+    /**
+     * Exit the application.
+     */
+    private void exitForm(java.awt.event.WindowEvent evt)
+    {//GEN-FIRST:event_exitForm
+        //System.exit(0); // disabled for embedding in application servers.
+    }//GEN-LAST:event_exitForm
+
+    /**
+     * Add regular text to the central jTextArea.
+     *
+     * @param text The String to add
+     */
+    public void addMessage(java.lang.String text)
+    {
+        jButtonConfirm.setBackground(backButtonColor);
+        jButtonCancel.setBackground(backButtonColor);
+        jTextArea.append(text + "\n");
+        jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
+    }
+
+    /**
+     * Add status (highlighted) text to the central jTextArea.
+     *
+     * @param text The String to add
+     */
+    public void addPrepareMessage(java.lang.String text)
+    {
+        jButtonConfirm.setBackground(java.awt.Color.red);
+        jButtonCancel.setBackground(java.awt.Color.red);
+        jTextArea.append(text + "\n");
+        jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
+    }
+
+
+    /**
+     * Synchronise the GUI with the underlying state.
+     */
+    public void updateFields()
+    {
+        jLabelNTotalSeats.setText(Integer.toString(restManager.getNTotalSeats()));
+        jTextFieldNewNTotalSeats.setText(Integer.toString(restManager.getNTotalSeats()));
+        jLabelNPreparedSeats.setText(Integer.toString(restManager.getNPreparedSeats()));
+        jLabelNConfirmedSeats.setText(Integer.toString(restManager.getNCommittedSeats()));
+        jLabelNFreeSeats.setText(Integer.toString(restManager.getNFreeSeats()));
+        jLabelNBookedSeats.setText(Integer.toString(restManager.getNBookedSeats()));
+
+        //update fields related to interactive mode.
+        if (restManager.isAutoCommitMode())
+        {
+            jLabelResponse.setVisible(false);
+            jButtonConfirm.setVisible(false);
+            jButtonCancel.setVisible(false);
+            jLabelDisplayMode.setText("automatic");
+        }
+        else
+        {
+            jLabelResponse.setVisible(true);
+            jButtonConfirm.setVisible(true);
+            jButtonCancel.setVisible(true);
+            jLabelDisplayMode.setText("interactive");
+        }
+    }
+
+    /**
+     * Allow use of a singleton model for web services demo.
+     */
+    public static RestaurantView getSingletonInstance()
+    {
+        if (singletonInstance == null)
+        {
+            singletonInstance = new RestaurantView(RestaurantManager.getSingletonInstance());
+        }
+
+        singletonInstance.show();
+        return singletonInstance;
+    }
+
+    /**
+     * A singleton instance of this class.
+     */
+    private static RestaurantView singletonInstance;
+
+
+    // Variables declaration - automatically generated - do not modify
+
+    private javax.swing.JPanel jPanel2;
+    private javax.swing.JLabel jLabel5;
+    private javax.swing.JLabel jLabelNBookedSeats;
+    private javax.swing.JLabel jLabel9;
+    private javax.swing.JLabel jLabelNPreparedSeats;
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JLabel jLabelNConfirmedSeats;
+    private javax.swing.JLabel jLabel6;
+    private javax.swing.JLabel jLabelNFreeSeats;
+    private javax.swing.JLabel jLabel7;
+    private javax.swing.JButton jButtonResetFields;
+    private javax.swing.JPanel jPanel1;
+    private javax.swing.JLabel jLabel8;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JLabel jLabelNTotalSeats;
+    private javax.swing.JLabel jLabel4;
+    private javax.swing.JLabel jLabel3;
+    private javax.swing.JTextField jTextFieldNewNTotalSeats;
+    private javax.swing.JButton jButtonSetNTotalSeats;
+    private javax.swing.JPanel jPanelLeft;
+    private javax.swing.JLabel jLabel10;
+    private javax.swing.JLabel jLabelDisplayMode;
+    private javax.swing.JButton jButtonChangeMode;
+    private javax.swing.JLabel jLabelResponse;
+    private javax.swing.JButton jButtonConfirm;
+    private javax.swing.JButton jButtonCancel;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JTextArea jTextArea;
+
+    // End of automatically generated variables declarations
+
+    /**
+     * The  {@link RestaurantManager} instance this view is bound to.
+     */
+    private RestaurantManager restManager;
+
+    /**
+     * The current color of the back button.
+     */
+    private java.awt.Color backButtonColor;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,347 @@
+/*
+ * 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.
+ */
+/*
+ * TaxiManager.java
+ *
+ * Copyright (c) 2003 Arjuna Technologies Ltd.
+ *
+ * $Id: TaxiManager.java,v 1.3 2004/04/21 13:09:19 jhalliday Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.taxi;
+
+import java.util.Hashtable;
+
+/**
+ * The transactional application logic for the Taxi Service
+ * <p/>
+ * Stores and manages taxi reservations. Knows nothing about Web Services.
+ * Understands transactional booking lifecycle: unprepared, prepared, finished.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class TaxiManager
+{
+    /**
+     * Create and initialise a new TaxiManager instance.
+     */
+    public TaxiManager()
+    {
+        setToDefault();
+    }
+
+    /**
+     * Book a taxi.
+     *
+     * @param txID The transaction identifier
+     */
+    public void bookTaxi(Object txID)
+    {
+        // locate any pre-existing request for the same transaction
+        Integer request = (Integer) unpreparedTransactions.get(txID);
+        if (request == null)
+        {
+            // this is the first request for this
+            // transaction - setup a record for it
+            request = new Integer(0);
+        }
+
+        // record the request, keyed to its transaction scope
+        unpreparedTransactions.put(txID, new Integer(request.intValue()));
+    }
+
+    /**
+     * Attempt to ensure availability of the requested taxi.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean prepareTaxi(Object txID)
+    {
+        // ensure that we have seen this transaction before
+        Integer request = (Integer) unpreparedTransactions.get(txID);
+        if (request == null)
+        {
+            return false; // error: transaction not registered
+        }
+        else
+        {
+            if (autoCommitMode)
+            {
+                // record the prepared transaction
+                preparedTransactions.put(txID, request);
+                unpreparedTransactions.remove(txID);
+                return true;
+            }
+            else
+            {
+                try
+                {
+                    // wait for a user commit/rollback decision
+                    isPreparationWaiting = true;
+                    synchronized (preparation)
+                    {
+                        preparation.wait();
+                    }
+                    isPreparationWaiting = false;
+                    if (isCommit)
+                    {
+                        // record the prepared transaction
+                        preparedTransactions.put(txID, request);
+                        unpreparedTransactions.remove(txID);
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+
+                    }
+                }
+                catch (Exception e)
+                {
+                    System.err.println("TaxiManager.prepareTaxi(): Unable to stop preparation.");
+                    return false;
+                }
+            }
+        }
+    }
+
+    /**
+     * Release a booked or prepared taxi.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean cancelTaxi(Object txID)
+    {
+        boolean success = false;
+
+        // the transaction may be prepared, unprepared or unknown
+
+        if (preparedTransactions.containsKey(txID))
+        {
+            // undo the prepare operations
+            preparedTransactions.remove(txID);
+            success = true;
+        }
+        else if (unpreparedTransactions.containsKey(txID))
+        {
+            // undo the booking operations
+            unpreparedTransactions.remove(txID);
+            success = true;
+        }
+        else
+        {
+            success = false; // error: transaction not registered
+        }
+
+        return success;
+    }
+
+    /**
+     * Commit taxi booking.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean commitTaxi(Object txID)
+    {
+        boolean success = false;
+        hasCommitted = true;
+
+        // the transaction may be prepared, unprepared or unknown
+
+        if (preparedTransactions.containsKey(txID))
+        {
+            // complete the prepared transaction
+            preparedTransactions.remove(txID);
+            success = true;
+        }
+        else if (unpreparedTransactions.containsKey(txID))
+        {
+            // use one phase commit optimisation, skipping prepare
+            unpreparedTransactions.remove(txID);
+            success = true;
+        }
+        else
+        {
+            success = false; // error: transaction not registered
+        }
+
+        return success;
+    }
+
+    /**
+     * Determine if a specific transaction is known to the business logic.
+     *
+     * @param txID The uniq id for the transaction
+     * @return true if the business logic is holding state related to the given txID,
+     *         false otherwise.
+     */
+    public boolean knowsAbout(Object txID)
+    {
+        return (unpreparedTransactions.containsKey(txID) || preparedTransactions.containsKey(txID));
+    }
+
+    /**
+     * Determine the autoCommit status of the instance.
+     *
+     * @return true if autoCommit mode is active, false otherwise
+     */
+    public boolean isAutoCommitMode()
+    {
+        return autoCommitMode;
+    }
+
+    /**
+     * Set the autoCommit mode of the instance.
+     *
+     * @param autoCommit true for automatic commit, false for manual commit.
+     */
+    public void setAutoCommitMode(boolean autoCommit)
+    {
+        autoCommitMode = autoCommit;
+    }
+
+    /**
+     * Get the preparation object for manual commit wait/notify.
+     *
+     * @return The preparation object
+     */
+    public Object getPreparation()
+    {
+        return preparation;
+    }
+
+    /**
+     * Determine if the instance is waiting for manual commit/rollback.
+     *
+     * @return true if waiting, false otherwise
+     */
+    public boolean getIsPreparationWaiting()
+    {
+        return isPreparationWaiting;
+    }
+
+    /**
+     * Set the waiting status of the instance.
+     *
+     * @param isWaiting The new value to set
+     */
+    public void setIsPreparationWaiting(boolean isWaiting)
+    {
+        isPreparationWaiting = isWaiting;
+    }
+
+    /**
+     * Set the manual commit status.
+     */
+    public void setCommit(boolean commit)
+    {
+        isCommit = commit;
+    }
+
+    /**
+     * (re-)initialise the instance data structures.
+     */
+    public void setToDefault()
+    {
+        preparedTransactions = new Hashtable();
+        unpreparedTransactions = new Hashtable();
+        autoCommitMode = true;
+        preparation = new Object();
+        isPreparationWaiting = false;
+        isCommit = false;
+        hasCommitted = false;
+    }
+
+    /**
+     * Allow use of a singleton model for web services demo.
+     */
+    public static TaxiManager getSingletonInstance()
+    {
+        if (singletonInstance == null)
+        {
+            singletonInstance = new TaxiManager();
+        }
+
+        return singletonInstance;
+    }
+
+    public boolean hasBeenCommitted()
+    {
+        return hasCommitted;
+    }
+
+    public Hashtable getPreparedTransactions()
+    {
+        return preparedTransactions;
+    }
+
+    public Hashtable getUnpreparedTransactions()
+    {
+        return unpreparedTransactions;
+    }
+
+    /**
+     * A singleton instance of this class.
+     */
+    private static TaxiManager singletonInstance;
+
+    /**
+     * The transactions we know about but which have not been prepared.
+     */
+    private Hashtable unpreparedTransactions;
+
+    /**
+     * The transactions we know about and are prepared to commit.
+     */
+    private Hashtable preparedTransactions;
+
+    /**
+     * The auto commit mode.
+     * <p/>
+     * true = automatically commit, false = manually commit
+     */
+    private boolean autoCommitMode;
+
+    /**
+     * The user specified outcome when in manual commit mode.
+     */
+    private boolean isCommit;
+
+    /**
+     * If the participant has already been commmitted or not.
+     */
+    private boolean hasCommitted = false;
+
+    /**
+     * The object used for wait/notify in manual commit mode.
+     */
+    private Object preparation;
+
+    /**
+     * The waiting status, when in manual commit mode.
+     */
+    private boolean isPreparationWaiting;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantAT.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantAT.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantAT.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,200 @@
+/*
+ * 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.
+ */
+/*
+ * TaxiParticipantAT.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TaxiParticipantAT.java,v 1.3 2005/02/23 09:58:02 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.taxi;
+
+import com.arjuna.wst.*;
+
+/**
+ * An adapter class that exposes the TaxiManager transaction lifecycle
+ * API as a WS-T Atomic Transaction participant.
+ * Also logs events to a TaxiView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class TaxiParticipantAT implements Durable2PCParticipant
+{
+    /**
+     * Participant instances are related to transaction instances
+     * in a one to one manner.
+     *
+     * @param txID uniq id String for the transaction instance.
+     */
+    public TaxiParticipantAT(String txID)
+    {
+        // Binds to the singleton TaxiView and TaxiManager
+        taxiManager = TaxiManager.getSingletonInstance();
+        taxiView = TaxiView.getSingletonInstance();
+        // we need to save the txID for later use when calling
+        // business logic methods in the taxiManger.
+        this.txID = txID;
+    }
+
+    /**
+     * Invokes the prepare step of the business logic,
+     * reporting activity and outcome.
+     *
+     * @return Prepared where possible, Aborted where necessary.
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public Vote prepare() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the prepare operation
+        // on the backend business logic.
+
+        System.out.println("TaxiParticipantAT.prepare");
+
+        taxiView.addPrepareMessage("id:" + txID + ". Prepare called on participant: " + this.getClass().toString());
+
+        boolean success = taxiManager.prepareTaxi(txID);
+
+        // Log the outcome and map the return value from
+        // the business logic to the appropriate Vote type.
+
+        if (success)
+        {
+            taxiView.addMessage("Taxi prepared successfully. Returning 'Prepared'\n");
+            taxiView.updateFields();
+            return new Prepared();
+        }
+        else
+        {
+            taxiManager.cancelTaxi(txID) ;
+            taxiView.addMessage("Prepare failed (not enough Taxis?) Returning 'Aborted'\n");
+            taxiView.updateFields();
+            return new Aborted();
+        }
+    }
+
+    /**
+     * Invokes the commit step of the business logic,
+     * reporting activity and outcome.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void commit() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the commit operation
+        // on the backend business logic.
+
+        System.out.println("TaxiParticipantAT.commit");
+
+        taxiView.addMessage("id:" + txID + ". Commit called on participant: " + this.getClass().toString());
+
+        boolean success = taxiManager.commitTaxi(txID);
+
+        // Log the outcome
+
+        if (success)
+        {
+            taxiView.addMessage("Taxi committed\n");
+        }
+        else
+        {
+            taxiView.addMessage("Something went wrong (Transaction not registered?)\n");
+        }
+
+        taxiView.updateFields();
+    }
+
+    /**
+     * Invokes the rollback operation on the business logic,
+     * reporting activity and outcome.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void rollback() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the rollback operation
+        // on the backend business logic.
+
+        System.out.println("TaxiParticipantAT.rollback");
+
+        taxiView.addMessage("id:" + txID + ". Rollback called on participant: " + this.getClass().toString());
+
+        boolean success = taxiManager.cancelTaxi(txID);
+
+        // Log the outcome
+
+        if (success)
+        {
+            taxiView.addMessage("Taxi booking cancelled\n");
+        }
+        else
+        {
+            taxiView.addMessage("Something went wrong (Transaction not registered?)\n");
+        }
+
+        taxiView.updateFields();
+    }
+
+    /**
+     * Shortcut method which combines the prepare
+     * and commit steps in a single operation.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void commitOnePhase() throws WrongStateException, SystemException
+    {
+        prepare();
+        commit();
+    }
+
+    public void unknown() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    public void error() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    /**
+     * Id for the transaction which this participant instance relates to.
+     * Set by the service (via contrtuctor) at enrolment time, this value
+     * is passed to the backend business logic methods.
+     */
+    protected String txID;
+
+    /**
+     * The TaxiView object to log events through.
+     */
+    protected static TaxiView taxiView;
+
+    /**
+     * The TaxiManager to perform business logic operations on.
+     */
+    protected static TaxiManager taxiManager;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiParticipantBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * TaxiParticipantBA.java
+ *
+ * Copyright (c) 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TaxiParticipantBA.java,v 1.2 2004/09/09 15:18:11 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.taxi;
+
+import com.arjuna.wst.*;
+
+/**
+ * An adapter class that exposes the TaxiManager transaction lifecycle
+ * API as a WS-T Business Activity participant.
+ * Also logs events to a TaxiView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.2 $
+ */
+public class TaxiParticipantBA implements BusinessAgreementWithParticipantCompletionParticipant
+{
+    /**
+     * Participant instances are related to business method calls
+     * in a one to one manner.
+     *
+     * @param txID uniq id String for the transaction instance.
+     */
+    public TaxiParticipantBA(String txID)
+    {
+        // Binds to the singleton TaxiView and TaxiManager
+        taxiManager = TaxiManager.getSingletonInstance();
+        taxiView = TaxiView.getSingletonInstance();
+        // we need to save the txID for later use when logging.
+        this.txID = txID;
+    }
+
+    /**
+     * The transaction has completed successfully. The participant previously
+     * informed the coordinator that it was ready to complete.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException never in this implementation.
+     */
+
+    public void close() throws WrongStateException, SystemException
+    {
+        // for logging only. This impl does not do anything else here.
+
+        System.out.println("TaxiParticipantBA.close");
+
+        taxiView.addMessage("id:" + txID + ". Close called on participant: " + this.getClass());
+        taxiView.updateFields();
+    }
+
+    /**
+     * The transaction has cancelled, and the participant should undo any work.
+     * The participant cannot have informed the coordinator that it has
+     * completed.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException never in this implementation.
+     */
+
+    public void cancel() throws WrongStateException, SystemException
+    {
+        // we will always have called completed or error, so this can be a null op.
+
+        System.out.println("TaxiParticipantBA.cancel");
+
+        taxiView.addMessage("id:" + txID + ". Cancel called on participant: " + this.getClass().toString());
+        taxiView.updateFields();
+    }
+
+    /**
+     * The transaction has cancelled. The participant previously
+     * informed the coordinator that it had finished work but could compensate
+     * later if required, so it is now requested to do so.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException always, because this implementation does not support compensation.
+     */
+
+    public void compensate() throws WrongStateException, SystemException
+    {
+        System.out.println("TaxiParticipantBA.compensate");
+
+        // This impl does not support compensation, in order
+        // to allow illustration of heuristic outcomes.
+        // It just log the event and throws an exception.
+
+        taxiView.addMessage("id:" + txID + ". Compensate called on participant: " + this.getClass().toString());
+
+        taxiView.addMessage("Compensation not supported by ths implementation!");
+        taxiView.updateFields();
+
+        throw new SystemException("Compensation not supported!");
+    }
+
+    public String status () throws SystemException
+    {
+        return Status.STATUS_ACTIVE;
+    }
+
+    public void unknown() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    public void error() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    /**
+     * Id for the transaction which this participant instance relates to.
+     * Set by the service (via contrtuctor) at enrolment time, this value
+     * is used in informational log messages.
+     */
+    protected String txID;
+
+    /**
+     * The TaxiView object to log events through.
+     */
+    protected static TaxiView taxiView;
+
+    /**
+     * The TaxiManager to perform business logic operations on.
+     */
+    protected static TaxiManager taxiManager;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceAT.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceAT.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceAT.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+ */
+/*
+ * TaxiServiceAT.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TaxiServiceAT.java,v 1.3 2004/12/01 16:27:01 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.taxi;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.UserTransactionFactory;
+import com.jboss.jbosstm.xts.demo.taxi.ITaxiService;
+
+import javax.jws.WebService;
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * An adapter class that exposes the TaxiManager business API as a
+ * transactional Web Service. Also logs events to a TaxiView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+ at WebService(serviceName="TaxiServiceATService", portName="TaxiServiceAT",
+        name = "TaxiServiceAT", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Taxi",
+        wsdlLocation = "../wsdl/TaxiServiceAT.wsdl")
+ at HandlerChain(file = "../context-handlers.xml", name = "Context Handlers")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class TaxiServiceAT implements ITaxiService
+{
+    /**
+     * Book a taxi
+     * Enrols a Participant if necessary, then passes
+     * the call through to the business logic.
+     */
+    @WebMethod
+    public void bookTaxi()
+    {
+        TaxiView taxiView = TaxiView.getSingletonInstance();
+        TaxiManager taxiManager = TaxiManager.getSingletonInstance();
+
+        String transactionId = null;
+        try
+        {
+            // get the transaction context of this thread:
+            transactionId = UserTransactionFactory.userTransaction().toString();
+            System.out.println("TaxiServiceAT transaction id =" + transactionId);
+
+            if (!taxiManager.knowsAbout(transactionId))
+            {
+                System.out.println("TaxiServiceAT - enrolling...");
+                // enlist the Participant for this service:
+                TaxiParticipantAT taxiParticipant = new TaxiParticipantAT(transactionId);
+                TransactionManagerFactory.transactionManager().enlistForDurableTwoPhase(taxiParticipant, new Uid().toString());
+            }
+        }
+        catch (Exception e)
+        {
+            System.err.println("bookTaxi: Participant enrolment failed");
+            e.printStackTrace(System.err);
+            return;
+        }
+
+        taxiView.addMessage("******************************");
+
+        taxiView.addMessage("id:" + transactionId.toString() + ". Received a taxi booking request");
+
+        TaxiManager.getSingletonInstance().bookTaxi(transactionId);
+
+        taxiView.addMessage("Request complete\n");
+        taxiView.updateFields();
+    }
+}
+
+
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiServiceBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,153 @@
+/*
+ * 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.
+ */
+/*
+ * TaxiServiceBA.java
+ *
+ * Copyright (c) 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TaxiServiceBA.java,v 1.5 2004/12/01 16:27:01 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.taxi;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.wst.BAParticipantManager;
+import com.arjuna.wst.SystemException;
+import com.jboss.jbosstm.xts.demo.taxi.ITaxiServiceBA;
+
+import javax.jws.WebService;
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebResult;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * An adapter class that exposes the TaxiManager business API as a
+ * transactional Web Service. Also logs events to a TaxiView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.5 $
+ */
+ at WebService(serviceName="TaxiServiceBAService", portName="TaxiServiceBA",
+        name = "TaxiServiceBA", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Taxi",
+        wsdlLocation = "../wsdl/TaxiServiceBA.wsdl")
+ at HandlerChain(file = "../context-handlers.xml", name = "Context Handlers")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class TaxiServiceBA implements ITaxiServiceBA
+{
+    /**
+     * Book a taxi
+     * Enrols a Participant if necessary and passes
+     * the call through to the business logic.
+     *
+     * @return true on success, false otherwise.
+     */
+    @WebMethod
+    @WebResult(name = "bookTaxiBAResponse", partName = "bookTaxiBAResponse")
+    public boolean bookTaxi()
+    {
+        TaxiView taxiView = TaxiView.getSingletonInstance();
+        TaxiManager taxiManager = TaxiManager.getSingletonInstance();
+
+        BusinessActivityManager activityManager = BusinessActivityManagerFactory.businessActivityManager();
+
+        // get the transaction context of this thread:
+        String transactionId = null;
+        try
+        {
+            transactionId = activityManager.currentTransaction().toString();
+        }
+        catch (SystemException e)
+        {
+            System.err.println("bookTaxi: unable to obtain a transaction context!");
+            e.printStackTrace(System.err);
+            return false;
+        }
+
+        // log the event:
+        System.out.println("TaxiServiceBA transaction id =" + transactionId);
+
+        taxiView.addMessage("******************************");
+
+        taxiView.addPrepareMessage("id:" + transactionId.toString() + ". Received a taxi booking request");
+        taxiView.updateFields();
+
+        // invoke the backend business logic:
+        taxiManager.bookTaxi(transactionId);
+
+        // attempt to finalise the booking
+        if (taxiManager.prepareTaxi(transactionId))
+        {
+            taxiView.addMessage("id:" + transactionId + ". Seats prepared, trying to commit and enlist compensation Participant");
+            taxiView.updateFields();
+
+            // it worked, so now we need a participant enlisted in case of compensation:
+            TaxiParticipantBA taxiParticipant = new TaxiParticipantBA(transactionId);
+            // enlist the Participant for this service:
+            BAParticipantManager participantManager = null;
+            try
+            {
+                participantManager = activityManager.enlistForBusinessAgreementWithParticipantCompletion(taxiParticipant, new Uid().toString());
+            }
+            catch (Exception e)
+            {
+                taxiView.addMessage("id:" + transactionId + ". Participant enrolement failed");
+                System.err.println("bookTaxi: Participant enrolment failed");
+                e.printStackTrace(System.err);
+                return false;
+            }
+
+            // finish the booking in the backend:
+            taxiManager.commitTaxi(transactionId);
+
+            try
+            {
+                // tell the manager we have finished our work:
+                participantManager.completed();
+            }
+            catch (Exception e)
+            {
+                System.err.println("bookTaxi: 'completed' callback failed");
+                e.printStackTrace(System.err);
+                return false;
+            }
+        }
+        else
+        {
+            taxiView.addMessage("id:" + transactionId + ". Failed to reserve taxi. Cancelling.");
+            taxiManager.cancelTaxi(transactionId);
+            taxiView.updateFields();
+            return false;
+        }
+
+        taxiView.addMessage("Request complete\n");
+        taxiView.updateFields();
+
+        return true;
+    }
+}
+
+
+
+

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiView.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiView.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/taxi/TaxiView.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,320 @@
+/*
+ * 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.
+ */
+/*
+ * TaxiView.java
+ *
+ * Copyright (c) 2003 Arjuna Technologies Ltd.
+ *
+ * $Id: TaxiView.java,v 1.2 2004/04/21 13:09:20 jhalliday Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.taxi;
+
+/**
+ * The visual interface (GUI) for the Taxi Service.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.2 $
+ */
+public class TaxiView extends javax.swing.JFrame
+{
+    // Note: Some parts of this file were auto-generated
+    // by NetBeans 3.3 FormEditor (http://www.netbeans.org)
+
+    /**
+     * Create a new TaxiView instance.
+     *
+     * @param tManager The {@link TaxiManager} instance to bind to
+     */
+    public TaxiView(TaxiManager tManager)
+    {
+        taxiManager = tManager;
+        initComponents();
+        updateFields();
+        backButtonColor = jButtonConfirm.getBackground();
+    }
+
+    /**
+     * Initialize the form.
+     * This is called by the constructor
+     *
+     * WARNING: Automatically generated code, may be overwritten
+     */
+    private void initComponents()
+    {//GEN-BEGIN:initComponents
+        jPanel2 = new javax.swing.JPanel();
+        jLabel10 = new javax.swing.JLabel();
+        jButtonChangeDefaultAnswer = new javax.swing.JButton();
+        jLabelDefaultAnswer = new javax.swing.JLabel();
+        jPanel3 = new javax.swing.JPanel();
+        jLabel15 = new javax.swing.JLabel();
+        jLabelDisplayMode = new javax.swing.JLabel();
+        jButtonChangeMode = new javax.swing.JButton();
+        jLabelResponse = new javax.swing.JLabel();
+        jButtonConfirm = new javax.swing.JButton();
+        jButtonCancel = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        jTextArea = new javax.swing.JTextArea();
+
+        setTitle("Taxi Service");
+        addWindowListener(new java.awt.event.WindowAdapter()
+        {
+            public void windowClosing(java.awt.event.WindowEvent evt)
+            {
+                exitForm(evt);
+            }
+        });
+
+        jPanel2.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
+        jLabel10.setText("Taxi                                                                    ");
+        jLabel10.setForeground(java.awt.Color.red);
+        jLabel10.setFont(new java.awt.Font("Dialog", 1, 24));
+        jPanel2.add(jLabel10);
+
+        getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);
+
+        jPanel3.setLayout(new javax.swing.BoxLayout(jPanel3, javax.swing.BoxLayout.Y_AXIS));
+
+        jLabel15.setText("Mode:");
+        jPanel3.add(jLabel15);
+
+        jLabelDisplayMode.setText("Automatic");
+        jLabelDisplayMode.setForeground(java.awt.Color.blue);
+        jLabelDisplayMode.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanel3.add(jLabelDisplayMode);
+
+        jButtonChangeMode.setText("Change mode");
+        jButtonChangeMode.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonChangeMode.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonChangeMode.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonChangeModeActionPerformed(evt);
+            }
+        });
+
+        jPanel3.add(jButtonChangeMode);
+
+        jLabelResponse.setText("Response:");
+        jPanel3.add(jLabelResponse);
+
+        jButtonConfirm.setText("Confirm");
+        jButtonConfirm.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonConfirm.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonConfirm.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonConfirmActionPerformed(evt);
+            }
+        });
+
+        jPanel3.add(jButtonConfirm);
+
+        jButtonCancel.setText("Cancel");
+        jButtonCancel.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonCancel.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonCancel.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonCancelActionPerformed(evt);
+            }
+        });
+
+        jPanel3.add(jButtonCancel);
+
+        getContentPane().add(jPanel3, java.awt.BorderLayout.WEST);
+
+        jScrollPane1.setAutoscrolls(true);
+        jTextArea.setEditable(false);
+        jTextArea.setRows(10);
+        jTextArea.setMargin(new java.awt.Insets(5, 5, 5, 5));
+        jScrollPane1.setViewportView(jTextArea);
+
+        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
+
+        pack();
+    }//GEN-END:initComponents
+
+    /**
+     * Cancel event handler.
+     */
+    private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonCancelActionPerformed
+        if (taxiManager.getIsPreparationWaiting())
+        {
+            Object preparation = taxiManager.getPreparation();
+            try
+            {
+                taxiManager.setCommit(false);
+                synchronized (preparation)
+                {
+                    preparation.notify();
+                }
+            }
+            catch (Exception e)
+            {
+                System.err.println("TaxiView.jButtonCancelActionPerformed(): Unable to notify preparation.");
+            }
+        }
+    }//GEN-LAST:event_jButtonCancelActionPerformed
+
+    /**
+     * Confirm event handler.
+     */
+    private void jButtonConfirmActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonConfirmActionPerformed
+        if (taxiManager.getIsPreparationWaiting())
+        {
+            Object preparation = taxiManager.getPreparation();
+            try
+            {
+                taxiManager.setCommit(true);
+                synchronized (preparation)
+                {
+                    preparation.notify();
+                }
+            }
+            catch (Exception e)
+            {
+                System.err.println("TaxiView.jButtonCancelActionPerformed(): Unable to notify preparation.");
+            }
+        }
+    }//GEN-LAST:event_jButtonConfirmActionPerformed
+
+    /**
+     * ChangeMode event handler.
+     */
+    private void jButtonChangeModeActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonChangeModeActionPerformed
+        if (taxiManager.isAutoCommitMode())
+        {
+            taxiManager.setAutoCommitMode(false);
+        }
+        else
+        {
+            taxiManager.setAutoCommitMode(true);
+        }
+        updateFields();
+    }//GEN-LAST:event_jButtonChangeModeActionPerformed
+
+    /**
+     * Exit the application.
+     */
+    private void exitForm(java.awt.event.WindowEvent evt)
+    {//GEN-FIRST:event_exitForm
+        //System.exit(0); // disabled for embedding in application servers.
+    }//GEN-LAST:event_exitForm
+
+    /**
+     * Add status (highlighted) text to the central jTextArea.
+     *
+     * @param text The String to add
+     */
+    public void addMessage(java.lang.String text)
+    {
+        jButtonConfirm.setBackground(backButtonColor);
+        jButtonCancel.setBackground(backButtonColor);
+        jTextArea.append(text + "\n");
+        jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
+    }
+
+    /**
+     * Add status (highlighted) text to the central jTextArea.
+     *
+     * @param text The String to add
+     */
+    public void addPrepareMessage(java.lang.String text)
+    {
+        jButtonConfirm.setBackground(java.awt.Color.red);
+        jButtonCancel.setBackground(java.awt.Color.red);
+        jTextArea.append(text + "\n");
+        jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
+    }
+
+    /**
+     * Synchronise the GUI with the underlying state.
+     */
+    public void updateFields()
+    {
+        //update fields related to interactive mode.
+        if (taxiManager.isAutoCommitMode())
+        {
+            jLabelResponse.setVisible(false);
+            jButtonConfirm.setVisible(false);
+            jButtonCancel.setVisible(false);
+            jLabelDisplayMode.setText("automatic");
+        }
+        else
+        {
+            jLabelResponse.setVisible(true);
+            jButtonConfirm.setVisible(true);
+            jButtonCancel.setVisible(true);
+            jLabelDisplayMode.setText("interactive");
+        }
+    }
+
+    /**
+     * Allow use of a singleton model for web services demo.
+     */
+    public static TaxiView getSingletonInstance()
+    {
+        if (singletonInstance == null)
+        {
+            singletonInstance = new TaxiView(TaxiManager.getSingletonInstance());
+        }
+        singletonInstance.show();
+        return singletonInstance;
+    }
+
+    /**
+     * A singleton instance of this class.
+     */
+    private static TaxiView singletonInstance;
+
+    // Variables declaration - automatically generated - do not modify
+    private javax.swing.JPanel jPanel2;
+    private javax.swing.JLabel jLabel10;
+    private javax.swing.JButton jButtonChangeDefaultAnswer;
+    private javax.swing.JLabel jLabelDefaultAnswer;
+    private javax.swing.JPanel jPanel3;
+    private javax.swing.JLabel jLabel15;
+    private javax.swing.JLabel jLabelDisplayMode;
+    private javax.swing.JButton jButtonChangeMode;
+    private javax.swing.JLabel jLabelResponse;
+    private javax.swing.JButton jButtonConfirm;
+    private javax.swing.JButton jButtonCancel;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JTextArea jTextArea;
+
+    // End of automatically generated variables declarations
+    /**
+     * The  {@link TaxiManager} instance this view is bound to.
+     */
+    private TaxiManager taxiManager;
+    /**
+     * The current color of the back button.
+     */
+    private java.awt.Color backButtonColor;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreManager.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreManager.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreManager.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,529 @@
+/*
+ * 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.
+ */
+/*
+ * TheatreManager.java
+ *
+ * Copyright (c) 2003 Arjuna Technologies Ltd.
+ *
+ * $Id: TheatreManager.java,v 1.4 2004/04/21 13:09:20 jhalliday Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.theatre;
+
+import java.util.Hashtable;
+
+/**
+ * The transactional application logic for the Theatre Service.
+ * <p/>
+ * Stores and manages seating reservations. Knows nothing about Web Services.
+ * Understands transactional booking lifecycle: unprepared, prepared, finished.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.4 $
+ */
+public class TheatreManager
+{
+    /**
+     * Create and initialise a new TheatreManager instance.
+     */
+    public TheatreManager()
+    {
+        setToDefault();
+    }
+
+    /**
+     * Book a number of seats in a specific area of the theatre.
+     *
+     * @param txID   The transaction identifier
+     * @param nSeats The number of seats requested
+     * @param area   The type of seating requested
+     */
+    public void bookSeats(Object txID, int nSeats, int area)
+    {
+        // locate any pre-existing request for the same transaction
+        Integer[] requests = (Integer[]) unpreparedTransactions.get(txID);
+        if (requests == null)
+        {
+            // this is the first request for this transaction
+            // setup the data structure to record it
+            requests = new Integer[NUM_SEAT_AREAS];
+            for (int i = 0; i < NUM_SEAT_AREAS; i++)
+            {
+                requests[i] = new Integer(0);
+            }
+        }
+
+        // record the request, keyed to its transaction scope
+        requests[area] = new Integer(requests[area].intValue() + nSeats);
+        unpreparedTransactions.put(txID, requests);
+
+        // record the increased commitment to provide seating
+        nBookedSeats[area] += nSeats;
+    }
+
+    /**
+     * Attempt to ensure availability of the requested seating.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean prepareSeats(Object txID)
+    {
+        int[] nSeats = new int[NUM_SEAT_AREAS];
+
+        // ensure that we have seen this transaction before
+        Integer[] requests = (Integer[]) unpreparedTransactions.get(txID);
+        if (requests == null)
+        {
+            return false; // error: transaction not registered
+        }
+        else
+        {
+            // determine the number of seats available
+            for (int i = 0; i < NUM_SEAT_AREAS; i++)
+            {
+                nSeats[i] = nFreeSeats[i];
+                nSeats[i] -= requests[i].intValue();
+            }
+            if (autoCommitMode)
+            {
+                boolean success = true;
+                // check we have enough seats avaiable
+                for (int i = 0; i < NUM_SEAT_AREAS; i++)
+                {
+                    if (nSeats[i] < 0)
+                    {
+                        success = false; // error: not enough seats
+                    }
+                }
+                if (success)
+                {
+                    // record the prepared transaction
+                    preparedTransactions.put(txID, requests);
+                    unpreparedTransactions.remove(txID);
+                    // mark the prepared seats as unavailable
+                    for (int i = 0; i < NUM_SEAT_AREAS; i++)
+                    {
+                        nFreeSeats[i] = nSeats[i];
+                        nPreparedSeats[i] += requests[i].intValue();
+                    }
+                }
+                return success;
+            }
+            else
+            {
+                try
+                {
+                    // wait for a user commit/rollback decision
+                    isPreparationWaiting = true;
+                    synchronized (preparation)
+                    {
+                        preparation.wait();
+                    }
+                    isPreparationWaiting = false;
+
+                    // process the user decision
+                    if (isCommit)
+                    {
+                        // record the prepared transaction
+                        preparedTransactions.put(txID, requests);
+                        unpreparedTransactions.remove(txID);
+                        // mark the prepared seats as unavailable
+                        for (int i = 0; i < NUM_SEAT_AREAS; i++)
+                        {
+                            nFreeSeats[i] = nSeats[i];
+                            nPreparedSeats[i] += requests[i].intValue();
+                        }
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+                    }
+                }
+                catch (Exception e)
+                {
+                    System.err.println("TheatreManager.prepareSeats(): Unable to stop preparation.");
+                    return false;
+                }
+            }
+        }
+    }
+
+    /**
+     * Release booked or prepared seats.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean cancelSeats(Object txID)
+    {
+        boolean success = false;
+
+        // the transaction may be prepared, unprepared or unknown
+
+        if (preparedTransactions.containsKey(txID))
+        {
+            // undo the prepare operations
+            Integer[] requests = (Integer[]) preparedTransactions.remove(txID);
+            for (int i = 0; i < NUM_SEAT_AREAS; i++)
+            {
+                nFreeSeats[i] += requests[i].intValue();
+                nPreparedSeats[i] -= requests[i].intValue();
+                nBookedSeats[i] -= requests[i].intValue();
+            }
+            success = true;
+        }
+        else if (unpreparedTransactions.containsKey(txID))
+        {
+            // undo the booking operations
+            Integer[] requests = (Integer[]) unpreparedTransactions.remove(txID);
+            for (int i = 0; i < NUM_SEAT_AREAS; i++)
+            {
+                nBookedSeats[i] -= requests[i].intValue();
+            }
+            success = true;
+        }
+        else
+        {
+            success = false; // error: transaction not registered
+        }
+
+        return success;
+    }
+
+    /**
+     * Commit seat bookings.
+     *
+     * @param txID The transaction identifier
+     * @return true on success, false otherwise
+     */
+    public boolean commitSeats(Object txID)
+    {
+        boolean success = false;
+
+        // the transaction may be prepared, unprepared or unknown
+
+        if (preparedTransactions.containsKey(txID))
+        {
+
+            // complete the prepared transaction
+            Integer[] requests = (Integer[]) preparedTransactions.remove(txID);
+            for (int i = 0; i < NUM_SEAT_AREAS; i++)
+            {
+                nCommittedSeats[i] += requests[i].intValue();
+                nPreparedSeats[i] -= requests[i].intValue();
+                nBookedSeats[i] -= requests[i].intValue();
+            }
+            success = true;
+        }
+        else if (unpreparedTransactions.containsKey(txID))
+        {
+            // use one phase commit optimisation, skipping prepare
+            Integer[] requests = (Integer[]) unpreparedTransactions.remove(txID);
+            for (int i = 0; i < NUM_SEAT_AREAS; i++)
+            {
+                nCommittedSeats[i] += requests[i].intValue();
+                nFreeSeats[i] -= requests[i].intValue();
+                nBookedSeats[i] -= requests[i].intValue();
+            }
+            success = true;
+        }
+        else
+        {
+            success = false; // error: transaction not registered
+        }
+
+        return success;
+    }
+
+    /**
+     * Determine if a specific transaction is known to the business logic.
+     *
+     * @param txID The uniq id for the transaction
+     * @return true if the business logic is holding state related to the given txID,
+     *         false otherwise.
+     */
+    public boolean knowsAbout(Object txID)
+    {
+        return (unpreparedTransactions.containsKey(txID) || preparedTransactions.containsKey(txID));
+    }
+
+    /**
+     * Change the capacity of a given seating area.
+     *
+     * @param area   The seating area to change
+     * @param nSeats The new capacity for the area
+     */
+    public void newCapacity(int area, int nSeats)
+    {
+        nFreeSeats[area] += nSeats - nTotalSeats[area];
+        nTotalSeats[area] = nSeats;
+    }
+
+    /**
+     * Get the number of free seats in the given area.
+     *
+     * @param area The area of interest
+     * @return The number of free seats
+     */
+    public int getNFreeSeats(int area)
+    {
+        return nFreeSeats[area];
+    }
+
+    /**
+     * Get the total number of seats in the given area.
+     *
+     * @param area The area of interest
+     * @return The total number of seats
+     */
+    public int getNTotalSeats(int area)
+    {
+        return nTotalSeats[area];
+    }
+
+    /**
+     * Get the number of booked seats in the given area.
+     *
+     * @param area The area of interest
+     * @return The number of booked seats
+     */
+    public int getNBookedSeats(int area)
+    {
+        return nBookedSeats[area];
+    }
+
+    /**
+     * Get the number of prepared seats in the given area.
+     *
+     * @param area The area of interest
+     * @return The number of prepared seats
+     */
+    public int getNPreparedSeats(int area)
+    {
+        return nPreparedSeats[area];
+    }
+
+    /**
+     * Get the number of committed seats in the given area.
+     *
+     * @param area The area of interest
+     * @return The number of committed seats
+     */
+    public int getNCommittedSeats(int area)
+    {
+        return nCommittedSeats[area];
+    }
+
+    /**
+     * Determine the autoCommit status of the instance.
+     *
+     * @return true if autoCommit mode is active, false otherwise
+     */
+    public boolean isAutoCommitMode()
+    {
+        return autoCommitMode;
+    }
+
+    /**
+     * Set the autoCommit mode of the instance.
+     *
+     * @param autoCommit true for automatic commit, false for manual commit.
+     */
+    public void setAutoCommitMode(boolean autoCommit)
+    {
+        autoCommitMode = autoCommit;
+    }
+
+    /**
+     * Get the preparation object for manual commit wait/notify.
+     *
+     * @return The preparation object
+     */
+    public Object getPreparation()
+    {
+        return preparation;
+    }
+
+    /**
+     * Determine if the instance is waiting for manual commit/rollback.
+     *
+     * @return true if waiting, false otherwise
+     */
+    public boolean getIsPreparationWaiting()
+    {
+        return isPreparationWaiting;
+    }
+
+    /**
+     * Set the waiting status of the instance.
+     *
+     * @param isWaiting The new value to set
+     */
+    public void setIsPreparationWaiting(boolean isWaiting)
+    {
+        isPreparationWaiting = isWaiting;
+    }
+
+    /**
+     * Set the manual commit status.
+     */
+    public void setCommit(boolean commit)
+    {
+        isCommit = commit;
+    }
+
+    /**
+     * (re-)initialise the instance data structures.
+     */
+    public void setToDefault()
+    {
+        nTotalSeats = new int[NUM_SEAT_AREAS];
+        nFreeSeats = new int[NUM_SEAT_AREAS];
+        nBookedSeats = new int[NUM_SEAT_AREAS];
+        nPreparedSeats = new int[NUM_SEAT_AREAS];
+        nCommittedSeats = new int[NUM_SEAT_AREAS];
+        for (int i = 0; i < NUM_SEAT_AREAS; i++)
+        {
+            nTotalSeats[i] = DEFAULT_SEATING_CAPACITY;
+            nFreeSeats[i] = nTotalSeats[i];
+            nBookedSeats[i] = 0;
+            nPreparedSeats[i] = 0;
+            nCommittedSeats[i] = 0;
+        }
+        preparedTransactions = new Hashtable();
+        unpreparedTransactions = new Hashtable();
+        autoCommitMode = true;
+        preparation = new Object();
+        isPreparationWaiting = false;
+        isCommit = true;
+    }
+
+    /**
+     * Allow use of a singleton model for web services demo.
+     */
+    public static TheatreManager getSingletonInstance()
+    {
+        if (singletonInstance == null)
+        {
+            singletonInstance = new TheatreManager();
+        }
+
+        return singletonInstance;
+    }
+
+    /**
+     * A singleton instance of this class.
+     */
+    private static TheatreManager singletonInstance;
+
+    /*
+     * The following arrays are indexed by seating type.
+     *
+     * nTotalSeats = ( nFreeSeats + nBookedSeats + nPreparedSeats )
+     */
+
+    /**
+     * The total seating capacity of each area.
+     */
+    private int[] nTotalSeats;
+
+    /**
+     * The number of free seats in each area.
+     */
+    private int[] nFreeSeats;
+
+    /**
+     * The number of booked seats in each area.
+     * <p/>
+     * Note: This may exceed the total size of the area
+     */
+    private int[] nBookedSeats;
+
+    /**
+     * The number of prepared (promised) seats in each area.
+     */
+    private int[] nPreparedSeats;
+
+    /**
+     * The number of committed seats in each area.
+     */
+    private int[] nCommittedSeats;
+
+    /**
+     * The auto commit mode.
+     * <p/>
+     * true = automatically commit, false = manually commit
+     */
+    private boolean autoCommitMode;
+
+    /**
+     * The object used for wait/notify in manual commit mode.
+     */
+    private Object preparation;
+
+    /**
+     * The waiting status, when in manual commit mode.
+     */
+    private boolean isPreparationWaiting;
+
+    /**
+     * The user specified outcome when in manual commit mode.
+     */
+    private boolean isCommit;
+
+    /**
+     * The transactions we know about but which have not been prepared.
+     */
+    private Hashtable unpreparedTransactions;
+
+    /**
+     * The transactions we know about and are prepared to commit.
+     */
+    private Hashtable preparedTransactions;
+
+    /**
+     * Constant (array index) used for the seating area CIRCLE.
+     */
+    public static final int CIRCLE = 0;
+
+    /**
+     * Constant (array index) used for the seating area STALLS.
+     */
+    public static final int STALLS = 1;
+
+    /**
+     * Constant (array index) used for the seating area BALCONY.
+     */
+    public static final int BALCONY = 2;
+
+    /**
+     * The total number (array size) of seating areas.
+     */
+    public static final int NUM_SEAT_AREAS = 3;
+
+    /**
+     * The default initial capacity of each seating area.
+     */
+    public static final int DEFAULT_SEATING_CAPACITY = 100;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantAT.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantAT.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantAT.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,201 @@
+/*
+ * 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.
+ */
+/*
+ * TheatreParticipantAT.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TheatreParticipantAT.java,v 1.3 2005/02/23 09:58:02 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.theatre;
+
+import com.arjuna.wst.*;
+
+/**
+ * An adapter class that exposes the TheatreManager transaction lifecycle
+ * API as a WS-T Atomic Transaction participant.
+ * Also logs events to a TheatreView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class TheatreParticipantAT implements Durable2PCParticipant
+{
+    /**
+     * Participant instances are related to transaction instances
+     * in a one to one manner.
+     *
+     * @param txID uniq id String for the transaction instance.
+     */
+    public TheatreParticipantAT(String txID)
+    {
+        // Binds to the singleton TheatreView and TheatreManager
+        theatreManager = TheatreManager.getSingletonInstance();
+        theatreView = TheatreView.getSingletonInstance();
+        // we need to save the txID for later use when calling
+        // business logic methods in the theatreManger.
+        this.txID = txID;
+    }
+
+    /**
+     * Invokes the prepare step of the business logic,
+     * reporting activity and outcome.
+     *
+     * @return trus on success, false otherwise.
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public Vote prepare() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the prepare operation
+        // on the backend business logic.
+
+        System.out.println("TheatreParticipantAT.prepare");
+
+        theatreView.addPrepareMessage("id:" + txID + ". Prepare called on participant: " + this.getClass().toString());
+
+        boolean success = theatreManager.prepareSeats(txID);
+
+        // Log the outcome and map the return value from
+        // the business logic to the appropriate Vote type.
+
+
+        if (success)
+        {
+            theatreView.addMessage("Theatre prepared successfully. Returning 'Prepared'\n");
+            theatreView.updateFields();
+            return new Prepared();
+        }
+        else
+        {
+            theatreManager.cancelSeats(txID) ;
+            theatreView.addMessage("Prepare failed (not enough seats?) Returning 'Aborted'\n");
+            theatreView.updateFields();
+            return new Aborted();
+        }
+    }
+
+    /**
+     * Invokes the commit step of the business logic,
+     * reporting activity and outcome.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void commit() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the commit operation
+        // on the backend business logic.
+
+        System.out.println("TheatreParticipantAT.commit");
+
+        theatreView.addMessage("id:" + txID + ". Commit called on participant: " + this.getClass().toString());
+
+        boolean success = theatreManager.commitSeats(txID);
+
+        // Log the outcome
+
+        if (success)
+        {
+            theatreView.addMessage("Theatre tickets committed\n");
+        }
+        else
+        {
+            theatreView.addMessage("Something went wrong (Transaction not registered?)\n");
+        }
+
+        theatreView.updateFields();
+    }
+
+    /**
+     * Invokes the rollback operation on the business logic,
+     * reporting activity and outcome.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void rollback() throws WrongStateException, SystemException
+    {
+        // Log the event and invoke the rollback operation
+        // on the backend business logic.
+
+        System.out.println("TheatreParticipantAT.rollback");
+
+        theatreView.addMessage("id:" + txID + ". Rollback called on participant: " + this.getClass().toString());
+
+        boolean success = theatreManager.cancelSeats(txID);
+
+        // Log the outcome
+
+        if (success)
+        {
+            theatreView.addMessage("Theatre booking cancelled\n");
+        }
+        else
+        {
+            theatreView.addMessage("Something went wrong (Transaction not registered?)\n");
+        }
+
+        theatreView.updateFields();
+    }
+
+    /**
+     * Shortcut method which combines the prepare
+     * and commit steps in a single operation.
+     *
+     * @throws WrongStateException
+     * @throws SystemException
+     */
+    public void commitOnePhase() throws WrongStateException, SystemException
+    {
+        prepare();
+        commit();
+    }
+
+    public void unknown() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    public void error() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    /**
+     * Id for the transaction which this participant instance relates to.
+     * Set by the service (via contrtuctor) at enrolment time, this value
+     * is passed to the backend business logic methods.
+     */
+    protected String txID;
+
+    /**
+     * The TheatreView object to log events through.
+     */
+    protected static TheatreView theatreView;
+
+    /**
+     * The TheatreManager to perform business logic operations on.
+     */
+    protected static TheatreManager theatreManager;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreParticipantBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,194 @@
+/*
+ * 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.
+ */
+/*
+ * TheatreParticipantBA.java
+ *
+ * Copyright (c) 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TheatreParticipantBA.java,v 1.3 2004/09/09 15:18:10 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.theatre;
+
+import com.arjuna.wst.*;
+import com.arjuna.ats.arjuna.common.Uid;
+
+/**
+ * An adapter class that exposes the TheatreManager transaction lifecycle
+ * API as a WS-T Business Activity participant.
+ * Also logs events to a TheatreView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class TheatreParticipantBA implements BusinessAgreementWithParticipantCompletionParticipant
+{
+    /**
+     * Participant instances are related to business method calls
+     * in a one to one manner.
+     *
+     * @param txID       uniq id String for the transaction instance.
+     * @param how_many   seats to book/compensate.
+     * @param which_area of the theatre the seats are in.
+     */
+    public TheatreParticipantBA(String txID, int how_many, int which_area)
+    {
+        // Binds to the singleton TheatreView and TheatreManager
+        theatreManager = TheatreManager.getSingletonInstance();
+        theatreView = TheatreView.getSingletonInstance();
+        // we need to save the txID for later use when logging
+        this.txID = txID;
+        // we also need the business paramater(s) in case of compensation
+        this.seatCount = how_many;
+        this.seatingArea = which_area;
+    }
+
+    /**
+     * The transaction has completed successfully. The participant previously
+     * informed the coordinator that it was ready to complete.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException never in this implementation.
+     */
+
+    public void close() throws WrongStateException, SystemException
+    {
+        // for logging only. This impl does not do anything else here.
+
+        System.out.println("TheatreParticipantBA.close");
+
+        theatreView.addMessage("id:" + txID + ". Close called on participant: " + this.getClass());
+        theatreView.updateFields();
+    }
+
+    /**
+     * The transaction has cancelled, and the participant should undo any work.
+     * The participant cannot have informed the coordinator that it has
+     * completed.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException never in this implementation.
+     */
+
+    public void cancel() throws WrongStateException, SystemException
+    {
+        // we will always have called completed or error, so this can be a null op.
+
+        System.out.println("TheatreParticipantBA.cancel");
+
+        theatreView.addMessage("id:" + txID + ". Cancel called on participant: " + this.getClass().toString());
+        theatreView.updateFields();
+    }
+
+    /**
+     * The transaction has cancelled. The participant previously
+     * informed the coordinator that it had finished work but could compensate
+     * later if required, so it is now requested to do so.
+     *
+     * @throws WrongStateException never in this implementation.
+     * @throws SystemException if unable to perform the compensating transaction.
+     */
+
+    public void compensate() throws WrongStateException, SystemException
+    {
+        System.out.println("TheatreParticipantBA.compensate");
+
+        // Log the event and perform a compensating transaction
+        // on the backend business logic if needed.
+
+        theatreView.addPrepareMessage("id:" + txID + ". Compensate called on participant: " + this.getClass().toString());
+        theatreView.updateFields();
+
+        if (seatCount > 0)
+        {
+            String compensatingTxID = new Uid().toString();
+            // use a negative number of seats to 'reverse' the previous booking
+            // This technique (hack) prevents us needing new business logic to support compensation.
+            theatreManager.bookSeats(compensatingTxID, seatCount * -1, seatingArea);
+            theatreView.updateFields();
+
+            boolean success = false;
+            if(theatreManager.prepareSeats(compensatingTxID))
+            {
+                if (theatreManager.commitSeats(compensatingTxID))
+                {
+                    theatreView.addMessage("id:" + txID + " Compensating transaction completed sucessfully.");
+                    theatreView.updateFields();
+                    success = true;
+                }
+            }
+            else
+            {
+                theatreManager.cancelSeats(compensatingTxID);
+            }
+
+            if(!success)
+            {
+                theatreView.addMessage("id:" + txID + " Compensation failed. Throwing SystemException\n");
+                theatreView.updateFields();
+                throw new SystemException("Compensating transaction failed.");
+            }
+        }
+    }
+    
+    public String status()
+    {
+        return Status.STATUS_ACTIVE ;
+    }
+
+    public void unknown() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    public void error() throws SystemException
+    {
+        // used for calbacks during crash recovery. This impl is not recoverable
+    }
+
+    /**
+     * Id for the transaction which this participant instance relates to.
+     * Set by the service (via contrtuctor) at enrolment time, this value
+     * is used in informational log messages.
+     */
+    protected String txID;
+
+    /**
+     * Copy of business state information, may be needed during compensation.
+     */
+    protected int seatCount;
+
+    /**
+     * Copy of business state information, may be needed during compensation.
+     */
+    protected int seatingArea;
+
+    /**
+     * The TheatreView object to log events through.
+     */
+    protected static TheatreView theatreView;
+
+    /**
+     * The TheatreManager to perform business logic operations on.
+     */
+    protected static TheatreManager theatreManager;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceAT.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceAT.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceAT.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ */
+/*
+ * TheatreServiceAT.java
+ *
+ * Copyright (c) 2003, 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TheatreServiceAT.java,v 1.3 2004/12/01 16:27:21 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.theatre;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.TransactionManagerFactory;
+import com.arjuna.mw.wst.UserTransactionFactory;
+import com.jboss.jbosstm.xts.demo.theatre.ITheatreService;
+
+import javax.jws.WebService;
+import javax.jws.WebParam;
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * An adapter class that exposes the TheatreManager business API as a
+ * transactional Web Service. Also logs events to a TheatreView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+ at WebService(serviceName="TheatreServiceATService", portName="TheatreServiceAT",
+        name = "TheatreServiceAT", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Theatre",
+        wsdlLocation = "../wsdl/TheatreServiceAT.wsdl")
+ at HandlerChain(file = "../context-handlers.xml", name = "Context Handlers")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class TheatreServiceAT implements ITheatreService
+{
+    /**
+     * Book a number of seats in the Theatre
+     * Enrols a Participant if necessary, then passes
+     * the call through to the business logic.
+     *
+     * @param how_many   The number of seats to book
+     * @param which_area The area of the theatre to book seats in
+     */
+    @WebMethod
+    public void bookSeats(
+        @WebParam(name = "how_many", partName = "how_many")
+        int how_many,
+        @WebParam(name = "which_area", partName = "which_area")
+        int which_area)
+    {
+        TheatreView theatreView = TheatreView.getSingletonInstance();
+        TheatreManager theatreManager = TheatreManager.getSingletonInstance();
+
+        String transactionId = null;
+        try
+        {
+            // get the transaction context of this thread:
+            transactionId = UserTransactionFactory.userTransaction().toString();
+            System.out.println("TheatreServiceAT transaction id =" + transactionId);
+
+            if (!theatreManager.knowsAbout(transactionId))
+            {
+                System.out.println("theatreService - enrolling...");
+                // enlist the Participant for this service:
+                TheatreParticipantAT theatreParticipant = new TheatreParticipantAT(transactionId);
+                TransactionManagerFactory.transactionManager().enlistForDurableTwoPhase(theatreParticipant, new Uid().toString());
+            }
+        }
+        catch (Exception e)
+        {
+            System.err.println("bookSeats: Participant enrolment failed");
+            e.printStackTrace(System.err);
+            return;
+        }
+
+        theatreView.addMessage("******************************");
+
+        theatreView.addMessage("id:" + transactionId.toString() + ". Received a theatre booking request for " + how_many + " seats in area " + which_area);
+
+        TheatreManager.getSingletonInstance().bookSeats(transactionId, how_many, which_area);
+
+        theatreView.addMessage("Request complete\n");
+        theatreView.updateFields();
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreServiceBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,146 @@
+/*
+ * 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.
+ */
+/*
+ * TheatreServiceBA.java
+ *
+ * Copyright (c) 2004 Arjuna Technologies Ltd.
+ *
+ * $Id: TheatreServiceBA.java,v 1.5 2004/12/01 16:27:21 kconner Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.theatre;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.mw.wst.BusinessActivityManagerFactory;
+import com.arjuna.wst.SystemException;
+import com.jboss.jbosstm.xts.demo.theatre.ITheatreServiceBA;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * An adapter class that exposes the TheatreManager business API as a
+ * transactional Web Service. Also logs events to a TheatreView object.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.5 $
+ */
+ at WebService(serviceName="TheatreServiceBAService", portName="TheatreServiceBA",
+        name = "TheatreServiceBA", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Theatre",
+        wsdlLocation = "../wsdl/TheatreServiceBA.wsdl")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+ at HandlerChain(file = "../context-handlers.xml", name = "Context Handlers")
+public class TheatreServiceBA implements ITheatreServiceBA
+{
+    /**
+     * Book a number of seats in the Theatre
+     * Enrols a Participant if necessary, then passes
+     * the call through to the business logic.
+     *
+     * @param how_many   The number of seats to book.
+     * @param which_area The area of the theatre to book seats in.
+     * @return true on success, false otherwise.
+     */
+    @WebMethod
+    @WebResult(name = "bookSeatsBAResponse", partName = "bookSeatsBAResponse")
+    public boolean bookSeats(
+            @WebParam(name = "how_many", partName = "how_many")
+            int how_many,
+            @WebParam(name = "which_area", partName = "which_area")
+            int which_area)
+
+    {
+        TheatreView theatreView = TheatreView.getSingletonInstance();
+        TheatreManager theatreManager = TheatreManager.getSingletonInstance();
+
+        BusinessActivityManager activityManager = BusinessActivityManagerFactory.businessActivityManager();
+
+        // get the transaction context of this thread:
+        String transactionId = null;
+        try
+        {
+            transactionId = activityManager.currentTransaction().toString();
+        }
+        catch (SystemException e)
+        {
+            System.err.println("bookSeats: unable to obtain a transaction context!");
+            e.printStackTrace(System.err);
+            return false;
+        }
+
+        System.out.println("TheatreServiceBA transaction id =" + transactionId);
+
+        theatreView.addMessage("******************************");
+
+        theatreView.addPrepareMessage("id:" + transactionId + ". Received a theatre booking request for " + how_many + " seats in area " + which_area);
+        theatreView.updateFields();
+
+        theatreManager.bookSeats(transactionId, how_many, which_area);
+
+        if (theatreManager.prepareSeats(transactionId))
+        {
+            theatreView.addMessage("id:" + transactionId + ". Seats prepared, trying to commit and enlist compensation Participant");
+            theatreView.updateFields();
+
+            TheatreParticipantBA theatreParticipant = new TheatreParticipantBA(transactionId, how_many, which_area);
+            // enlist the Participant for this service:
+            com.arjuna.wst.BAParticipantManager participantManager = null;
+            try
+            {
+                participantManager = activityManager.enlistForBusinessAgreementWithParticipantCompletion(theatreParticipant, new Uid().toString());
+            }
+            catch (Exception e)
+            {
+                theatreView.addMessage("id:" + transactionId + ". Participant enrolement failed");
+                System.err.println("bookSeats: Participant enrolement failed");
+                e.printStackTrace(System.err);
+                return false;
+            }
+
+            theatreManager.commitSeats(transactionId);
+
+            try
+            {
+                participantManager.completed();
+            }
+            catch (Exception e)
+            {
+                System.err.println("bookSeats: 'completed' callback failed");
+                e.printStackTrace(System.err);
+                return false;
+            }
+        }
+        else
+        {
+            theatreView.addMessage("id:" + transactionId + ". Failed to reserve seats. Cancelling.");
+            theatreManager.cancelSeats(transactionId);
+            theatreView.updateFields();
+            return false;
+        }
+
+        theatreView.addMessage("Request complete\n");
+        theatreView.updateFields();
+
+        return true;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreView.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreView.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/services/theatre/TheatreView.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,608 @@
+/*
+ * 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.
+ */
+/*
+ * TheatreView.java
+ *
+ * Copyright (c) 2003 Arjuna Technologies Ltd.
+ *
+ * $Id: TheatreView.java,v 1.3 2004/04/21 13:09:21 jhalliday Exp $
+ *
+ */
+
+package com.jboss.jbosstm.xts.demo.services.theatre;
+
+/**
+ * The visual interface (GUI) for the Theatre Service.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at arjuna.com)
+ * @version $Revision: 1.3 $
+ */
+public class TheatreView extends javax.swing.JFrame
+{
+
+    // Note: Some parts of this file were auto-generated
+    // by NetBeans 3.3 FormEditor (http://www.netbeans.org)
+
+    /**
+     * Create a new TheatreView instance.
+     *
+     * @param tManager The {@link TheatreManager} instance to bind to
+     */
+    public TheatreView(TheatreManager tManager)
+    {
+        theatreManager = tManager;
+        initComponents();
+        updateFields();
+        backButtonColor = jButtonConfirm.getBackground();
+    }
+
+
+    /**
+     * Initialize the form.
+     * This is called by the constructor
+     * <p/>
+     * WARNING: Automatically generated code, may be overwritten
+     */
+    private void initComponents()
+    {//GEN-BEGIN:initComponents
+        jPanel1 = new javax.swing.JPanel();
+        jLabel1 = new javax.swing.JLabel();
+        jLabel3 = new javax.swing.JLabel();
+        jLabel29 = new javax.swing.JLabel();
+        jLabel30 = new javax.swing.JLabel();
+        jLabel25 = new javax.swing.JLabel();
+        jLabelNBookedSeatsCircle = new javax.swing.JLabel();
+        jLabelNConfirmedSeatsCircle = new javax.swing.JLabel();
+        jLabelNFreeSeatsCircle = new javax.swing.JLabel();
+        jLabel35 = new javax.swing.JLabel();
+        jLabelNBookedSeatsStalls = new javax.swing.JLabel();
+        jLabelNConfirmedSeatsStalls = new javax.swing.JLabel();
+        jLabelNFreeSeatsStalls = new javax.swing.JLabel();
+        jLabel28 = new javax.swing.JLabel();
+        jLabelNBookedSeatsBalcony = new javax.swing.JLabel();
+        jLabelNConfirmedSeatsBalcony = new javax.swing.JLabel();
+        jLabelNFreeSeatsBalcony = new javax.swing.JLabel();
+        jLabel34 = new javax.swing.JLabel();
+        jButtonResetFields = new javax.swing.JButton();
+        jPanel2 = new javax.swing.JPanel();
+        jLabel10 = new javax.swing.JLabel();
+        jLabel13 = new javax.swing.JLabel();
+        jLabel18 = new javax.swing.JLabel();
+        jLabelNTotalSeatsCircle = new javax.swing.JLabel();
+        jLabel19 = new javax.swing.JLabel();
+        jLabelNTotalSeatsStalls = new javax.swing.JLabel();
+        jLabel20 = new javax.swing.JLabel();
+        jLabelNTotalSeatsBalcony = new javax.swing.JLabel();
+        jTextFieldNewNTotalSeats = new javax.swing.JTextField();
+        jButtonSetCircle = new javax.swing.JButton();
+        jButtonSetSalls = new javax.swing.JButton();
+        jButtonSetBalcony = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        jTextArea = new javax.swing.JTextArea();
+        jPanelLeft = new javax.swing.JPanel();
+        jLabel15 = new javax.swing.JLabel();
+        jLabelDisplayMode = new javax.swing.JLabel();
+        jButtonChangeMode = new javax.swing.JButton();
+        jLabelResponse = new javax.swing.JLabel();
+        jButtonConfirm = new javax.swing.JButton();
+        jButtonCancel = new javax.swing.JButton();
+
+        setTitle("Theatre Service");
+        addWindowListener(new java.awt.event.WindowAdapter()
+        {
+            public void windowClosing(java.awt.event.WindowEvent evt)
+            {
+                exitForm(evt);
+            }
+        });
+
+        jPanel1.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
+        jLabel1.setText("SEATS");
+        jLabel1.setForeground(java.awt.Color.darkGray);
+        jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel1);
+
+        jLabel3.setText("(booked, ");
+        jLabel3.setForeground(java.awt.Color.gray);
+        jPanel1.add(jLabel3);
+
+        jLabel29.setText("confirmed, ");
+        jLabel29.setForeground(new java.awt.Color(0, 51, 204));
+        jPanel1.add(jLabel29);
+
+        jLabel30.setText("free)       ");
+        jLabel30.setForeground(new java.awt.Color(0, 153, 0));
+        jPanel1.add(jLabel30);
+
+        jLabel25.setText("Circle (");
+        jLabel25.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel25);
+
+        jLabelNBookedSeatsCircle.setText(Integer.toString(theatreManager.getNBookedSeats(theatreManager.CIRCLE)));
+        jLabelNBookedSeatsCircle.setForeground(java.awt.Color.gray);
+        jLabelNBookedSeatsCircle.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNBookedSeatsCircle);
+
+        jLabelNConfirmedSeatsCircle.setText(Integer.toString(theatreManager.getNCommittedSeats(theatreManager.CIRCLE)));
+        jLabelNConfirmedSeatsCircle.setForeground(new java.awt.Color(0, 51, 204));
+        jLabelNConfirmedSeatsCircle.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNConfirmedSeatsCircle);
+
+        jLabelNFreeSeatsCircle.setText(Integer.toString(theatreManager.getNFreeSeats(theatreManager.CIRCLE)));
+        jLabelNFreeSeatsCircle.setForeground(new java.awt.Color(0, 153, 0));
+        jLabelNFreeSeatsCircle.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNFreeSeatsCircle);
+
+        jLabel35.setText("),  Stalls (");
+        jLabel35.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel35);
+
+        jLabelNBookedSeatsStalls.setText(Integer.toString(theatreManager.getNBookedSeats(theatreManager.STALLS)));
+        jLabelNBookedSeatsStalls.setForeground(java.awt.Color.gray);
+        jLabelNBookedSeatsStalls.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNBookedSeatsStalls);
+
+        jLabelNConfirmedSeatsStalls.setText(Integer.toString(theatreManager.getNCommittedSeats(theatreManager.STALLS)));
+        jLabelNConfirmedSeatsStalls.setForeground(new java.awt.Color(0, 51, 204));
+        jLabelNConfirmedSeatsStalls.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNConfirmedSeatsStalls);
+
+        jLabelNFreeSeatsStalls.setText(Integer.toString(theatreManager.getNFreeSeats(theatreManager.STALLS)));
+        jLabelNFreeSeatsStalls.setForeground(new java.awt.Color(0, 153, 0));
+        jLabelNFreeSeatsStalls.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNFreeSeatsStalls);
+
+        jLabel28.setText("),  Balcony (");
+        jLabel28.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel28);
+
+        jLabelNBookedSeatsBalcony.setText(Integer.toString(theatreManager.getNBookedSeats(theatreManager.BALCONY)));
+        jLabelNBookedSeatsBalcony.setForeground(java.awt.Color.gray);
+        jLabelNBookedSeatsBalcony.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNBookedSeatsBalcony);
+
+        jLabelNConfirmedSeatsBalcony.setText(Integer.toString(theatreManager.getNCommittedSeats(theatreManager.BALCONY)));
+        jLabelNConfirmedSeatsBalcony.setForeground(new java.awt.Color(51, 0, 204));
+        jLabelNConfirmedSeatsBalcony.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNConfirmedSeatsBalcony);
+
+        jLabelNFreeSeatsBalcony.setText(Integer.toString(theatreManager.getNFreeSeats(theatreManager.BALCONY)));
+        jLabelNFreeSeatsBalcony.setForeground(new java.awt.Color(0, 153, 0));
+        jLabelNFreeSeatsBalcony.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel1.add(jLabelNFreeSeatsBalcony);
+
+        jLabel34.setText(")     ");
+        jLabel34.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel1.add(jLabel34);
+
+        jButtonResetFields.setText("Reset Fields");
+        jButtonResetFields.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonResetFieldsActionPerformed(evt);
+            }
+        });
+
+        jPanel1.add(jButtonResetFields);
+
+        getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
+
+        jPanel2.setBorder(new javax.swing.border.LineBorder(java.awt.Color.black));
+        jLabel10.setText("Theatre      ");
+        jLabel10.setForeground(java.awt.Color.red);
+        jLabel10.setFont(new java.awt.Font("Dialog", 1, 24));
+        jPanel2.add(jLabel10);
+
+        jLabel13.setText("TOTAL SEATS   ");
+        jLabel13.setForeground(java.awt.Color.darkGray);
+        jLabel13.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel2.add(jLabel13);
+
+        jLabel18.setText("Circle:");
+        jLabel18.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel2.add(jLabel18);
+
+        jLabelNTotalSeatsCircle.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.CIRCLE)));
+        jLabelNTotalSeatsCircle.setForeground(java.awt.Color.darkGray);
+        jLabelNTotalSeatsCircle.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel2.add(jLabelNTotalSeatsCircle);
+
+        jLabel19.setText("Stalls:");
+        jLabel19.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel2.add(jLabel19);
+
+        jLabelNTotalSeatsStalls.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.STALLS)));
+        jLabelNTotalSeatsStalls.setForeground(java.awt.Color.darkGray);
+        jLabelNTotalSeatsStalls.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel2.add(jLabelNTotalSeatsStalls);
+
+        jLabel20.setText("Balcony:");
+        jLabel20.setFont(new java.awt.Font("Dialog", 1, 14));
+        jPanel2.add(jLabel20);
+
+        jLabelNTotalSeatsBalcony.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.BALCONY)));
+        jLabelNTotalSeatsBalcony.setForeground(java.awt.Color.darkGray);
+        jLabelNTotalSeatsBalcony.setFont(new java.awt.Font("Dialog", 0, 14));
+        jPanel2.add(jLabelNTotalSeatsBalcony);
+
+        jTextFieldNewNTotalSeats.setFont(new java.awt.Font("Dialog", 0, 18));
+        jTextFieldNewNTotalSeats.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.CIRCLE)));
+        jPanel2.add(jTextFieldNewNTotalSeats);
+
+        jButtonSetCircle.setFont(new java.awt.Font("Dialog", 0, 14));
+        jButtonSetCircle.setText("Set Circle");
+        jButtonSetCircle.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonSetCircleActionPerformed(evt);
+            }
+        });
+
+        jPanel2.add(jButtonSetCircle);
+
+        jButtonSetSalls.setFont(new java.awt.Font("Dialog", 0, 14));
+        jButtonSetSalls.setText(" Set Stalls");
+        jButtonSetSalls.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonSetSallsActionPerformed(evt);
+            }
+        });
+
+        jPanel2.add(jButtonSetSalls);
+
+        jButtonSetBalcony.setFont(new java.awt.Font("Dialog", 0, 14));
+        jButtonSetBalcony.setText("Set Balcony");
+        jButtonSetBalcony.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonSetBalconyActionPerformed(evt);
+            }
+        });
+
+        jPanel2.add(jButtonSetBalcony);
+
+        getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);
+
+        jScrollPane1.setAutoscrolls(true);
+        jTextArea.setEditable(false);
+        jTextArea.setRows(10);
+        jTextArea.setMargin(new java.awt.Insets(5, 5, 5, 5));
+        jScrollPane1.setViewportView(jTextArea);
+
+        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
+
+        jPanelLeft.setLayout(new javax.swing.BoxLayout(jPanelLeft, javax.swing.BoxLayout.Y_AXIS));
+
+        jLabel15.setText("Mode:");
+        jPanelLeft.add(jLabel15);
+
+        jLabelDisplayMode.setText("Automatic");
+        jLabelDisplayMode.setForeground(java.awt.Color.blue);
+        jLabelDisplayMode.setFont(new java.awt.Font("Dialog", 1, 18));
+        jPanelLeft.add(jLabelDisplayMode);
+
+        jButtonChangeMode.setText("Change mode");
+        jButtonChangeMode.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonChangeMode.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonChangeMode.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonChangeModeActionPerformed(evt);
+            }
+        });
+
+        jPanelLeft.add(jButtonChangeMode);
+
+        jLabelResponse.setText("Response:");
+        jPanelLeft.add(jLabelResponse);
+
+        jButtonConfirm.setText("Confirm");
+        jButtonConfirm.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonConfirm.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonConfirm.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonConfirmActionPerformed(evt);
+            }
+        });
+
+        jPanelLeft.add(jButtonConfirm);
+
+        jButtonCancel.setText("Cancel");
+        jButtonCancel.setPreferredSize(new java.awt.Dimension(119, 27));
+        jButtonCancel.setMaximumSize(new java.awt.Dimension(119, 27));
+        jButtonCancel.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButtonCancelActionPerformed(evt);
+            }
+        });
+
+        jPanelLeft.add(jButtonCancel);
+
+        getContentPane().add(jPanelLeft, java.awt.BorderLayout.WEST);
+
+        pack();
+    }//GEN-END:initComponents
+
+    /**
+     * Reset event handler.
+     */
+    private void jButtonResetFieldsActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonResetFieldsActionPerformed
+        theatreManager.setToDefault();
+        updateFields();
+    }//GEN-LAST:event_jButtonResetFieldsActionPerformed
+
+    /**
+     * Cancel event handler.
+     */
+    private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonCancelActionPerformed
+        if (theatreManager.getIsPreparationWaiting())
+        {
+            Object preparation = theatreManager.getPreparation();
+            try
+            {
+                theatreManager.setCommit(false);
+                synchronized (preparation)
+                {
+                    preparation.notify();
+                }
+            }
+            catch (Exception e)
+            {
+                System.err.println("TheatreView.jButtonCancelActionPerformed(): Unable to notify preparation.");
+            }
+        }
+    }//GEN-LAST:event_jButtonCancelActionPerformed
+
+    /**
+     * Confirm event handler.
+     */
+    private void jButtonConfirmActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonConfirmActionPerformed
+        if (theatreManager.getIsPreparationWaiting())
+        {
+            Object preparation = theatreManager.getPreparation();
+            try
+            {
+                theatreManager.setCommit(true);
+                synchronized (preparation)
+                {
+                    preparation.notify();
+                }
+            }
+            catch (Exception e)
+            {
+                System.err.println("TheatreView.jButtonCancelActionPerformed(): Unable to notify preparation.");
+            }
+        }
+    }//GEN-LAST:event_jButtonConfirmActionPerformed
+
+    /**
+     * ChangeMode event handler.
+     */
+    private void jButtonChangeModeActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonChangeModeActionPerformed
+        if (theatreManager.isAutoCommitMode())
+            theatreManager.setAutoCommitMode(false);
+        else
+            theatreManager.setAutoCommitMode(true);
+        updateFields();
+    }//GEN-LAST:event_jButtonChangeModeActionPerformed
+
+    /**
+     * Seat reservation event handler.
+     */
+    private void jButtonSetCircleActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonSetCircleActionPerformed
+        String strNSeats = jTextFieldNewNTotalSeats.getText();
+
+        theatreManager.newCapacity(theatreManager.CIRCLE, Integer.parseInt(strNSeats));
+        int nFreeSeats = theatreManager.getNFreeSeats(theatreManager.CIRCLE);
+
+        jLabelNTotalSeatsCircle.setText(strNSeats);
+        jLabelNFreeSeatsCircle.setText(Integer.toString(nFreeSeats));
+    }//GEN-LAST:event_jButtonSetCircleActionPerformed
+
+    /**
+     * Seat reservation event handler.
+     */
+    private void jButtonSetSallsActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonSetSallsActionPerformed
+        String strNSeats = jTextFieldNewNTotalSeats.getText();
+
+        theatreManager.newCapacity(theatreManager.STALLS, Integer.parseInt(strNSeats));
+        int nFreeSeats = theatreManager.getNFreeSeats(theatreManager.STALLS);
+
+        jLabelNTotalSeatsStalls.setText(strNSeats);
+        jLabelNFreeSeatsStalls.setText(Integer.toString(nFreeSeats));
+    }//GEN-LAST:event_jButtonSetSallsActionPerformed
+
+    /**
+     * Seat reservation event handler.
+     */
+    private void jButtonSetBalconyActionPerformed(java.awt.event.ActionEvent evt)
+    {//GEN-FIRST:event_jButtonSetBalconyActionPerformed
+        String strNSeats = jTextFieldNewNTotalSeats.getText();
+
+        theatreManager.newCapacity(theatreManager.BALCONY, Integer.parseInt(strNSeats));
+        int nFreeSeats = theatreManager.getNFreeSeats(theatreManager.BALCONY);
+
+        jLabelNTotalSeatsBalcony.setText(strNSeats);
+        jLabelNFreeSeatsBalcony.setText(Integer.toString(nFreeSeats));
+    }//GEN-LAST:event_jButtonSetBalconyActionPerformed
+
+    /**
+     * Exit the application.
+     */
+    private void exitForm(java.awt.event.WindowEvent evt)
+    {//GEN-FIRST:event_exitForm
+        //System.exit(0); // disabled for embedding in application servers.
+    }//GEN-LAST:event_exitForm
+
+    /**
+     * Add regular text to the central jTextArea.
+     *
+     * @param text The String to add
+     */
+    public void addMessage(java.lang.String text)
+    {
+        jButtonConfirm.setBackground(backButtonColor);
+        jButtonCancel.setBackground(backButtonColor);
+        jTextArea.append(text + "\n");
+        jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
+    }
+
+    /**
+     * Add status (highlighted) text to the central jTextArea.
+     *
+     * @param text The String to add
+     */
+    public void addPrepareMessage(java.lang.String text)
+    {
+        jButtonConfirm.setBackground(java.awt.Color.red);
+        jButtonCancel.setBackground(java.awt.Color.red);
+        jTextArea.append(text + "\n");
+        jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
+    }
+
+    /**
+     * Synchronise the GUI with the underlying state.
+     */
+    public void updateFields()
+    {
+        jLabelNTotalSeatsCircle.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.CIRCLE)));
+        jLabelNTotalSeatsStalls.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.STALLS)));
+        jLabelNTotalSeatsBalcony.setText(Integer.toString(theatreManager.getNTotalSeats(theatreManager.BALCONY)));
+        jTextFieldNewNTotalSeats.setText(jLabelNTotalSeatsCircle.getText());
+        jLabelNBookedSeatsCircle.setText(Integer.toString(theatreManager.getNBookedSeats(theatreManager.CIRCLE)));
+        jLabelNBookedSeatsStalls.setText(Integer.toString(theatreManager.getNBookedSeats(theatreManager.STALLS)));
+        jLabelNBookedSeatsBalcony.setText(Integer.toString(theatreManager.getNBookedSeats(theatreManager.BALCONY)));
+        jLabelNConfirmedSeatsCircle.setText(Integer.toString(theatreManager.getNCommittedSeats(theatreManager.CIRCLE)));
+        jLabelNConfirmedSeatsStalls.setText(Integer.toString(theatreManager.getNCommittedSeats(theatreManager.STALLS)));
+        jLabelNConfirmedSeatsBalcony.setText(Integer.toString(theatreManager.getNCommittedSeats(theatreManager.BALCONY)));
+        jLabelNFreeSeatsCircle.setText(Integer.toString(theatreManager.getNFreeSeats(theatreManager.CIRCLE)));
+        jLabelNFreeSeatsStalls.setText(Integer.toString(theatreManager.getNFreeSeats(theatreManager.STALLS)));
+        jLabelNFreeSeatsBalcony.setText(Integer.toString(theatreManager.getNFreeSeats(theatreManager.BALCONY)));
+
+
+        //update fields related to interactive mode
+        if (theatreManager.isAutoCommitMode())
+        {
+            jLabelResponse.setVisible(false);
+            jButtonConfirm.setVisible(false);
+            jButtonCancel.setVisible(false);
+            jLabelDisplayMode.setText("automatic");
+        }
+        else
+        {
+            jLabelResponse.setVisible(true);
+            jButtonConfirm.setVisible(true);
+            jButtonCancel.setVisible(true);
+            jLabelDisplayMode.setText("interactive");
+        }
+    }
+
+    /**
+     * Allow use of a singleton model for web services demo.
+     */
+    public static TheatreView getSingletonInstance()
+    {
+        if (singletonInstance == null)
+        {
+            singletonInstance = new TheatreView(TheatreManager.getSingletonInstance());
+        }
+
+        singletonInstance.show();
+        return singletonInstance;
+    }
+
+    /**
+     * A singleton instance of this class.
+     */
+    private static TheatreView singletonInstance;
+
+    // Variables declaration - automatically generated - do not modify
+
+    private javax.swing.JPanel jPanel1;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JLabel jLabel3;
+    private javax.swing.JLabel jLabel29;
+    private javax.swing.JLabel jLabel30;
+    private javax.swing.JLabel jLabel25;
+    private javax.swing.JLabel jLabelNBookedSeatsCircle;
+    private javax.swing.JLabel jLabelNConfirmedSeatsCircle;
+    private javax.swing.JLabel jLabelNFreeSeatsCircle;
+    private javax.swing.JLabel jLabel35;
+    private javax.swing.JLabel jLabelNBookedSeatsStalls;
+    private javax.swing.JLabel jLabelNConfirmedSeatsStalls;
+    private javax.swing.JLabel jLabelNFreeSeatsStalls;
+    private javax.swing.JLabel jLabel28;
+    private javax.swing.JLabel jLabelNBookedSeatsBalcony;
+    private javax.swing.JLabel jLabelNConfirmedSeatsBalcony;
+    private javax.swing.JLabel jLabelNFreeSeatsBalcony;
+    private javax.swing.JLabel jLabel34;
+    private javax.swing.JButton jButtonResetFields;
+    private javax.swing.JPanel jPanel2;
+    private javax.swing.JLabel jLabel10;
+    private javax.swing.JLabel jLabel13;
+    private javax.swing.JLabel jLabel18;
+    private javax.swing.JLabel jLabelNTotalSeatsCircle;
+    private javax.swing.JLabel jLabel19;
+    private javax.swing.JLabel jLabelNTotalSeatsStalls;
+    private javax.swing.JLabel jLabel20;
+    private javax.swing.JLabel jLabelNTotalSeatsBalcony;
+    private javax.swing.JTextField jTextFieldNewNTotalSeats;
+    private javax.swing.JButton jButtonSetCircle;
+    private javax.swing.JButton jButtonSetSalls;
+    private javax.swing.JButton jButtonSetBalcony;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JTextArea jTextArea;
+    private javax.swing.JPanel jPanelLeft;
+    private javax.swing.JLabel jLabel15;
+    private javax.swing.JLabel jLabelDisplayMode;
+    private javax.swing.JButton jButtonChangeMode;
+    private javax.swing.JLabel jLabelResponse;
+    private javax.swing.JButton jButtonConfirm;
+    private javax.swing.JButton jButtonCancel;
+
+    // End of automatically generated variables declarations
+
+    /**
+     * The  {@link TheatreManager} instance this view is bound to.
+     */
+    private TheatreManager theatreManager;
+
+    /**
+     * The current color of the back button.
+     */
+    private java.awt.Color backButtonColor;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,26 @@
+
+package com.jboss.jbosstm.xts.demo.taxi;
+
+import javax.jws.WebMethod;
+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.1
+ * 
+ */
+ at WebService(name = "ITaxiService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Taxi")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface ITaxiService {
+
+
+    /**
+     * 
+     */
+    @WebMethod
+    public void bookTaxi();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiServiceBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiServiceBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/ITaxiServiceBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,30 @@
+
+package com.jboss.jbosstm.xts.demo.taxi;
+
+import javax.jws.WebMethod;
+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.1
+ * 
+ */
+ at WebService(name = "ITaxiServiceBA", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Taxi")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface ITaxiServiceBA {
+
+
+    /**
+     * 
+     * @return
+     *     returns boolean
+     */
+    @WebMethod
+    @WebResult(name = "bookTaxiBAResponse", partName = "bookTaxiBAResponse")
+    public boolean bookTaxi();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceATService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceATService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceATService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,71 @@
+
+package com.jboss.jbosstm.xts.demo.taxi;
+
+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;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.1
+ * 
+ */
+ at WebServiceClient(name = "TaxiServiceATService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Taxi", wsdlLocation = "file:/WEB-INF/wsdl/TaxiServiceAT.wsdl")
+public class TaxiServiceATService
+    extends Service
+{
+
+    private final static URL TAXISERVICEATSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.jboss.jbosstm.xts.demo.taxi.TaxiServiceATService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.jboss.jbosstm.xts.demo.taxi.TaxiServiceATService.class.getResource(".");
+            url = new URL(baseUrl, "file:/WEB-INF/wsdl/TaxiServiceAT.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: 'file:/WEB-INF/wsdl/TaxiServiceAT.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        TAXISERVICEATSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TaxiServiceATService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TaxiServiceATService() {
+        super(TAXISERVICEATSERVICE_WSDL_LOCATION, new QName("http://www.jboss.com/jbosstm/xts/demo/Taxi", "TaxiServiceATService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ITaxiService
+     */
+    @WebEndpoint(name = "TaxiServiceAT")
+    public ITaxiService getTaxiServiceAT() {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Taxi", "TaxiServiceAT"), ITaxiService.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns ITaxiService
+     */
+    @WebEndpoint(name = "TaxiServiceAT")
+    public ITaxiService getTaxiServiceAT(WebServiceFeature... features) {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Taxi", "TaxiServiceAT"), ITaxiService.class, features);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceBAService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceBAService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/taxi/TaxiServiceBAService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,71 @@
+
+package com.jboss.jbosstm.xts.demo.taxi;
+
+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;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.1
+ * 
+ */
+ at WebServiceClient(name = "TaxiServiceBAService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Taxi", wsdlLocation = "file:/WEB-INF/wsdl/TaxiServiceBA.wsdl")
+public class TaxiServiceBAService
+    extends Service
+{
+
+    private final static URL TAXISERVICEBASERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.jboss.jbosstm.xts.demo.taxi.TaxiServiceBAService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.jboss.jbosstm.xts.demo.taxi.TaxiServiceBAService.class.getResource(".");
+            url = new URL(baseUrl, "file:/WEB-INF/wsdl/TaxiServiceBA.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: 'file:/WEB-INF/wsdl/TaxiServiceBA.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        TAXISERVICEBASERVICE_WSDL_LOCATION = url;
+    }
+
+    public TaxiServiceBAService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TaxiServiceBAService() {
+        super(TAXISERVICEBASERVICE_WSDL_LOCATION, new QName("http://www.jboss.com/jbosstm/xts/demo/Taxi", "TaxiServiceBAService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ITaxiServiceBA
+     */
+    @WebEndpoint(name = "TaxiServiceBA")
+    public ITaxiServiceBA getTaxiServiceBA() {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Taxi", "TaxiServiceBA"), ITaxiServiceBA.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns ITaxiServiceBA
+     */
+    @WebEndpoint(name = "TaxiServiceBA")
+    public ITaxiServiceBA getTaxiServiceBA(WebServiceFeature... features) {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Taxi", "TaxiServiceBA"), ITaxiServiceBA.class, features);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,33 @@
+
+package com.jboss.jbosstm.xts.demo.theatre;
+
+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.1
+ * 
+ */
+ at WebService(name = "ITheatreService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Theatre")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface ITheatreService {
+
+
+    /**
+     * 
+     * @param whichArea
+     * @param howMany
+     */
+    @WebMethod
+    public void bookSeats(
+        @WebParam(name = "how_many", partName = "how_many")
+        int howMany,
+        @WebParam(name = "which_area", partName = "which_area")
+        int whichArea);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreServiceBA.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreServiceBA.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/ITheatreServiceBA.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,37 @@
+
+package com.jboss.jbosstm.xts.demo.theatre;
+
+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.1
+ * 
+ */
+ at WebService(name = "ITheatreServiceBA", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Theatre")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface ITheatreServiceBA {
+
+
+    /**
+     * 
+     * @param whichArea
+     * @param howMany
+     * @return
+     *     returns boolean
+     */
+    @WebMethod
+    @WebResult(name = "bookSeatsBAResponse", partName = "bookSeatsBAResponse")
+    public boolean bookSeats(
+        @WebParam(name = "how_many", partName = "how_many")
+        int howMany,
+        @WebParam(name = "which_area", partName = "which_area")
+        int whichArea);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceATService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceATService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceATService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,71 @@
+
+package com.jboss.jbosstm.xts.demo.theatre;
+
+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;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.1
+ * 
+ */
+ at WebServiceClient(name = "TheatreServiceATService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Theatre", wsdlLocation = "file:/WEB-INF/wsdl/TheatreServiceAT.wsdl")
+public class TheatreServiceATService
+    extends Service
+{
+
+    private final static URL THEATRESERVICEATSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.jboss.jbosstm.xts.demo.theatre.TheatreServiceATService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.jboss.jbosstm.xts.demo.theatre.TheatreServiceATService.class.getResource(".");
+            url = new URL(baseUrl, "file:/WEB-INF/wsdl/TheatreServiceAT.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: 'file:/WEB-INF/wsdl/TheatreServiceAT.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        THEATRESERVICEATSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TheatreServiceATService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TheatreServiceATService() {
+        super(THEATRESERVICEATSERVICE_WSDL_LOCATION, new QName("http://www.jboss.com/jbosstm/xts/demo/Theatre", "TheatreServiceATService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ITheatreService
+     */
+    @WebEndpoint(name = "TheatreServiceAT")
+    public ITheatreService getTheatreServiceAT() {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Theatre", "TheatreServiceAT"), ITheatreService.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns ITheatreService
+     */
+    @WebEndpoint(name = "TheatreServiceAT")
+    public ITheatreService getTheatreServiceAT(WebServiceFeature... features) {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Theatre", "TheatreServiceAT"), ITheatreService.class, features);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceBAService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceBAService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/theatre/TheatreServiceBAService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,71 @@
+
+package com.jboss.jbosstm.xts.demo.theatre;
+
+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;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.1
+ * 
+ */
+ at WebServiceClient(name = "TheatreServiceBAService", targetNamespace = "http://www.jboss.com/jbosstm/xts/demo/Theatre", wsdlLocation = "file:/WEB-INF/wsdl/TheatreServiceBA.wsdl")
+public class TheatreServiceBAService
+    extends Service
+{
+
+    private final static URL THEATRESERVICEBASERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.jboss.jbosstm.xts.demo.theatre.TheatreServiceBAService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.jboss.jbosstm.xts.demo.theatre.TheatreServiceBAService.class.getResource(".");
+            url = new URL(baseUrl, "file:/WEB-INF/wsdl/TheatreServiceBA.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: 'file:/WEB-INF/wsdl/TheatreServiceBA.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        THEATRESERVICEBASERVICE_WSDL_LOCATION = url;
+    }
+
+    public TheatreServiceBAService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TheatreServiceBAService() {
+        super(THEATRESERVICEBASERVICE_WSDL_LOCATION, new QName("http://www.jboss.com/jbosstm/xts/demo/Theatre", "TheatreServiceBAService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ITheatreServiceBA
+     */
+    @WebEndpoint(name = "TheatreServiceBA")
+    public ITheatreServiceBA getTheatreServiceBA() {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Theatre", "TheatreServiceBA"), ITheatreServiceBA.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns ITheatreServiceBA
+     */
+    @WebEndpoint(name = "TheatreServiceBA")
+    public ITheatreServiceBA getTheatreServiceBA(WebServiceFeature... features) {
+        return super.getPort(new QName("http://www.jboss.com/jbosstm/xts/demo/Theatre", "TheatreServiceBA"), ITheatreServiceBA.class, features);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/a_nav_6699cc.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/a_nav_6699cc.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/arjuna_logo.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/arjuna_logo.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/bl_corner_10.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/bl_corner_10.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/bl_navcorner_20.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/bl_navcorner_20.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/br_corner_10.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/br_corner_10.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/br_navcorner_20.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/br_navcorner_20.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tl_corner_10.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tl_corner_10.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tl_navcorner_20.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tl_navcorner_20.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tr_corner_10.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tr_corner_10.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tr_navcorner_20.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/images/tr_navcorner_20.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/web/index.jsp
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/web/index.jsp	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/web/index.jsp	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+
+<!-- $Id: index.jsp,v 1.6 2005/02/25 09:26:46 kconner Exp $ -->
+
+<head>
+<title>XML Transaction Service Demo Application Client</title>
+</head>
+
+<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" vlink="#336699" alink="#003366" link="#003366" text="#000000" bgcolor="#ffffff">
+
+<!-- logo and header text -->
+<table width="740" cellpadding="0" cellspacing="0" border="0">
+  <tr>
+    <td colspan="2" height="28">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="20">&nbsp;</td>
+    <td align="center" width="170" bgcolor="#ffffff">
+      <img src="images/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" border="0">
+    </td>
+    <td width="20">&nbsp;</td>
+    <td valign="middle" align="left" width="530" bgcolor="#ffffff">
+      <br/>
+      <font size="5" style="font-family: Arial, Helvetica, sans-serif">
+        XML Transaction Service Demonstrator Application
+      </font>
+    </td>
+  </tr>
+</table>
+
+
+<TABLE width="740" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD width="20">&nbsp;</TD><TD valign="top" width="170">
+
+<!-- nav menu -->
+<TABLE width="170" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD height="20" width="10" bgcolor="#ffffff">&nbsp;</TD><TD height="20" width="10" bgcolor="#ffffff">&nbsp;</TD><TD height="20" width="130" bgcolor="#ffffff">&nbsp;</TD><TD height="20" width="10" bgcolor="#ffffff">&nbsp;</TD><TD height="20" width="10" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD colspan="2" valign="top" align="left" height="20" width="20" bgcolor="#336699"><IMG src="images/tl_navcorner_20.gif" alt="" border="0"></TD><TD align="center" height="20" width="130" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Web Services</B></FONT></TD><TD colspan="2" valign="top" align="right" height="20" width="20" bgcolor="#336699"><IMG src="images/tr_navcorner_20.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD valign="middle" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/a_nav_6699cc.gif" name="N800004" alt="" border="0"></TD><TD colspan="3" width="150" bgcolor="#e3e3e3"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><A href="#Restaurant"  style="text-decoration: none">Restaurant Booking Service</A></FONT></TD><TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="middle" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/a_nav_6699cc.gif" name="N800004" alt="" border="0"></TD><TD colspan="3" width="150" bgcolor="#e3e3e3"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><A href="#Theatre"  style="text-decoration: none">Theatre Booking Service</A></FONT></TD><TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="middle" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/a_nav_6699cc.gif" name="N800004" alt="" border="0"></TD><TD colspan="3" width="150" bgcolor="#e3e3e3"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><A href="#Taxi"  style="text-decoration: none">Taxi Booking Service</A></FONT></TD><TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD colspan="2" valign="bottom" align="left" height="20" width="20" bgcolor="#e3e3e3"><IMG src="images/bl_navcorner_20.gif" alt="" border="0"></TD><TD height="20" width="130" bgcolor="#e3e3e3">&nbsp;</TD><TD colspan="2" valign="bottom" align="right" height="20" width="20" bgcolor="#e3e3e3"><IMG src="images/br_navcorner_20.gif" alt="" border="0"></TD>
+</TR>
+</table>
+
+<p></p>
+</TD><TD width="20">&nbsp;</TD><TD valign="top" width="530">
+
+<form method="GET" action="basicclient">
+
+<% if(null != request.getAttribute("result")) { %>
+<!-- tx result panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Transaction Result</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+<%= request.getAttribute("result") %>
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+<% } // end if %>
+
+
+<!-- transaction type selection panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Restaurant Service - Booking Form</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+Transaction Type:
+<SELECT NAME="txType">
+<option value="AtomicTransaction">Atomic Transaction</option>
+<option value="BusinessActivity">Business Activity</option>
+</SELECT>
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+
+<!-- restaurant booking panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Restaurant Service - Booking Form</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+Table for
+<SELECT NAME="restaurant">
+<OPTION>1
+<OPTION>2
+<OPTION>3
+<OPTION>4
+<OPTION>5
+<OPTION>6
+<OPTION>7
+<OPTION>8
+<OPTION>9
+<OPTION>10
+</SELECT>
+people.
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+<!-- theatre booking panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Theatre Service - Booking Form</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+Book
+<SELECT NAME="theatrecount">
+<OPTION>1
+<OPTION>2
+<OPTION>3
+<OPTION>4
+<OPTION>5
+<OPTION>6
+<OPTION>7
+<OPTION>8
+<OPTION>9
+<OPTION>10
+</SELECT>
+seats in the
+<select name="theatrearea">
+<option value="0">Circle
+<option value="1">Stalls
+<option value="2">Balcony
+</select>
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+<!-- taxi booking panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Taxi Service - Booking Form</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+Book a taxi?
+<SELECT NAME="taxi">
+<option value="0">No</option>
+<option value="1">Yes</option>
+</SELECT>
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+<!-- submit / reset panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Booking Controls</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<p>
+<input type="submit" name="submit" value="Submit Booking Requests" />
+&nbsp;&nbsp;
+<input type="reset" name="reset" value="Reset Form Values" />
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+</form>
+
+</table>
+
+</body>
+
+</html>
+


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/web/index.jsp
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/weblogic.properties
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/weblogic.properties	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/weblogic.properties	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<!-- WebLogic property file
+  The following variables should be replaced for WebLogic deployment
+  
+  WEBLOGIC_HOSTNAME - the hostname of the WebLogic installation (localhost)
+  WEBLOGIC_PORT - the port of the WebLogic web server (7001)
+  WEBLOGIC_URLSTUB - the url stub for the demo webservices (xtsdemowebservices)
+  WEBLOGIC_DEPLOY_DIR - the deploy directory of the WebLogic instance
+  WEBLOGIC_HOME - The home directory of the WebLogic installation (/usr/local/bea/weblogic81)
+  
+  You can choose any combination of the URL entries provided that there is an entry for each service.
+  The default services are the ones running within WebLogic.
+-->
+<arjuna>
+  <hostname>WEBLOGIC_HOSTNAME</hostname>
+  <port>WEBLOGIC_PORT</port>
+  <urlstub>WEBLOGIC_URLSTUB</urlstub>
+  <deploy>
+    <dir>WEBLOGIC_DEPLOY_DIR</dir>
+  </deploy>
+  <weblogic>
+    <home>WEBLOGIC_HOME</home>
+  </weblogic>
+
+  <!-- webMethods services
+  <restaurantATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/RestaurantServiceAT.wsdl</restaurantATURL>
+  <restaurantBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/RestaurantServiceBA.wsdl</restaurantBAURL>
+  <taxiATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TaxiServiceAT.wsdl</taxiATURL>
+  <taxiBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TaxiServiceBA.wsdl</taxiBAURL>
+  <theatreATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TheatreServiceAT.wsdl</theatreATURL>
+  <theatreBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TheatreServiceBA.wsdl</theatreBAURL>
+  -->
+
+  <!-- WebLogic services -->
+  <restaurantATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/RestaurantServiceAT?WSDL</restaurantATURL>
+  <restaurantBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/RestaurantServiceBA?WSDL</restaurantBAURL>
+  <taxiATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TaxiServiceAT?WSDL</taxiATURL>
+  <taxiBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TaxiServiceBA?WSDL</taxiBAURL>
+  <theatreATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TheatreServiceAT?WSDL</theatreATURL>
+  <theatreBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TheatreServiceBA?WSDL</theatreBAURL>
+
+  <!-- JBoss services
+  <restaurantATURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/RestaurantServiceAT?wsdl</restaurantATURL>
+  <restaurantBAURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/RestaurantServiceBA?wsdl</restaurantBAURL>
+  <taxiATURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TaxiServiceAT?wsdl</taxiATURL>
+  <taxiBAURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TaxiServiceBA?wsdl</taxiBAURL>
+  <theatreATURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TheatreServiceAT?wsdl</theatreATURL>
+  <theatreBAURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TheatreServiceBA?wsdl</theatreBAURL>
+  -->
+</arjuna>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/webmethods.properties
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/webmethods.properties	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/webmethods.properties	2007-12-03 19:46:30 UTC (rev 16990)
@@ -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.
+-->
+<!-- Webmethod property file
+  The following variables should be replaced for webMethods deployment
+  
+  WEBMETHODS_HOSTNAME - the hostname of the webMethods installation (localhost)
+  WEBMETHODS_PORT - the port of the webMethods web server (8004)
+  WEBMETHODS_URLSTUB - the url stub for the demo webservices (xts-demo)
+  WEBMETHODS_DEPLOY_DIR - the deploy directory of the webMethods instance
+  WEBMETHODS_HOME - The home directory of the webMethods installation (/usr/local/glue)
+  
+  You can choose any combination of the URL entries provided that there is an entry for each service.
+  The default services are the ones running within webMethods.
+-->
+<arjuna>
+  <hostname>WEBMETHODS_HOSTNAME</hostname>
+  <port>WEBMETHODS_PORT</port>
+  <urlstub>WEBMETHODS_URLSTUB</urlstub>
+  <deploy>
+    <dir>WEBMETHODS_DEPLOY_DIR</dir>
+  </deploy>
+  <webmethods>
+    <home>WEBMETHODS_HOME</home>
+  </webmethods>
+
+  <!-- webmethods services -->
+  <restaurantATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/RestaurantServiceAT.wsdl</restaurantATURL>
+  <restaurantBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/RestaurantServiceBA.wsdl</restaurantBAURL>
+  <taxiATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TaxiServiceAT.wsdl</taxiATURL>
+  <taxiBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TaxiServiceBA.wsdl</taxiBAURL>
+  <theatreATURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TheatreServiceAT.wsdl</theatreATURL>
+  <theatreBAURL>http://WEBMETHODS_HOSTNAME:WEBMETHODS_PORT/WEBMETHODS_URLSTUB/services/TheatreServiceBA.wsdl</theatreBAURL>
+
+  <!-- WebLogic services
+  <restaurantATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/RestaurantServiceAT?WSDL</restaurantATURL>
+  <restaurantBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/RestaurantServiceBA?WSDL</restaurantBAURL>
+  <taxiATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TaxiServiceAT?WSDL</taxiATURL>
+  <taxiBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TaxiServiceBA?WSDL</taxiBAURL>
+  <theatreATURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TheatreServiceAT?WSDL</theatreATURL>
+  <theatreBAURL>http://WEBLOGIC_HOSTNAME:WEBLOGIC_PORT/WEBLOGIC_URLSTUB/TheatreServiceBA?WSDL</theatreBAURL>
+  -->
+
+  <!-- JBoss services
+  <restaurantATURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/RestaurantServiceAT?wsdl</restaurantATURL>
+  <restaurantBAURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/RestaurantServiceBA?wsdl</restaurantBAURL>
+  <taxiATURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TaxiServiceAT?wsdl</taxiATURL>
+  <taxiBAURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TaxiServiceBA?wsdl</taxiBAURL>
+  <theatreATURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TheatreServiceAT?wsdl</theatreATURL>
+  <theatreBAURL>http://JBOSS_HOSTNAME:JBOSS_PORT/JBOSS_URLSTUB/TheatreServiceBA?wsdl</theatreBAURL>
+  -->
+</arjuna>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/xsl/ATL_LookAndFeel.xsl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/xsl/ATL_LookAndFeel.xsl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/xsl/ATL_LookAndFeel.xsl	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,663 @@
+<!--
+  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.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+    <xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" doctype-system="http://www.w3.org/TR/REC-html40/loose.dtd" encoding="ISO-8859-1" indent="yes"/>
+
+    <xsl:param name="rootpath" select="/page/@rootpath"/>
+    <xsl:param name="sitemap">../docs/includes/site-map.xml</xsl:param>
+
+    <xsl:template match="/">
+        <xsl:apply-templates/>
+    </xsl:template>
+
+    <xsl:template match="page">
+        <HTML>
+            <HEAD>
+                <META name="description" content="Arjuna Technologies: Suppliers of transactioning, messaging, and coordination middleware for reliable distributed systems"/>
+                <META name="keywords" content="transactions, transactioning, atomic transaction, OTS, JTS, BTP, JMS, WS-Coordination, WS-Transaction, BPEL, JAXTX, Activity Service"/>
+                <TITLE><xsl:value-of select="@title"/></TITLE>
+                <xsl:element name="LINK">
+                    <xsl:attribute name="href"><xsl:value-of select="$rootpath"/>/styles.css</xsl:attribute>
+                    <xsl:attribute name="rel">stylesheet</xsl:attribute>
+                    <xsl:attribute name="type">text/css</xsl:attribute>
+                </xsl:element>
+                <xsl:element name="SCRIPT">
+                    <xsl:attribute name="type">text/javascript</xsl:attribute>
+                    <xsl:attribute name="language">JavaScript</xsl:attribute>
+
+if (parent != self)
+    top.location.href = location.href;
+
+function gotoURL(url)
+{
+    if (url != "")
+        location.href = url;
+}
+
+function printThisPage()
+{
+    window.print();
+}
+
+function emailThisPage()
+{
+    location.href = "mailto:?subject=" + document.title + "&amp;body=" + location.href;
+}
+                </xsl:element>
+            </HEAD>
+            <BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
+                <TABLE width="727" border="0" align="center" cellpadding="0" cellspacing="0">
+                    <xsl:apply-templates/>
+                </TABLE>
+            </BODY>
+        </HTML>
+    </xsl:template>
+
+    <xsl:template match="header">
+        <TR>
+            <TD width="494">
+                <xsl:element name="IMG">
+                    <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/JBoss_DivOfRH_RGB.gif</xsl:attribute>
+                    <xsl:attribute name="alt">arjuna logo</xsl:attribute>
+                    <xsl:attribute name="width">178</xsl:attribute>
+                    <xsl:attribute name="height">63</xsl:attribute>
+                </xsl:element>
+            </TD>
+            <TD width="233">
+                <xsl:element name="IMG">
+                    <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/arjuna_strapline.gif</xsl:attribute>
+                    <xsl:attribute name="alt">arjuna strap line</xsl:attribute>
+                    <xsl:attribute name="width">233</xsl:attribute>
+                    <xsl:attribute name="height">63</xsl:attribute>
+                </xsl:element>
+            </TD>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="content[area]">
+        <TR>
+            <TD colspan="2">
+                <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                    <TR>
+                        <TD width="6" height="214">
+                            <xsl:element name="IMG">
+                                <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                <xsl:attribute name="width">6</xsl:attribute>
+                                <xsl:attribute name="height">10</xsl:attribute>
+                            </xsl:element>
+                        </TD>
+                        <xsl:apply-templates select="navigation"/>
+                        <TD width="6" height="214">
+                            <xsl:element name="IMG">
+                                <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                <xsl:attribute name="width">6</xsl:attribute>
+                                <xsl:attribute name="height">10</xsl:attribute>
+                            </xsl:element>
+                        </TD>
+                        <TD width="555" valign="top">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <xsl:apply-templates select="area"/>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="content[area-left]">
+        <TR>
+            <TD colspan="2">
+                <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                    <TR>
+                        <TD width="6" height="214">
+                            <xsl:element name="IMG">
+                                <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                <xsl:attribute name="width">6</xsl:attribute>
+                                <xsl:attribute name="height">10</xsl:attribute>
+                            </xsl:element>
+                        </TD>
+                        <xsl:apply-templates select="navigation"/>
+                        <TD width="6" height="214">
+                            <xsl:element name="IMG">
+                                <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                <xsl:attribute name="width">6</xsl:attribute>
+                                <xsl:attribute name="height">10</xsl:attribute>
+                            </xsl:element>
+                        </TD>
+                        <TD width="356" valign="top">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <xsl:apply-templates select="area-left"/>
+                            </TABLE>
+                        </TD>
+                        <TD width="6" height="214">
+                            <xsl:element name="IMG">
+                                <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                <xsl:attribute name="width">6</xsl:attribute>
+                                <xsl:attribute name="height">10</xsl:attribute>
+                            </xsl:element>
+                        </TD>
+                        <TD width="172" valign="top">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <xsl:apply-templates select="area-right|area-right-blue"/>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="navigation">
+        <TD width="172" valign="top">
+            <FORM name="form1" method="post" action="">
+                <TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+                    <TR>
+                        <TD height="57">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <TR>
+                                    <xsl:element name="TD">
+                                        <xsl:attribute name="height">8</xsl:attribute>
+                                        <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/header_grid.gif</xsl:attribute>
+                                        <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+                                        <xsl:element name="IMG">
+                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                            <xsl:attribute name="width">6</xsl:attribute>
+                                            <xsl:attribute name="height">10</xsl:attribute>
+                                        </xsl:element>
+                                    </xsl:element>
+                                </TR>
+                            </TABLE>
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+                                <TR>
+                                    <TD valign="top" bgcolor="#FFFFFF">
+                                        <xsl:apply-templates mode="nav"/>
+                                    </TD>
+                                </TR>
+                                <TR>
+                                    <xsl:element name="TD">
+                                        <xsl:attribute name="valign">top</xsl:attribute>
+                                        <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/search_bg.gif</xsl:attribute>
+                                        <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+                                        <xsl:attribute name="class">bodytext</xsl:attribute>
+                                        <BR/>
+                                        <TABLE width="100%" border="0" cellspacing="0" cellpadding="4">
+                                            <TR>
+                                                <TD width="15">
+                                                    <A href="javascript:printThisPage();">
+                                                        <xsl:element name="IMG">
+                                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/icon_printer.gif</xsl:attribute>
+                                                            <xsl:attribute name="width">15</xsl:attribute>
+                                                            <xsl:attribute name="height">14</xsl:attribute>
+                                                            <xsl:attribute name="border">0</xsl:attribute>
+                                                        </xsl:element>
+                                                    </A>
+                                                </TD>
+                                                <TD class="bodytext">
+                                                    <A href="javascript:printThisPage();">print this page</A>
+                                                </TD>
+                                            </TR>
+                                            <TR>
+                                                <TD width="15">
+                                                    <A href="javascript:emailThisPage();">
+                                                        <xsl:element name="IMG">
+                                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/icon_email.gif</xsl:attribute>
+                                                            <xsl:attribute name="width">15</xsl:attribute>
+                                                            <xsl:attribute name="height">14</xsl:attribute>
+                                                            <xsl:attribute name="border">0</xsl:attribute>
+                                                        </xsl:element>
+                                                    </A>
+                                                </TD>
+                                                <TD class="bodytext">
+                                                    <A href="javascript:emailThisPage();">email this page</A>
+                                                </TD>
+                                            </TR>
+                                        </TABLE>
+                                    </xsl:element>
+                                </TR>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </FORM>
+        </TD>
+    </xsl:template>
+
+    <xsl:template match="sitemap" mode="sitemap">
+        <xsl:element name="SELECT">
+            <xsl:attribute name="name">select</xsl:attribute>
+            <xsl:attribute name="class">bodytext</xsl:attribute>
+            <xsl:attribute name="onChange">gotoURL(this.options[selectedIndex].value);</xsl:attribute>
+            <OPTION label="site-map" value="">site-map</OPTION>
+            <xsl:apply-templates select="links" mode="sitemap"/>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="links" mode="sitemap">
+        <xsl:element name="OPTGROUP">
+            <xsl:attribute name="label"><xsl:value-of select="@title"/></xsl:attribute>
+            <xsl:apply-templates select="link" mode="sitemap"/>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="link" mode="sitemap">
+        <xsl:element name="OPTION">
+            <xsl:attribute name="label"><xsl:value-of select="text()"/></xsl:attribute>
+            <xsl:attribute name="value"><xsl:value-of select="$rootpath"/>/<xsl:value-of select="@ref"/></xsl:attribute>
+            <xsl:value-of select="text()"/>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="links[@include]" mode="nav">
+        <xsl:apply-templates select="document(@include)" mode="nav"/>
+    </xsl:template>
+
+    <xsl:template match="links[link]|links[abslink]" mode="header">
+        <TR>
+            <TD colspan="2">
+                <TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+                    <TR>
+                        <TD class="menuoptions">
+                            <xsl:apply-templates mode="header"/>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="links[link]|links[abslink]" mode="nav">
+        <P class="menuheader">
+            <xsl:value-of select="@title"/>
+            <DIV class="menuoptions">
+                <xsl:apply-templates mode="nav"/>
+            </DIV>
+        </P>
+    </xsl:template>
+
+    <xsl:template match="links[news]|links[absnews]" mode="header">
+        <xsl:message terminate="yes">
+            "news/absnews" in header not supported
+        </xsl:message>
+    </xsl:template>
+
+    <xsl:template match="links[news]|links[absnews]" mode="nav">
+        <P class="menuheader" valign="top">
+            <xsl:value-of select="@title"/>
+            <DIV class="quotetext">
+                <xsl:apply-templates mode="nav"/>
+            </DIV>
+        </P>
+    </xsl:template>
+
+    <xsl:template match="link[position()!=last()]" mode="header">
+        <xsl:element name="A">
+             <xsl:attribute name="href"><xsl:value-of select="$rootpath"/>/<xsl:value-of select="@ref"/></xsl:attribute>
+             <xsl:value-of select="text()"/>
+        </xsl:element>
+        <xsl:element name="IMG">
+            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/menu_spacer.gif</xsl:attribute>
+            <xsl:attribute name="width">11</xsl:attribute>
+            <xsl:attribute name="height">10</xsl:attribute>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="link[position()=last()]" mode="header">
+        <xsl:element name="A">
+             <xsl:attribute name="href"><xsl:value-of select="$rootpath"/>/<xsl:value-of select="@ref"/></xsl:attribute>
+             <xsl:value-of select="text()"/>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="link" mode="nav">
+        <xsl:element name="A">
+             <xsl:attribute name="href"><xsl:value-of select="$rootpath"/>/<xsl:value-of select="@ref"/></xsl:attribute>
+             <xsl:value-of select="text()"/>
+        </xsl:element>
+        <BR/>
+    </xsl:template>
+
+    <xsl:template match="abslink[position()!=last()]" mode="header">
+        <xsl:element name="A">
+            <xsl:attribute name="href"><xsl:value-of select="@ref"/></xsl:attribute>
+            <xsl:attribute name="target"><xsl:value-of select="@target"/></xsl:attribute>
+            <xsl:value-of select="text()"/>
+        </xsl:element>
+        <xsl:element name="IMG">
+            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/menu_spacer.gif</xsl:attribute>
+            <xsl:attribute name="width">11</xsl:attribute>
+            <xsl:attribute name="height">10</xsl:attribute>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="abslink[position()=last()]" mode="header">
+        <xsl:element name="A">
+            <xsl:attribute name="href"><xsl:value-of select="@ref"/></xsl:attribute>
+            <xsl:attribute name="target"><xsl:value-of select="@target"/></xsl:attribute>
+            <xsl:value-of select="text()"/>
+        </xsl:element>
+    </xsl:template>
+
+    <xsl:template match="abslink" mode="nav">
+        <xsl:element name="A">
+            <xsl:attribute name="href"><xsl:value-of select="@ref"/></xsl:attribute>
+            <xsl:value-of select="text()"/>
+        </xsl:element>
+        <BR/>
+    </xsl:template>
+
+    <xsl:template match="news" mode="header">
+        <xsl:message terminate="yes">
+            "news" in header not supported
+        </xsl:message>
+    </xsl:template>
+
+    <xsl:template match="news" mode="nav">
+        <xsl:element name="A">
+            <xsl:attribute name="href"><xsl:value-of select="$rootpath"/>/<xsl:value-of select="@ref"/></xsl:attribute>
+            <xsl:attribute name="class">newsflash</xsl:attribute>
+            <xsl:attribute name="style">text-decoration: none</xsl:attribute>
+            <xsl:value-of select="text()"/>
+        </xsl:element>
+        <BR/>
+    </xsl:template>
+
+    <xsl:template match="absnews" mode="header">
+        <xsl:message terminate="yes">
+            "absnews" in header not supported
+        </xsl:message>
+    </xsl:template>
+
+    <xsl:template match="absnews" mode="nav">
+        <xsl:element name="A">
+            <xsl:attribute name="href"><xsl:value-of select="@ref"/></xsl:attribute>
+            <xsl:attribute name="class">newsflash</xsl:attribute>
+            <xsl:attribute name="style">text-decoration: none</xsl:attribute>
+            <xsl:value-of select="text()"/>
+        </xsl:element>
+        <BR/>
+    </xsl:template>
+
+    <xsl:template match="separator" mode="header">
+    </xsl:template>
+
+    <xsl:template match="separator" mode="nav">
+    </xsl:template>
+
+    <xsl:template match="spacer" mode="header">
+    </xsl:template>
+
+    <xsl:template match="spacer" mode="nav">
+    </xsl:template>
+
+    <xsl:template match="area">
+        <TR>
+            <TD width="537" valign="top">
+                <TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+                    <TR>
+                        <TD height="57">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <TR>
+                                    <xsl:element name="TD">
+                                        <xsl:attribute name="height">8</xsl:attribute>
+                                        <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/header_grid.gif</xsl:attribute>
+                                        <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+                                        <xsl:element name="IMG">
+                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                            <xsl:attribute name="width">6</xsl:attribute>
+                                            <xsl:attribute name="height">10</xsl:attribute>
+                                        </xsl:element>
+                                    </xsl:element>
+                                </TR>
+                            </TABLE>
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+                                <TR>
+                                    <TD valign="top" bgcolor="#FFFFFF">
+                                        <P class="menuheader">
+                                           <xsl:value-of select="@title"/>
+                                           <DIV class="bodytext">
+                                               <xsl:apply-templates/>
+                                           </DIV>
+                                        </P>
+                                    </TD>
+                                </TR>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <xsl:element name="TD">
+                <xsl:attribute name="height">8</xsl:attribute>
+                <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+            </xsl:element>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="area-left">
+        <TR>
+            <TD width="365" valign="top">
+                <TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+                    <TR>
+                        <TD height="57">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <TR>
+                                    <xsl:element name="TD">
+                                        <xsl:attribute name="height">8</xsl:attribute>
+                                        <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/header_grid.gif</xsl:attribute>
+                                        <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+                                        <xsl:element name="IMG">
+                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                            <xsl:attribute name="width">6</xsl:attribute>
+                                            <xsl:attribute name="height">10</xsl:attribute>
+                                        </xsl:element>
+                                    </xsl:element>
+                                </TR>
+                            </TABLE>
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+                                <TR>
+                                    <TD valign="top" bgcolor="#FFFFFF">
+                                        <P class="menuheader">
+                                           <xsl:value-of select="@title"/>
+                                           <DIV class="bodytext">
+                                               <xsl:apply-templates/>
+                                           </DIV>
+                                        </P>
+                                    </TD>
+                                </TR>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <xsl:element name="TD">
+                <xsl:attribute name="height">8</xsl:attribute>
+                <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+            </xsl:element>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="area-right">
+        <TR>
+            <TD width="172" valign="top">
+                <TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9E9E9E">
+                    <TR>
+                        <TD height="57">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <TR>
+                                    <xsl:element name="TD">
+                                        <xsl:attribute name="height">8</xsl:attribute>
+                                        <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/header_grid.gif</xsl:attribute>
+                                        <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+                                        <xsl:element name="IMG">
+                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                            <xsl:attribute name="width">6</xsl:attribute>
+                                            <xsl:attribute name="height">10</xsl:attribute>
+                                        </xsl:element>
+                                    </xsl:element>
+                                </TR>
+                            </TABLE>
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+                                <TR>
+                                    <TD valign="top" bgcolor="#FFFFFF">
+                                        <P class="menuheader">
+                                           <xsl:value-of select="@title"/>
+                                           <DIV class="bodytext">
+                                               <xsl:apply-templates/>
+                                           </DIV>
+                                        </P>
+                                    </TD>
+                                </TR>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <xsl:element name="TD">
+                <xsl:attribute name="height">8</xsl:attribute>
+                <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+            </xsl:element>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="area-right-blue">
+        <TR>
+            <TD width="172" valign="top">
+                <TABLE width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#9E9E9E">
+                    <TR>
+                        <TD height="57">
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
+                                <TR>
+                                    <xsl:element name="TD">
+                                        <xsl:attribute name="height">8</xsl:attribute>
+                                        <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/header_grid.gif</xsl:attribute>
+                                        <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+                                        <xsl:element name="IMG">
+                                            <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                                            <xsl:attribute name="width">6</xsl:attribute>
+                                            <xsl:attribute name="height">10</xsl:attribute>
+                                        </xsl:element>
+                                    </xsl:element>
+                                </TR>
+                            </TABLE>
+                            <TABLE width="100%" border="0" cellspacing="0" cellpadding="8">
+                                <TR>
+                                    <TD valign="top" bgcolor="#ECECEC">
+                                        <P class="menuheader">
+                                           <xsl:value-of select="@title"/>
+                                           <DIV class="bodytext">
+                                               <xsl:apply-templates/>
+                                           </DIV>
+                                        </P>
+                                    </TD>
+                                </TR>
+                            </TABLE>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <xsl:element name="TD">
+                <xsl:attribute name="height">8</xsl:attribute>
+                <xsl:attribute name="background"><xsl:value-of select="$rootpath"/>/images/look_and_feel/trans_spacer.gif</xsl:attribute>
+                <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
+            </xsl:element>
+        </TR>
+    </xsl:template>
+
+    <xsl:template match="area/@text">
+        <SPAN class="bodytext">
+            <xsl:value-of select="text()"/>
+        </SPAN>
+    </xsl:template>
+
+    <xsl:template match="area//html//*">
+        <xsl:copy-of select="."/>
+    </xsl:template>
+
+    <xsl:template match="area-left/@text">
+        <SPAN class="bodytext">
+            <xsl:value-of select="text()"/>
+        </SPAN>
+    </xsl:template>
+
+    <xsl:template match="area-left//html//*">
+        <xsl:copy-of select="."/>
+    </xsl:template>
+
+    <xsl:template match="area-right/@text">
+        <SPAN class="bodytext">
+            <xsl:value-of select="text()"/>
+        </SPAN>
+    </xsl:template>
+
+    <xsl:template match="area-right//html//*">
+        <xsl:copy-of select="."/>
+    </xsl:template>
+
+    <xsl:template match="area-right-blue/@text">
+        <SPAN class="bodytext">
+            <xsl:value-of select="text()"/>
+        </SPAN>
+    </xsl:template>
+
+    <xsl:template match="area-right-blue//html//*">
+        <xsl:copy-of select="."/>
+    </xsl:template>
+
+    <xsl:template match="footer">
+        <TR>
+            <TD width="727" valign="top" align="right" colspan="3">
+                <FONT style="font-family: Arial, Helvetica, sans-serif" size="1">
+
+                    Copyright 2002-2005 Arjuna Technologies
+
+                    <xsl:element name="IMG">
+                        <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/spacer.jpg</xsl:attribute>
+                        <xsl:attribute name="alt"></xsl:attribute>
+                        <xsl:attribute name="border">0</xsl:attribute>
+                    </xsl:element>
+
+                    All Rights Reserved.
+
+                    <br/><a class="linkscoloured" href="mailto:info at arjuna.com">info at arjuna.com</a>
+
+                    <xsl:element name="IMG">
+                        <xsl:attribute name="src"><xsl:value-of select="$rootpath"/>/images/look_and_feel/spacer.jpg</xsl:attribute>
+                        <xsl:attribute name="alt"></xsl:attribute>
+                        <xsl:attribute name="border">0</xsl:attribute>
+                    </xsl:element>
+
+                    +44 191 243 0676
+                </FONT>
+            </TD>
+        </TR>
+    </xsl:template>
+</xsl:stylesheet>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,278 @@
+<!--
+  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.
+-->
+
+<!-- $Id: xts-build.xml,v 1.12.4.1 2005/11/22 10:42:05 kconner Exp $ -->
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--           Copyright (c) 2003, Arjuna Technologies Limited.             -->
+<!--                                                                        -->
+<!--                 WS-Transaction / XTS demo application                  -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<project name="xts-demo" default="build" basedir=".">
+
+    <!-- ================================================================== -->
+
+    <!-- The properties to override are the following:                      -->
+    <!--    hostname (defaults to localhost)                                -->
+    <!--    port (defaults to 8080 for jboss)                               -->
+    <!--    urlstub (defaults to xtsdemowebservices for JBoss)              -->
+
+    <!--    deploy.dir The deployment directory for the ear                 -->
+    <!-- ================================================================== -->
+
+    <property environment="env"/>
+    <xmlproperty file="${xmlpropertyfile}" keeproot="false"/>
+
+    <property name="gf.dir" value="${env.GF_HOME}/lib"/>
+    <property name="xts.home" value=".."/>
+    <property name="conf.dir" location="${xts.home}/conf"/>
+
+    <property name="lib.dir" location="${xts.home}/lib"/>
+    <property name="ext.dir" location="${lib.dir}/ext"/>
+    <property name="gf.dir" location="${gf.dir}/lib"/>
+
+    <!-- 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"/>
+
+    <!-- gf javee libs we need to compile against -->
+    <property name="gf.libs" value="javaee.jar"/>
+
+    <!-- also need to compile against these extra libs -->
+    <property name="ext.compile" value="${ext.libs} servlet.jar jbossts-common.jar"/>
+
+    <!-- and deploy them plus a few more extra libs -->
+    <property name="ext.package" value="${ext.libs} jbossts-common.jar commons-logging.jar log4j-1.2.8.jar"/>
+
+    <!-- ================================================================== -->
+
+    <property name="build.dir" location="build"/>
+    <property name="src.dir" location="src"/>
+    <property name="web.dir" location="web"/>
+    <property name="dd.dir" location="dd"/>
+    <property name="jboss.dd.dir" location="${dd.dir}/jboss"/>
+    <property name="build.config" location="${build.dir}/config"/>
+    <property name="build.soapconfig" location="${build.dir}/soapconfig"/>
+    <property name="appinf.dir" location="${build.dir}/APP-INF"/>
+    <property name="appinflib.dir" location="${appinf.dir}/lib"/>
+
+    <property name="javac.debug"             value="on"/>
+    <property name="javac.optimize"          value="off"/>
+    <!-- paths for compiling -->
+    <path id="lib.path">
+        <fileset dir="${lib.dir}" includes="${lib.libs}"/>
+    </path>
+    <path id="ext.path">
+        <fileset dir="${ext.dir}" includes="${ext.compile}"/>
+    </path>
+    <path id="gf.path">
+        <fileset dir="${gf.dir}" includes="${gf.libs}"/>
+    </path>
+
+    <filterset id="webxml.filter">
+        <filter token="restaurantATURL" value="${restaurantATURL}"/>
+        <filter token="restaurantBAURL" value="${restaurantBAURL}"/>
+        <filter token="taxiATURL" value="${taxiATURL}"/>
+        <filter token="taxiBAURL" value="${taxiBAURL}"/>
+        <filter token="theatreATURL" value="${theatreATURL}"/>
+        <filter token="theatreBAURL" value="${theatreBAURL}"/>
+        <filter token="hostname" value="${hostname}"/>
+        <filter token="port" value="${port}"/>
+        <filter token="urlstub" value="${urlstub}"/>
+    </filterset>
+
+    <target name="clean">
+        <delete dir="${build.dir}"/>
+        <delete>
+            <fileset dir="." includes="**/*.bak" defaultexcludes="no"/>
+            <fileset dir="." includes="**/*~"    defaultexcludes="no"/>
+            <fileset dir="." includes="**/#*#"   defaultexcludes="no"/>
+            <fileset dir="." includes="**/.#*"   defaultexcludes="no"/>
+        </delete>
+    </target>
+
+    <target name="init-properties">
+        <property name="hostname" value="localhost"/>
+        <property name="port" value="8080"/>
+        <property name="urlstub" value="xtsdemowebservices"/>
+        <path id="compile.path">
+            <path refid="lib.path"/>
+            <path refid="ext.path"/>
+            <path refid="gf.path"/>
+        </path>
+    </target>
+
+    <target name="init" depends="init-properties">
+        <mkdir dir="${build.dir}"/>
+        <mkdir dir="${build.dir}/classes"/>
+        <mkdir dir="${build.config}"/>
+        <mkdir dir="${build.soapconfig}"/>
+        <mkdir dir="${appinf.dir}"/>
+        <mkdir dir="${appinflib.dir}"/>
+    </target>
+
+    <target name="compile" depends="init">
+        <javac destdir="${build.dir}/classes" debug="${javac.debug}"
+            optimize="${javac.optimize}" deprecation="${javac.deprecation}" >
+            <classpath>
+                <path refid="compile.path"/>
+            </classpath>
+            <src path="${src.dir}"/>
+            <patternset>
+	        <!-- client app -->
+                <include name="com/jboss/jbosstm/xts/demo/client/**"/>
+	        <!-- server impl -->
+		<include name="com/jboss/jbosstm/xts/demo/services/**"/>
+	        <!-- generated server interfaces and service classes -->
+		<include name="com/jboss/jbosstm/xts/demo/theatre/**"/>
+		<include name="com/jboss/jbosstm/xts/demo/restaurant/**"/>
+		<include name="com/jboss/jbosstm/xts/demo/taxi/**"/>
+            </patternset>
+        </javac>
+    </target>
+
+    <!-- the server side elements -->
+    <target name="config" depends="insertcfg">
+        <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>
+        <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">
+            <webinf dir="${jboss.dd.dir}" includes="wsdl/*.wsdl"/>
+            <metainf dir="${jboss.dd.dir}" includes="webservices.xml"/>
+	        <!-- server impl -->
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/services/**/*"/>
+	        <!-- generated server interfaces -->
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantService.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantServiceBA.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/theatre/ITheatreService.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/theatre/ITheatreServiceBA.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/taxi/ITaxiService.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/taxi/ITaxiServiceBA.class"/>
+            <manifest>
+                <attribute name="Class-Path" value="/WEB-INF/classes ${lib.libs} ${ext.libs}"/>
+            </manifest>
+        </war>
+    </target>
+
+    <!-- the client side elements -->
+    <target name="jboss-webapp" depends="compile">
+        <copy tofile="${build.dir}/client-web-app.xml" file="${jboss.dd.dir}/client-web-app.xml">
+            <filterset refid="webxml.filter"/>
+        </copy>
+
+        <war warfile="${build.dir}/xts-demo.war" webxml="${build.dir}/client-web-app.xml">
+            <webinf dir="${jboss.dd.dir}" includes="wsdl/*.wsdl"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/client/**"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantService.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/restaurant/IRestaurantServiceBA.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/theatre/ITheatreService.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/theatre/ITheatreServiceBA.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/taxi/ITaxiService.class"/>
+	    <webinf dir="${build.dir}"
+		includes="classes/com/jboss/jbosstm/xts/demo/taxi/ITaxiServiceBA.class"/>
+            <fileset dir="${web.dir}"/>
+            <manifest>
+                <attribute name="Class-Path" value="wstx.jar"/>
+            </manifest>
+        </war>
+    </target>
+
+    <target name="jboss-ear" depends="jboss-webservices, jboss-webapp, config">
+        <ear earfile="${build.dir}/xts-demo.ear"
+            appxml="${jboss.dd.dir}/application.xml">
+            <fileset dir="${build.dir}" includes="xts-demo-webservices.war xts-demo.war config.jar ws-t.war ws-c.war"/>
+	        <fileset dir="${xts.home}/lib" includes="*.jar"/>
+	        <fileset dir="${xts.home}/lib/ext" includes="${ext.package}"/>
+	        <fileset dir="${xts.home}/webapps" includes="*.war" excludes="ws-t.war ws-c.war"/>
+        </ear>
+    </target>
+
+    <target name="build" depends="jboss-ear"/>
+
+    <target name="insertcfg" depends="init">
+        <filter token="hostname" value="${hostname}"/>
+        <filter token="port" value="${port}"/>
+        <filter token="urlstub" value="${urlstub}"/>
+
+        <unjar src="${xts.home}/webapps/ws-c.war" dest="${build.dir}/tmp/ws-c"/>
+
+        <copy file="${xts.home}/coordinator/dd/ws-c_web-app.xml"
+            tofile="${build.dir}/tmp/ws-c/WEB-INF/web.xml" filtering="true" overwrite="true"/>
+
+        <jar destfile="${build.dir}/ws-c.war" basedir="${build.dir}/tmp/ws-c" manifest="${build.dir}/tmp/ws-c/META-INF/MANIFEST.MF"/>
+
+        <delete dir="${build.dir}/tmp/ws-c"/>
+
+        <unjar src="${xts.home}/webapps/ws-t.war" dest="${build.dir}/tmp/ws-t"/>
+
+        <copy file="${xts.home}/coordinator/dd/ws-t_web-app.xml"
+            tofile="${build.dir}/tmp/ws-t/WEB-INF/web.xml" filtering="true" overwrite="true"/>
+
+        <jar destfile="${build.dir}/ws-t.war" basedir="${build.dir}/tmp/ws-t" manifest="${build.dir}/tmp/ws-t/META-INF/MANIFEST.MF"/>
+
+        <delete dir="${build.dir}/tmp/ws-t"/>
+    </target>
+
+    <target name="deploy" depends="deploy-ears"/>
+
+    <target name="deploy-ears" depends="build, undeploy">
+        <copy file="${build.dir}/xts-demo.ear" tofile="${deploy.dir}/xts-demo.ear"/>
+    </target>
+
+    <target name="undeploy" depends="undeploy-ears"/>
+
+    <target name="undeploy-ears">
+        <delete file="${deploy.dir}/xts-demo.ear"/>
+    </target>
+</project>


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/adinn/XTSGF/docs/ProgrammersGuide.doc
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/docs/ProgrammersGuide.doc
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/docs/ProgrammersGuide.pdf
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/docs/ProgrammersGuide.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

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


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

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


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

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


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/ext/jaxws-2_1-mrel2-api.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

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


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

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


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

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


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

Added: labs/jbosstm/workspace/adinn/XTSGF/ext/stax-api-1.0.jar
===================================================================
(Binary files differ)


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

Added: labs/jbosstm/workspace/adinn/XTSGF/ext/wstx-asl-2.0.3.jar
===================================================================
(Binary files differ)


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

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote" target="classFrame">Aborted</A>
+<BR>
+<A HREF="com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst" target="classFrame">Aborted</A>
+<BR>
+<A HREF="com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc" target="classFrame">ActivationCoordinator</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging" target="classFrame">ActivationCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc" target="classFrame">AlreadyRegisteredException</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BACoordinatorCompletionParticipantManagerStub</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BAParticipantCompletionParticipantManagerStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst" target="classFrame"><I>BAParticipantManager</I></A>
+<BR>
+<A HREF="com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst" target="classFrame"><I>BAParticipantManager</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst" target="classFrame">BusinessActivityManager</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">BusinessActivityManagerFactory</A>
+<BR>
+<A HREF="com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst" target="classFrame"><I>BusinessActivityTerminator</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BusinessActivityTerminatorStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>BusinessAgreement</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>BusinessAgreementWithComplete</I></A>
+<BR>
+<A HREF="com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>BusinessAgreementWithCoordinatorCompletionParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BusinessAgreementWithCoordinatorCompletionStub</A>
+<BR>
+<A HREF="com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>BusinessAgreementWithParticipantCompletionParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BusinessAgreementWithParticipantCompletionStub</A>
+<BR>
+<A HREF="com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst" target="classFrame">Cancel</A>
+<BR>
+<A HREF="com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>CompletionCoordinatorParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>CompletionParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub" target="classFrame">CompletionStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>CompletionWithAckParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc" target="classFrame"><I>ContextFactory</I></A>
+<BR>
+<A HREF="com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc" target="classFrame">ContextFactoryMapper</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common" target="classFrame">CoordinationContextHelper</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy" target="classFrame">CoordinationInitialisation</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">CoordinatorCompletionCoordinatorEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">CoordinatorCompletionParticipantEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CoordinatorCompletionParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">CoordinatorEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst" target="classFrame"><I>Durable2PCCoordinator</I></A>
+<BR>
+<A HREF="com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>Durable2PCParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub" target="classFrame">Durable2PCStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common" target="classFrame"><I>Environment</I></A>
+<BR>
+<A HREF="com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst" target="classFrame">FaultedException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">GlueIncomingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">GlueIncomingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">GlueOutgoingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">GlueOutgoingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicCommitException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicHazardException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicMixedException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicRollbackException</A>
+<BR>
+<A HREF="com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc" target="classFrame">InvalidCreateParametersException</A>
+<BR>
+<A HREF="com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc" target="classFrame">InvalidProtocolException</A>
+<BR>
+<A HREF="com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc" target="classFrame">InvalidStateException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">JaxRPCHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">JaxRPCHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">JaxWSHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">JaxWSHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging" target="classFrame">MessageId</A>
+<BR>
+<A HREF="com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc" target="classFrame">NoActivityException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>OutcomeNotificationParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst" target="classFrame"><I>Participant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">ParticipantCompletionCoordinatorEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">ParticipantCompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">ParticipantCompletionParticipantEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">ParticipantCompletionParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">ParticipantEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">ParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub" target="classFrame">ParticipantStub</A>
+<BR>
+<A HREF="com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>PersistableParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>PhaseZeroParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote" target="classFrame">Prepared</A>
+<BR>
+<A HREF="com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst" target="classFrame">Prepared</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote" target="classFrame">ReadOnly</A>
+<BR>
+<A HREF="com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst" target="classFrame">ReadOnly</A>
+<BR>
+<A HREF="com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc" target="classFrame"><I>Registrar</I></A>
+<BR>
+<A HREF="com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc" target="classFrame">RegistrarMapper</A>
+<BR>
+<A HREF="com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc" target="classFrame">RegistrationCoordinator</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging" target="classFrame">RegistrationCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common" target="classFrame">SOAPUtil</A>
+<BR>
+<A HREF="com/arjuna/wst/Status.html" title="class in com.arjuna.wst" target="classFrame">Status</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub" target="classFrame">SystemCommunicationException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">SystemException</A>
+<BR>
+<A HREF="com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst" target="classFrame">SystemException</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">TerminatorParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy" target="classFrame">TransactionInitialisation</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst" target="classFrame">TransactionManager</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">TransactionManagerFactory</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">TransactionRolledBackException</A>
+<BR>
+<A HREF="com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst" target="classFrame">TransactionRolledBackException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>TwoPhaseParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst" target="classFrame"><I>TxContext</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">UnknownParticipantException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">UnknownTransactionException</A>
+<BR>
+<A HREF="com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst" target="classFrame">UnknownTransactionException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst" target="classFrame">UserBusinessActivity</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">UserBusinessActivityFactory</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst" target="classFrame">UserTransaction</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">UserTransactionFactory</A>
+<BR>
+<A HREF="com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>Volatile2PCParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub" target="classFrame">Volatile2PCStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote" target="classFrame"><I>Vote</I></A>
+<BR>
+<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst" target="classFrame"><I>Vote</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">WrongStateException</A>
+<BR>
+<A HREF="com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst" target="classFrame">WrongStateException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy" target="classFrame">WSTXInitialisation</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-noframe.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-noframe.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/allclasses-noframe.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote">Aborted</A>
+<BR>
+<A HREF="com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst">Aborted</A>
+<BR>
+<A HREF="com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc">ActivationCoordinator</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">ActivationCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst"><I>BAParticipantManager</I></A>
+<BR>
+<A HREF="com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><I>BAParticipantManager</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst">BusinessActivityManagerFactory</A>
+<BR>
+<A HREF="com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><I>BusinessActivityTerminator</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources"><I>BusinessAgreement</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><I>BusinessAgreementWithComplete</I></A>
+<BR>
+<A HREF="com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><I>BusinessAgreementWithCoordinatorCompletionParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<BR>
+<A HREF="com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><I>BusinessAgreementWithParticipantCompletionParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<BR>
+<A HREF="com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst">Cancel</A>
+<BR>
+<A HREF="com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><I>CompletionCoordinatorParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><I>CompletionParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub">CompletionStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><I>CompletionWithAckParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><I>ContextFactory</I></A>
+<BR>
+<A HREF="com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy">CoordinationInitialisation</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><I>Durable2PCCoordinator</I></A>
+<BR>
+<A HREF="com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><I>Durable2PCParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><I>Environment</I></A>
+<BR>
+<A HREF="com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueIncomingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueIncomingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueOutgoingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueOutgoingContextInterceptor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicCommitException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A>
+<BR>
+<A HREF="com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A>
+<BR>
+<A HREF="com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A>
+<BR>
+<A HREF="com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging">MessageId</A>
+<BR>
+<A HREF="com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><I>OutcomeNotificationParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><I>Participant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<BR>
+<A HREF="com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><I>PersistableParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><I>PhaseZeroParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote">Prepared</A>
+<BR>
+<A HREF="com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst">Prepared</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote">ReadOnly</A>
+<BR>
+<A HREF="com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst">ReadOnly</A>
+<BR>
+<A HREF="com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><I>Registrar</I></A>
+<BR>
+<A HREF="com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A>
+<BR>
+<A HREF="com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc">RegistrationCoordinator</A>
+<BR>
+<A HREF="com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">RegistrationCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common">SOAPUtil</A>
+<BR>
+<A HREF="com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<BR>
+<A HREF="com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub">SystemCommunicationException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A>
+<BR>
+<A HREF="com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<BR>
+<A HREF="com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy">TransactionInitialisation</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst">TransactionManagerFactory</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions">TransactionRolledBackException</A>
+<BR>
+<A HREF="com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources"><I>TwoPhaseParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><I>TxContext</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>
+<BR>
+<A HREF="com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst">UserBusinessActivityFactory</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst">UserTransactionFactory</A>
+<BR>
+<A HREF="com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><I>Volatile2PCParticipant</I></A>
+<BR>
+<A HREF="com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote"><I>Vote</I></A>
+<BR>
+<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><I>Vote</I></A>
+<BR>
+<A HREF="com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>
+<BR>
+<A HREF="com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>
+<BR>
+<A HREF="com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy">WSTXInitialisation</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BAParticipantManager.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BAParticipantManager.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BAParticipantManager.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+BAParticipantManager
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.BAParticipantManager interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BAParticipantManager";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/BAParticipantManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BAParticipantManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Interface BAParticipantManager</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BAParticipantManager</B></DL>
+</PRE>
+
+<P>
+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.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: BAParticipantManager.java,v 1.4 2004/12/21 09:49:13 kconner Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html#completed(java.lang.String)">completed</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant has completed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html#exited(java.lang.String)">exited</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant has exited.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html#faulted(java.lang.String)">faulted</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="exited(java.lang.String)"><!-- --></A><H3>
+exited</H3>
+<PRE>
+void <B>exited</B>(java.lang.String&nbsp;id)
+            throws <A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                   <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                   <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>,
+                   <A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD>The participant has exited.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed(java.lang.String)"><!-- --></A><H3>
+completed</H3>
+<PRE>
+void <B>completed</B>(java.lang.String&nbsp;id)
+               throws <A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                      <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                      <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>,
+                      <A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD>The participant has completed.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="faulted(java.lang.String)"><!-- --></A><H3>
+faulted</H3>
+<PRE>
+void <B>faulted</B>(java.lang.String&nbsp;id)
+             throws <A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                    <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                    <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>,
+                    <A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/BAParticipantManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BAParticipantManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManager.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManager.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManager.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,448 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+BusinessActivityManager
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.BusinessActivityManager class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessActivityManager";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/BusinessActivityManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class BusinessActivityManager</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.BusinessActivityManager</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>BusinessActivityManager</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+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.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: BusinessActivityManager.java,v 1.4.8.1 2005/11/22 10:36:05 kconner Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#BusinessActivityManager()">BusinessActivityManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#currentTransaction()">currentTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The currentTransaction method returns the TxContext for the current
+ transaction, or null if there is none.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#enlistForBusinessAgreementWithCoordinatorCompletion(com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant, java.lang.String)">enlistForBusinessAgreementWithCoordinatorCompletion</A></B>(<A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>&nbsp;bawcp,
+                                                    java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enlist a participant for the BusinessAgreementWithCoordinatorCompletion protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#enlistForBusinessAgreementWithParticipantCompletion(com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant, java.lang.String)">enlistForBusinessAgreementWithParticipantCompletion</A></B>(<A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>&nbsp;bap,
+                                                    java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enlist a participant for the BusinessAgreement protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#getBusinessActivityManager()">getBusinessActivityManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the business activity manager.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#resume(com.arjuna.mw.wst.TxContext)">resume</A></B>(<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A>&nbsp;txContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The resume method can be used to (re-)associate a thread with a 
+ transaction(s) via its TxContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#setBusinessActivityManager(com.arjuna.mw.wst.BusinessActivityManager)">setBusinessActivityManager</A></B>(<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>&nbsp;manager)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the business activity manager.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html#suspend()">suspend</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A thread of control may require periods of non-transactionality so that
+ it may perform work that is not associated with a specific transaction.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BusinessActivityManager()"><!-- --></A><H3>
+BusinessActivityManager</H3>
+<PRE>
+public <B>BusinessActivityManager</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getBusinessActivityManager()"><!-- --></A><H3>
+getBusinessActivityManager</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A> <B>getBusinessActivityManager</B>()</PRE>
+<DL>
+<DD>Get the business activity manager.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The business activity manager.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBusinessActivityManager(com.arjuna.mw.wst.BusinessActivityManager)"><!-- --></A><H3>
+setBusinessActivityManager</H3>
+<PRE>
+public static void <B>setBusinessActivityManager</B>(<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>&nbsp;manager)</PRE>
+<DL>
+<DD>Set the business activity manager.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>manager</CODE> - The business activity manager.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enlistForBusinessAgreementWithParticipantCompletion(com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant, java.lang.String)"><!-- --></A><H3>
+enlistForBusinessAgreementWithParticipantCompletion</H3>
+<PRE>
+public abstract <A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A> <B>enlistForBusinessAgreementWithParticipantCompletion</B>(<A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>&nbsp;bap,
+                                                                                         java.lang.String&nbsp;id)
+                                                                                  throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                                                                                         <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                                                                                         <A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>,
+                                                                                         <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Enlist a participant for the BusinessAgreement protocol.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the BAParticipantManager for this transaction.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enlistForBusinessAgreementWithCoordinatorCompletion(com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant, java.lang.String)"><!-- --></A><H3>
+enlistForBusinessAgreementWithCoordinatorCompletion</H3>
+<PRE>
+public abstract <A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A> <B>enlistForBusinessAgreementWithCoordinatorCompletion</B>(<A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>&nbsp;bawcp,
+                                                                                         java.lang.String&nbsp;id)
+                                                                                  throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                                                                                         <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                                                                                         <A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>,
+                                                                                         <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Enlist a participant for the BusinessAgreementWithCoordinatorCompletion protocol.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the BAParticipantManager for this transaction.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resume(com.arjuna.mw.wst.TxContext)"><!-- --></A><H3>
+resume</H3>
+<PRE>
+public abstract void <B>resume</B>(<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A>&nbsp;txContext)
+                     throws <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                            <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suspend()"><!-- --></A><H3>
+suspend</H3>
+<PRE>
+public abstract <A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A> <B>suspend</B>()
+                           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="currentTransaction()"><!-- --></A><H3>
+currentTransaction</H3>
+<PRE>
+public abstract <A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A> <B>currentTransaction</B>()
+                                      throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/BusinessActivityManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManagerFactory.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManagerFactory.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/BusinessActivityManagerFactory.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+BusinessActivityManagerFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.BusinessActivityManagerFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessActivityManagerFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/BusinessActivityManagerFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityManagerFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class BusinessActivityManagerFactory</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.BusinessActivityManagerFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>BusinessActivityManagerFactory</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html#BusinessActivityManagerFactory()">BusinessActivityManagerFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html#businessActivityManager()">businessActivityManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BusinessActivityManagerFactory()"><!-- --></A><H3>
+BusinessActivityManagerFactory</H3>
+<PRE>
+public <B>BusinessActivityManagerFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="businessActivityManager()"><!-- --></A><H3>
+businessActivityManager</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A> <B>businessActivityManager</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/BusinessActivityManagerFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityManagerFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/Durable2PCCoordinator.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/Durable2PCCoordinator.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/Durable2PCCoordinator.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Durable2PCCoordinator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.Durable2PCCoordinator interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Durable2PCCoordinator";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/Durable2PCCoordinator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Durable2PCCoordinator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Interface Durable2PCCoordinator</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Durable2PCCoordinator</B></DL>
+</PRE>
+
+<P>
+Allows a durable 2PC participant to rollback or send readonly
+ before the coordinator initiates the protocol.
+
+ One instance of this per transaction.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: Durable2PCCoordinator.java,v 1.1.2.1 2004/08/06 10:25:30 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html#readonly(java.lang.String)">readonly</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant is read-only.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html#rollback(java.lang.String)">rollback</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant has rolled back.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="rollback(java.lang.String)"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+void <B>rollback</B>(java.lang.String&nbsp;id)
+              throws <A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                     <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                     <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>,
+                     <A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD>The participant has rolled back.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readonly(java.lang.String)"><!-- --></A><H3>
+readonly</H3>
+<PRE>
+void <B>readonly</B>(java.lang.String&nbsp;id)
+              throws <A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                     <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                     <A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>,
+                     <A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD>The participant is read-only.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/Durable2PCCoordinator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Durable2PCCoordinator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManager.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManager.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManager.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+TransactionManager
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.TransactionManager class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TransactionManager";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/TransactionManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class TransactionManager</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.TransactionManager</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>TransactionManager</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+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).
+
+ 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.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: TransactionManager.java,v 1.10.6.1 2005/11/22 10:36:06 kconner Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#TransactionManager()">TransactionManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#currentTransaction()">currentTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The currentTransaction method returns the TxContext for the current
+ transaction, or null if there is none.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#enlistForDurableTwoPhase(com.arjuna.wst.Durable2PCParticipant, java.lang.String)">enlistForDurableTwoPhase</A></B>(<A HREF="../../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A>&nbsp;tpp,
+                         java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enlist the specified participant with current transaction such that it
+ will participate in the 2PC protocol; a unique identifier for the
+ participant is also required.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#enlistForVolatileTwoPhase(com.arjuna.wst.Volatile2PCParticipant, java.lang.String)">enlistForVolatileTwoPhase</A></B>(<A HREF="../../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A>&nbsp;pzp,
+                          java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enlist the specified participant with current transaction such that it
+ will participate in the Volatile 2PC protocol; a unique identifier for
+ the participant is also required.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#getTransactionManager()">getTransactionManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the transaction manager.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#replay()">replay</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#resume(com.arjuna.mw.wst.TxContext)">resume</A></B>(<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A>&nbsp;txContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The resume method can be used to (re-)associate a thread with a 
+ transaction(s) via its TxContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#setTransactionManager(com.arjuna.mw.wst.TransactionManager)">setTransactionManager</A></B>(<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>&nbsp;manager)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the transaction manager.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html#suspend()">suspend</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A thread of control may require periods of non-transactionality so that
+ it may perform work that is not associated with a specific transaction.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TransactionManager()"><!-- --></A><H3>
+TransactionManager</H3>
+<PRE>
+public <B>TransactionManager</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getTransactionManager()"><!-- --></A><H3>
+getTransactionManager</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A> <B>getTransactionManager</B>()</PRE>
+<DL>
+<DD>Get the transaction manager.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The transaction manager.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTransactionManager(com.arjuna.mw.wst.TransactionManager)"><!-- --></A><H3>
+setTransactionManager</H3>
+<PRE>
+public static void <B>setTransactionManager</B>(<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>&nbsp;manager)</PRE>
+<DL>
+<DD>Set the transaction manager.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>manager</CODE> - The transaction manager.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enlistForVolatileTwoPhase(com.arjuna.wst.Volatile2PCParticipant, java.lang.String)"><!-- --></A><H3>
+enlistForVolatileTwoPhase</H3>
+<PRE>
+public abstract void <B>enlistForVolatileTwoPhase</B>(<A HREF="../../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A>&nbsp;pzp,
+                                               java.lang.String&nbsp;id)
+                                        throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                                               <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                                               <A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>,
+                                               <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Enlist the specified participant with current transaction such that it
+ will participate in the Volatile 2PC protocol; a unique identifier for
+ the participant is also required. If there is no transaction associated
+ with the invoking thread then the UnknownTransactionException exception
+ is thrown. If the coordinator already has a participant enrolled with
+ the same identifier, then AlreadyRegisteredException will be thrown. If
+ the transaction is not in a state where participants can be enrolled
+ (e.g., it is terminating) then WrongStateException will be thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enlistForDurableTwoPhase(com.arjuna.wst.Durable2PCParticipant, java.lang.String)"><!-- --></A><H3>
+enlistForDurableTwoPhase</H3>
+<PRE>
+public abstract void <B>enlistForDurableTwoPhase</B>(<A HREF="../../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A>&nbsp;tpp,
+                                              java.lang.String&nbsp;id)
+                                       throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                                              <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                                              <A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>,
+                                              <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Enlist the specified participant with current transaction such that it
+ will participate in the 2PC protocol; a unique identifier for the
+ participant is also required. If there is no transaction associated with
+ the invoking thread then the UnknownTransactionException exception is
+ thrown. If the coordinator already has a participant enrolled with the 
+ same identifier, then AlreadyRegisteredException will be thrown. If the
+ transaction is not in a state where participants can be enrolled (e.g.,
+ it is terminating) then WrongStateException will be thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="replay()"><!-- --></A><H3>
+replay</H3>
+<PRE>
+public abstract int <B>replay</B>()
+                    throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resume(com.arjuna.mw.wst.TxContext)"><!-- --></A><H3>
+resume</H3>
+<PRE>
+public abstract void <B>resume</B>(<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A>&nbsp;txContext)
+                     throws <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                            <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suspend()"><!-- --></A><H3>
+suspend</H3>
+<PRE>
+public abstract <A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A> <B>suspend</B>()
+                           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="currentTransaction()"><!-- --></A><H3>
+currentTransaction</H3>
+<PRE>
+public abstract <A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A> <B>currentTransaction</B>()
+                                      throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/TransactionManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManagerFactory.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManagerFactory.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TransactionManagerFactory.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+TransactionManagerFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.TransactionManagerFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TransactionManagerFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/TransactionManagerFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionManagerFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class TransactionManagerFactory</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.TransactionManagerFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>TransactionManagerFactory</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html#TransactionManagerFactory()">TransactionManagerFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html#transactionManager()">transactionManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TransactionManagerFactory()"><!-- --></A><H3>
+TransactionManagerFactory</H3>
+<PRE>
+public <B>TransactionManagerFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="transactionManager()"><!-- --></A><H3>
+transactionManager</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A> <B>transactionManager</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/TransactionManagerFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionManagerFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TxContext.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TxContext.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/TxContext.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+TxContext
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.TxContext interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TxContext";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/TxContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TxContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Interface TxContext</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>TxContext</B></DL>
+</PRE>
+
+<P>
+This class represents a handle on a stack of transactions.
+ It should only be used for suspending and resuming the
+ thread-to-transaction association.
+
+ The transaction at the top of the stack is the current transaction.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: TxContext.java,v 1.5 2004/03/15 13:25:14 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TxContext.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;o)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/TxContext.html#valid()">valid</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="valid()"><!-- --></A><H3>
+valid</H3>
+<PRE>
+boolean <B>valid</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the context is valid, false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+boolean <B>equals</B>(java.lang.Object&nbsp;o)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the parameter represents the same context as
+ the target object, false otherwise.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/TxContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TxContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivity.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivity.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivity.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,511 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+UserBusinessActivity
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.UserBusinessActivity class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UserBusinessActivity";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserBusinessActivity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserBusinessActivity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class UserBusinessActivity</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.UserBusinessActivity</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>UserBusinessActivity</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This is the interface that allows BAs to be started and terminated.
+ The messaging layer converts the messages into calls on this.
+
+ Importantly, a UserBusinessActivity does not represent a specific
+ transaction, but rather is responsible for providing access to an implicit
+ per-thread  transaction context; it is similar to the UserTransaction in
+ the JTA specification. Therefore, all of the UserTransaction methods
+ implicitly act on the current thread of control.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: UserBusinessActivity.java,v 1.4.6.1 2005/11/22 10:36:06 kconner Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#ATOMIC_OUTCOME">ATOMIC_OUTCOME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#MIXED_OUTCOME">MIXED_OUTCOME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#UserBusinessActivity()">UserBusinessActivity</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#begin()">begin</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a new business activity with atomic outcome.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#begin(int)">begin</A></B>(int&nbsp;timeout)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a new BA with atomic outcome and the specified timeout as
+ its lifetime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the BA must undo its work then the cancel method is used.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The BA is normally terminated by the close method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If participants have registered for the BusinessAgreementWithComplete
+ protocol then they will be expecting the application to inform them
+ when all work intended for them has been sent (and responded to).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#getUserBusinessActivity()">getUserBusinessActivity</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the user business activity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#setUserBusinessActivity(com.arjuna.mw.wst.UserBusinessActivity)">setUserBusinessActivity</A></B>(<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>&nbsp;userBusinessActivity)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the user business activity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html#transactionIdentifier()">transactionIdentifier</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ATOMIC_OUTCOME"><!-- --></A><H3>
+ATOMIC_OUTCOME</H3>
+<PRE>
+public static final int <B>ATOMIC_OUTCOME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.arjuna.mw.wst.UserBusinessActivity.ATOMIC_OUTCOME">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MIXED_OUTCOME"><!-- --></A><H3>
+MIXED_OUTCOME</H3>
+<PRE>
+public static final int <B>MIXED_OUTCOME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.arjuna.mw.wst.UserBusinessActivity.MIXED_OUTCOME">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UserBusinessActivity()"><!-- --></A><H3>
+UserBusinessActivity</H3>
+<PRE>
+public <B>UserBusinessActivity</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getUserBusinessActivity()"><!-- --></A><H3>
+getUserBusinessActivity</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A> <B>getUserBusinessActivity</B>()</PRE>
+<DL>
+<DD>Get the user business activity.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The user business activity.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setUserBusinessActivity(com.arjuna.mw.wst.UserBusinessActivity)"><!-- --></A><H3>
+setUserBusinessActivity</H3>
+<PRE>
+public static void <B>setUserBusinessActivity</B>(<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>&nbsp;userBusinessActivity)</PRE>
+<DL>
+<DD>Set the user business activity.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>userBusinessActivity</CODE> - The user business activity.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="begin()"><!-- --></A><H3>
+begin</H3>
+<PRE>
+public abstract void <B>begin</B>()
+                    throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                           <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Start a new business activity with atomic outcome.
+ If one is already associated with this thread
+ then the WrongStateException will be thrown. Upon success, this
+ operation associates the newly created transaction with the current
+ thread.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="begin(int)"><!-- --></A><H3>
+begin</H3>
+<PRE>
+public abstract void <B>begin</B>(int&nbsp;timeout)
+                    throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                           <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Start a new BA with atomic outcome and the specified timeout as
+ its lifetime.
+ If one is already associated with this thread then the
+ WrongStateException will be thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public abstract void <B>close</B>()
+                    throws <A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>,
+                           <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                           <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The BA is normally terminated by the close method. This signals to
+ all registered participants that the BA has ended and no compensation
+ is required.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public abstract void <B>cancel</B>()
+                     throws <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                            <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>If the BA must undo its work then the cancel method is used. Any
+ participants that can compensate are forced to do so.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public abstract void <B>complete</B>()
+                       throws <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                              <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>If participants have registered for the BusinessAgreementWithComplete
+ protocol then they will be expecting the application to inform them
+ when all work intended for them has been sent (and responded to). The
+ complete method is used for this purpose.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transactionIdentifier()"><!-- --></A><H3>
+transactionIdentifier</H3>
+<PRE>
+public abstract java.lang.String <B>transactionIdentifier</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserBusinessActivity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserBusinessActivity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivityFactory.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivityFactory.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserBusinessActivityFactory.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+UserBusinessActivityFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.UserBusinessActivityFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UserBusinessActivityFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserBusinessActivityFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserBusinessActivityFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class UserBusinessActivityFactory</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.UserBusinessActivityFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>UserBusinessActivityFactory</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html#UserBusinessActivityFactory()">UserBusinessActivityFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html#userBusinessActivity()">userBusinessActivity</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UserBusinessActivityFactory()"><!-- --></A><H3>
+UserBusinessActivityFactory</H3>
+<PRE>
+public <B>UserBusinessActivityFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="userBusinessActivity()"><!-- --></A><H3>
+userBusinessActivity</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A> <B>userBusinessActivity</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserBusinessActivityFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserBusinessActivityFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransaction.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransaction.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransaction.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+UserTransaction
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.UserTransaction class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UserTransaction";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserTransaction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserTransaction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class UserTransaction</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.UserTransaction</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>UserTransaction</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+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.
+ Importantly, a UserTransaction does not represent a specific transaction,
+ but rather is responsible for providing access to an implicit per-thread 
+ transaction context; it is similar to the UserTransaction in the JTA
+ specification. Therefore, all of the UserTransaction methods implicitly act
+ on the current thread of control.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: UserTransaction.java,v 1.8.4.1 2005/11/22 10:36:05 kconner Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#UserTransaction()">UserTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#begin()">begin</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a new transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#begin(int)">begin</A></B>(int&nbsp;timeout)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a new transaction with the specified timeout as its lifetime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction is committed by the commit method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#getUserTransaction()">getUserTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the user transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rollback operation will terminate the transaction and return
+ normally if it succeeded, while throwing an appropriate exception if it
+ didn't.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#setUserTransaction(com.arjuna.mw.wst.UserTransaction)">setUserTransaction</A></B>(<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>&nbsp;userTransaction)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the user transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html#transactionIdentifier()">transactionIdentifier</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UserTransaction()"><!-- --></A><H3>
+UserTransaction</H3>
+<PRE>
+public <B>UserTransaction</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getUserTransaction()"><!-- --></A><H3>
+getUserTransaction</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A> <B>getUserTransaction</B>()</PRE>
+<DL>
+<DD>Get the user transaction.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the user transaction.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setUserTransaction(com.arjuna.mw.wst.UserTransaction)"><!-- --></A><H3>
+setUserTransaction</H3>
+<PRE>
+public static void <B>setUserTransaction</B>(<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>&nbsp;userTransaction)</PRE>
+<DL>
+<DD>Set the user transaction.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>userTransaction</CODE> - The user transaction.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="begin()"><!-- --></A><H3>
+begin</H3>
+<PRE>
+public abstract void <B>begin</B>()
+                    throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                           <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Start a new transaction. If one is already associated with this thread
+ then the WrongStateException will be thrown. Upon success, this
+ operation associates the newly created transaction with the current
+ thread.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="begin(int)"><!-- --></A><H3>
+begin</H3>
+<PRE>
+public abstract void <B>begin</B>(int&nbsp;timeout)
+                    throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                           <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Start a new transaction with the specified timeout as its lifetime.
+ If one is already associated with this thread then the
+ WrongStateException will be thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public abstract void <B>commit</B>()
+                     throws <A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>,
+                            <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                            java.lang.SecurityException,
+                            <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The transaction is committed by the commit method. This will execute
+ the PhaseZero, 2PC and OutcomeNotification protocols prior to returning.
+ If there is no transaction associated with the invoking thread then
+ UnknownTransactionException is thrown. If the transaction ultimately
+ rolls back then the TransactionRolledBackException is thrown. When
+ complete, this operation disassociates the transaction from the current
+ thread such that it becomes associated with no transaction.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE>java.lang.SecurityException</CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public abstract void <B>rollback</B>()
+                       throws <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                              java.lang.SecurityException,
+                              <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The rollback operation will terminate the transaction and return
+ normally if it succeeded, while throwing an appropriate exception if it
+ didn't. If there is no transaction associated with the invoking thread
+ then UnknownTransactionException is thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE>java.lang.SecurityException</CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transactionIdentifier()"><!-- --></A><H3>
+transactionIdentifier</H3>
+<PRE>
+public abstract java.lang.String <B>transactionIdentifier</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserTransaction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserTransaction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransactionFactory.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransactionFactory.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/UserTransactionFactory.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+UserTransactionFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.UserTransactionFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UserTransactionFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserTransactionFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserTransactionFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst</FONT>
+<BR>
+Class UserTransactionFactory</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.UserTransactionFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>UserTransactionFactory</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransactionFactory.html#UserTransactionFactory()">UserTransactionFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/mw/wst/UserTransactionFactory.html#userTransaction()">userTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UserTransactionFactory()"><!-- --></A><H3>
+UserTransactionFactory</H3>
+<PRE>
+public <B>UserTransactionFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="userTransaction()"><!-- --></A><H3>
+userTransaction</H3>
+<PRE>
+public static <A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A> <B>userTransaction</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/UserTransactionFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UserTransactionFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+GlueIncomingContextInterceptor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.client.GlueIncomingContextInterceptor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="GlueIncomingContextInterceptor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueIncomingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.client</FONT>
+<BR>
+Class GlueIncomingContextInterceptor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.client.GlueIncomingContextInterceptor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>GlueIncomingContextInterceptor</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html#GlueIncomingContextInterceptor()">GlueIncomingContextInterceptor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)">intercept</A></B>(electric.soap.SOAPMessage&nbsp;message,
+          electric.util.Context&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="GlueIncomingContextInterceptor()"><!-- --></A><H3>
+GlueIncomingContextInterceptor</H3>
+<PRE>
+public <B>GlueIncomingContextInterceptor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="intercept(electric.soap.SOAPMessage, electric.util.Context)"><!-- --></A><H3>
+intercept</H3>
+<PRE>
+public void <B>intercept</B>(electric.soap.SOAPMessage&nbsp;message,
+                      electric.util.Context&nbsp;messageContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueIncomingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+GlueOutgoingContextInterceptor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.client.GlueOutgoingContextInterceptor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="GlueOutgoingContextInterceptor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueOutgoingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.client</FONT>
+<BR>
+Class GlueOutgoingContextInterceptor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.client.GlueOutgoingContextInterceptor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>GlueOutgoingContextInterceptor</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html#GlueOutgoingContextInterceptor()">GlueOutgoingContextInterceptor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)">intercept</A></B>(electric.soap.SOAPMessage&nbsp;soapMessage,
+          electric.util.Context&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="GlueOutgoingContextInterceptor()"><!-- --></A><H3>
+GlueOutgoingContextInterceptor</H3>
+<PRE>
+public <B>GlueOutgoingContextInterceptor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="intercept(electric.soap.SOAPMessage, electric.util.Context)"><!-- --></A><H3>
+intercept</H3>
+<PRE>
+public void <B>intercept</B>(electric.soap.SOAPMessage&nbsp;soapMessage,
+                      electric.util.Context&nbsp;messageContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueOutgoingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+JaxRPCHeaderContextProcessor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.client.JaxRPCHeaderContextProcessor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="JaxRPCHeaderContextProcessor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxRPCHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.client</FONT>
+<BR>
+Class JaxRPCHeaderContextProcessor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.client.JaxRPCHeaderContextProcessor</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>javax.xml.rpc.handler.Handler</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>JaxRPCHeaderContextProcessor</B><DT>extends java.lang.Object<DT>implements javax.xml.rpc.handler.Handler</DL>
+</PRE>
+
+<P>
+The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxRPC.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#JaxRPCHeaderContextProcessor()">JaxRPCHeaderContextProcessor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#destroy()">destroy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroy the handler.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;javax.xml.namespace.QName[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#getHeaders()">getHeaders</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the headers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleFault(javax.xml.rpc.handler.MessageContext)">handleFault</A></B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleOutboundMessage(javax.xml.soap.SOAPMessage)">handleOutboundMessage</A></B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleRequest(javax.xml.rpc.handler.MessageContext)">handleRequest</A></B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleResponse(javax.xml.rpc.handler.MessageContext)">handleResponse</A></B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the response.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#init(javax.xml.rpc.handler.HandlerInfo)">init</A></B>(javax.xml.rpc.handler.HandlerInfo&nbsp;handlerInfo)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialise the handler information.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#resumeTransaction(javax.xml.soap.SOAPMessage)">resumeTransaction</A></B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resume the current transaction.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="JaxRPCHeaderContextProcessor()"><!-- --></A><H3>
+JaxRPCHeaderContextProcessor</H3>
+<PRE>
+public <B>JaxRPCHeaderContextProcessor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="init(javax.xml.rpc.handler.HandlerInfo)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(javax.xml.rpc.handler.HandlerInfo&nbsp;handlerInfo)</PRE>
+<DL>
+<DD>Initialise the handler information.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>init</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>handlerInfo</CODE> - The handler information.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="destroy()"><!-- --></A><H3>
+destroy</H3>
+<PRE>
+public void <B>destroy</B>()</PRE>
+<DL>
+<DD>Destroy the handler.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>destroy</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHeaders()"><!-- --></A><H3>
+getHeaders</H3>
+<PRE>
+public javax.xml.namespace.QName[] <B>getHeaders</B>()</PRE>
+<DL>
+<DD>Get the headers.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getHeaders</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the headers.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleRequest(javax.xml.rpc.handler.MessageContext)"><!-- --></A><H3>
+handleRequest</H3>
+<PRE>
+public boolean <B>handleRequest</B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Handle the request.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>handleRequest</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleResponse(javax.xml.rpc.handler.MessageContext)"><!-- --></A><H3>
+handleResponse</H3>
+<PRE>
+public boolean <B>handleResponse</B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Handle the response.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>handleResponse</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleFault(javax.xml.rpc.handler.MessageContext)"><!-- --></A><H3>
+handleFault</H3>
+<PRE>
+public boolean <B>handleFault</B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Handle the fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>handleFault</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleOutboundMessage(javax.xml.soap.SOAPMessage)"><!-- --></A><H3>
+handleOutboundMessage</H3>
+<PRE>
+public boolean <B>handleOutboundMessage</B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</PRE>
+<DL>
+<DD>Handle the request.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapMessage</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resumeTransaction(javax.xml.soap.SOAPMessage)"><!-- --></A><H3>
+resumeTransaction</H3>
+<PRE>
+protected void <B>resumeTransaction</B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</PRE>
+<DL>
+<DD>Resume the current transaction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxRPCHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,426 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+JaxWSHeaderContextProcessor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.client.JaxWSHeaderContextProcessor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="JaxWSHeaderContextProcessor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxWSHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.client</FONT>
+<BR>
+Class JaxWSHeaderContextProcessor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.client.JaxWSHeaderContextProcessor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>JaxWSHeaderContextProcessor</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+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.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#JaxWSHeaderContextProcessor()">JaxWSHeaderContextProcessor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#close(MessageContext)">close</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Set&lt;javax.xml.namespace.QName&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#getHeaders()">getHeaders</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the header blocks that can be processed by this Handler instance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleFault(MessageContext)">handleFault</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tidy up the Transaction/Thread association.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleInbound(MessageContext)">handleInbound</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tidy up the Transaction/Thread association before control is returned to the user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleMessage(MessageContext)">handleMessage</A></B>(MessageContext&nbsp;msgContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process a message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleOutbound(MessageContext)">handleOutbound</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process the tx thread context and attach serialized version as msg header</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleOutboundMessage(javax.xml.soap.SOAPMessage)">handleOutboundMessage</A></B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#resumeTransaction(javax.xml.soap.SOAPMessage)">resumeTransaction</A></B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resume the current transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#setHeaders(java.util.Set)">setHeaders</A></B>(java.util.Set&nbsp;headers)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the header blocks that can be processed by this Handler instance.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="JaxWSHeaderContextProcessor()"><!-- --></A><H3>
+JaxWSHeaderContextProcessor</H3>
+<PRE>
+public <B>JaxWSHeaderContextProcessor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="handleMessage(MessageContext)"><!-- --></A><H3>
+handleMessage</H3>
+<PRE>
+public boolean <B>handleMessage</B>(MessageContext&nbsp;msgContext)</PRE>
+<DL>
+<DD>Process a message. Determines if it is inbound or outbound and dispatches accordingly.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>msgContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleFault(MessageContext)"><!-- --></A><H3>
+handleFault</H3>
+<PRE>
+public boolean <B>handleFault</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Tidy up the Transaction/Thread association.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(MessageContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHeaders()"><!-- --></A><H3>
+getHeaders</H3>
+<PRE>
+public java.util.Set&lt;javax.xml.namespace.QName&gt; <B>getHeaders</B>()</PRE>
+<DL>
+<DD>Gets the header blocks that can be processed by this Handler instance.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setHeaders(java.util.Set)"><!-- --></A><H3>
+setHeaders</H3>
+<PRE>
+public void <B>setHeaders</B>(java.util.Set&nbsp;headers)</PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInbound(MessageContext)"><!-- --></A><H3>
+handleInbound</H3>
+<PRE>
+protected boolean <B>handleInbound</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Tidy up the Transaction/Thread association before control is returned to the user.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleOutbound(MessageContext)"><!-- --></A><H3>
+handleOutbound</H3>
+<PRE>
+protected boolean <B>handleOutbound</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Process the tx thread context and attach serialized version as msg header
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleOutboundMessage(javax.xml.soap.SOAPMessage)"><!-- --></A><H3>
+handleOutboundMessage</H3>
+<PRE>
+public boolean <B>handleOutboundMessage</B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</PRE>
+<DL>
+<DD>Handle the request.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapMessage</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resumeTransaction(javax.xml.soap.SOAPMessage)"><!-- --></A><H3>
+resumeTransaction</H3>
+<PRE>
+protected void <B>resumeTransaction</B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</PRE>
+<DL>
+<DD>Resume the current transaction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxWSHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.client
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.client package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/client/package-summary.html" target="classFrame">com.arjuna.mw.wst.client</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">GlueIncomingContextInterceptor</A>
+<BR>
+<A HREF="GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">GlueOutgoingContextInterceptor</A>
+<BR>
+<A HREF="JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">JaxRPCHeaderContextProcessor</A>
+<BR>
+<A HREF="JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client" target="classFrame">JaxWSHeaderContextProcessor</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.client
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.client package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.client";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.client
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueIncomingContextInterceptor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueOutgoingContextInterceptor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxRPC.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxWS.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/client/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.client Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.client Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.client
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="../../../../../com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>GlueIncomingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="../../../../../com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>GlueOutgoingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="../../../../../com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>JaxRPCHeaderContextProcessor</B></A> (implements javax.xml.rpc.handler.Handler)
+<LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="../../../../../com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>JaxWSHeaderContextProcessor</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/client/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/CoordinationContextHelper.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/CoordinationContextHelper.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/CoordinationContextHelper.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+CoordinationContextHelper
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.common.CoordinationContextHelper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinationContextHelper";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/CoordinationContextHelper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinationContextHelper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.common</FONT>
+<BR>
+Class CoordinationContextHelper</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.common.CoordinationContextHelper</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinationContextHelper</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Helper class for serialising Coordination Contexts into SOAP headers.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html#CoordinationContextHelper()">CoordinationContextHelper</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;com.arjuna.webservices.wscoor.CoordinationContextType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html#deserialise(org.w3c.dom.Element)">deserialise</A></B>(org.w3c.dom.Element&nbsp;headerElement)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deserialise a coordination context from a DOM SOAP Header Element.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;com.arjuna.webservices.wscoor.CoordinationContextType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html#deserialise(javax.xml.soap.SOAPEnvelope, javax.xml.soap.SOAPHeaderElement)">deserialise</A></B>(javax.xml.soap.SOAPEnvelope&nbsp;env,
+            javax.xml.soap.SOAPHeaderElement&nbsp;headerElement)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deserialise a coordination context from a SAAJ SOAP Header Element.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html#serialise(org.w3c.dom.Element, com.arjuna.webservices.wscoor.CoordinationContextType)">serialise</A></B>(org.w3c.dom.Element&nbsp;headerElement,
+          com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;coordinationContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialise a coordination context to a DOM SOAP Header Element.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html#serialise(javax.xml.soap.SOAPEnvelope, javax.xml.soap.SOAPHeaderElement, com.arjuna.webservices.wscoor.CoordinationContextType)">serialise</A></B>(javax.xml.soap.SOAPEnvelope&nbsp;env,
+          javax.xml.soap.SOAPHeaderElement&nbsp;headerElement,
+          com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;coordinationContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialise a coordination context to a SAAJ SOAP Header Element.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinationContextHelper()"><!-- --></A><H3>
+CoordinationContextHelper</H3>
+<PRE>
+public <B>CoordinationContextHelper</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="serialise(javax.xml.soap.SOAPEnvelope, javax.xml.soap.SOAPHeaderElement, com.arjuna.webservices.wscoor.CoordinationContextType)"><!-- --></A><H3>
+serialise</H3>
+<PRE>
+public static void <B>serialise</B>(javax.xml.soap.SOAPEnvelope&nbsp;env,
+                             javax.xml.soap.SOAPHeaderElement&nbsp;headerElement,
+                             com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;coordinationContext)
+                      throws javax.xml.stream.XMLStreamException</PRE>
+<DL>
+<DD>Serialise a coordination context to a SAAJ SOAP Header Element.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - The SOAP envelope.<DD><CODE>headerElement</CODE> - The SOAP header element to populate.<DD><CODE>coordinationContext</CODE> - The coordination context.
+<DT><B>Throws:</B>
+<DD><CODE>javax.xml.stream.XMLStreamException</CODE> - for errors during parsing.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deserialise(javax.xml.soap.SOAPEnvelope, javax.xml.soap.SOAPHeaderElement)"><!-- --></A><H3>
+deserialise</H3>
+<PRE>
+public static com.arjuna.webservices.wscoor.CoordinationContextType <B>deserialise</B>(javax.xml.soap.SOAPEnvelope&nbsp;env,
+                                                                                javax.xml.soap.SOAPHeaderElement&nbsp;headerElement)
+                                                                         throws javax.xml.stream.XMLStreamException</PRE>
+<DL>
+<DD>Deserialise a coordination context from a SAAJ SOAP Header Element.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - The SOAP envelope.<DD><CODE>headerElement</CODE> - The SOAP header element to deserialise.
+<DT><B>Returns:</B><DD>The coordination context.
+<DT><B>Throws:</B>
+<DD><CODE>javax.xml.stream.XMLStreamException</CODE> - for errors during parsing.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="serialise(org.w3c.dom.Element, com.arjuna.webservices.wscoor.CoordinationContextType)"><!-- --></A><H3>
+serialise</H3>
+<PRE>
+public static void <B>serialise</B>(org.w3c.dom.Element&nbsp;headerElement,
+                             com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;coordinationContext)
+                      throws javax.xml.stream.XMLStreamException</PRE>
+<DL>
+<DD>Serialise a coordination context to a DOM SOAP Header Element.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>headerElement</CODE> - The SOAP header element to populate.<DD><CODE>coordinationContext</CODE> - The coordination context.
+<DT><B>Throws:</B>
+<DD><CODE>javax.xml.stream.XMLStreamException</CODE> - for errors during parsing.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deserialise(org.w3c.dom.Element)"><!-- --></A><H3>
+deserialise</H3>
+<PRE>
+public static com.arjuna.webservices.wscoor.CoordinationContextType <B>deserialise</B>(org.w3c.dom.Element&nbsp;headerElement)
+                                                                         throws javax.xml.stream.XMLStreamException</PRE>
+<DL>
+<DD>Deserialise a coordination context from a DOM SOAP Header Element.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>headerElement</CODE> - The SOAP header element to deserialise.
+<DT><B>Returns:</B><DD>The coordination context.
+<DT><B>Throws:</B>
+<DD><CODE>javax.xml.stream.XMLStreamException</CODE> - for errors during parsing.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/CoordinationContextHelper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinationContextHelper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/Environment.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/Environment.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/Environment.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Environment
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.common.Environment interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Environment";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/Environment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Environment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.common</FONT>
+<BR>
+Interface Environment</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Environment</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html#COORDINATOR_URL">COORDINATOR_URL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="COORDINATOR_URL"><!-- --></A><H3>
+COORDINATOR_URL</H3>
+<PRE>
+static final java.lang.String <B>COORDINATOR_URL</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.arjuna.mw.wst.common.Environment.COORDINATOR_URL">Constant Field Values</A></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/Environment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Environment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/SOAPUtil.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/SOAPUtil.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/SOAPUtil.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+SOAPUtil
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.common.SOAPUtil class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SOAPUtil";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/SOAPUtil.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SOAPUtil.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.common</FONT>
+<BR>
+Class SOAPUtil</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.common.SOAPUtil</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>SOAPUtil</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Utility class for SOAP.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/SOAPUtil.html#SOAPUtil()">SOAPUtil</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/common/SOAPUtil.html#getChildElements(javax.xml.soap.SOAPElement)">getChildElements</A></B>(javax.xml.soap.SOAPElement&nbsp;soapElement)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an iterator containing just child elements.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="SOAPUtil()"><!-- --></A><H3>
+SOAPUtil</H3>
+<PRE>
+public <B>SOAPUtil</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getChildElements(javax.xml.soap.SOAPElement)"><!-- --></A><H3>
+getChildElements</H3>
+<PRE>
+public static java.util.Iterator <B>getChildElements</B>(javax.xml.soap.SOAPElement&nbsp;soapElement)</PRE>
+<DL>
+<DD>Get an iterator containing just child elements.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapElement</CODE> - The parent soap element.
+<DT><B>Returns:</B><DD>The iterator of SOAPElements.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/SOAPUtil.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SOAPUtil.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.common
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.common package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/common/package-summary.html" target="classFrame">com.arjuna.mw.wst.common</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Environment.html" title="interface in com.arjuna.mw.wst.common" target="classFrame"><I>Environment</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common" target="classFrame">CoordinationContextHelper</A>
+<BR>
+<A HREF="SOAPUtil.html" title="class in com.arjuna.mw.wst.common" target="classFrame">SOAPUtil</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.common
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.common package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.common";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.common
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common">Environment</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A></B></TD>
+<TD>Helper class for serialising Coordination Contexts into SOAP headers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common">SOAPUtil</A></B></TD>
+<TD>Utility class for SOAP.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/common/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.common Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.common Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.common
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.common.<A HREF="../../../../../com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common"><B>CoordinationContextHelper</B></A><LI TYPE="circle">com.arjuna.mw.wst.common.<A HREF="../../../../../com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common"><B>SOAPUtil</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.common.<A HREF="../../../../../com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>Environment</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/client/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/common/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/WSTXInitialisation.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/WSTXInitialisation.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/WSTXInitialisation.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+WSTXInitialisation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.deploy.WSTXInitialisation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="WSTXInitialisation";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/deploy/WSTXInitialisation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="WSTXInitialisation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.deploy</FONT>
+<BR>
+Class WSTXInitialisation</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.deploy.WSTXInitialisation</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.EventListener, javax.servlet.ServletContextListener</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>WSTXInitialisation</B><DT>extends java.lang.Object<DT>implements javax.servlet.ServletContextListener</DL>
+</PRE>
+
+<P>
+Initialise WSTX.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/deploy/WSTXInitialisation.html#WSTXInitialisation()">WSTXInitialisation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/deploy/WSTXInitialisation.html#contextDestroyed(javax.servlet.ServletContextEvent)">contextDestroyed</A></B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The context is about to be destroyed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/deploy/WSTXInitialisation.html#contextInitialized(javax.servlet.ServletContextEvent)">contextInitialized</A></B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The context has been initialized.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="WSTXInitialisation()"><!-- --></A><H3>
+WSTXInitialisation</H3>
+<PRE>
+public <B>WSTXInitialisation</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="contextInitialized(javax.servlet.ServletContextEvent)"><!-- --></A><H3>
+contextInitialized</H3>
+<PRE>
+public void <B>contextInitialized</B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</PRE>
+<DL>
+<DD>The context has been initialized.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>contextInitialized</CODE> in interface <CODE>javax.servlet.ServletContextListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>servletContextEvent</CODE> - The servlet context event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contextDestroyed(javax.servlet.ServletContextEvent)"><!-- --></A><H3>
+contextDestroyed</H3>
+<PRE>
+public void <B>contextDestroyed</B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</PRE>
+<DL>
+<DD>The context is about to be destroyed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>contextDestroyed</CODE> in interface <CODE>javax.servlet.ServletContextListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>servletContextEvent</CODE> - The servlet context event.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/deploy/WSTXInitialisation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="WSTXInitialisation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.deploy
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.deploy package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-summary.html" target="classFrame">com.arjuna.mw.wst.deploy</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy" target="classFrame">WSTXInitialisation</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.deploy
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.deploy package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.deploy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/deploy/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.deploy
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy">WSTXInitialisation</A></B></TD>
+<TD>Initialise WSTX.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/deploy/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/deploy/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.deploy Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.deploy Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/deploy/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.deploy
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.deploy.<A HREF="../../../../../com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy"><B>WSTXInitialisation</B></A> (implements javax.servlet.ServletContextListener)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/common/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/deploy/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicCommitException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicCommitException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicCommitException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+HeuristicCommitException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.HeuristicCommitException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="HeuristicCommitException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicCommitException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class HeuristicCommitException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.HeuristicCommitException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>HeuristicCommitException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if a participant or transaction commit when the request was to
+ roll back. Can only happen for a participant if it has received a
+ previous prepare message.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: HeuristicCommitException.java,v 1.1 2003/02/03 11:01:25 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.HeuristicCommitException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html#HeuristicCommitException()">HeuristicCommitException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html#HeuristicCommitException(java.lang.String)">HeuristicCommitException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="HeuristicCommitException()"><!-- --></A><H3>
+HeuristicCommitException</H3>
+<PRE>
+public <B>HeuristicCommitException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HeuristicCommitException(java.lang.String)"><!-- --></A><H3>
+HeuristicCommitException</H3>
+<PRE>
+public <B>HeuristicCommitException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicCommitException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicHazardException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicHazardException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicHazardException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+HeuristicHazardException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.HeuristicHazardException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="HeuristicHazardException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicHazardException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class HeuristicHazardException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.HeuristicHazardException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>HeuristicHazardException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the outcome of at least one participant is unknown.
+ Can only happen for a participant if it has received a
+ previous prepare message.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: HeuristicHazardException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.HeuristicHazardException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html#HeuristicHazardException()">HeuristicHazardException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html#HeuristicHazardException(java.lang.String)">HeuristicHazardException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="HeuristicHazardException()"><!-- --></A><H3>
+HeuristicHazardException</H3>
+<PRE>
+public <B>HeuristicHazardException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HeuristicHazardException(java.lang.String)"><!-- --></A><H3>
+HeuristicHazardException</H3>
+<PRE>
+public <B>HeuristicHazardException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicHazardException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicMixedException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicMixedException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicMixedException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+HeuristicMixedException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.HeuristicMixedException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="HeuristicMixedException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicMixedException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class HeuristicMixedException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.HeuristicMixedException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>HeuristicMixedException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if some of the participants commit while others rollback.
+ Can only happen for a participant if it has received a
+ previous prepare message.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: HeuristicMixedException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.HeuristicMixedException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html#HeuristicMixedException()">HeuristicMixedException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html#HeuristicMixedException(java.lang.String)">HeuristicMixedException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="HeuristicMixedException()"><!-- --></A><H3>
+HeuristicMixedException</H3>
+<PRE>
+public <B>HeuristicMixedException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HeuristicMixedException(java.lang.String)"><!-- --></A><H3>
+HeuristicMixedException</H3>
+<PRE>
+public <B>HeuristicMixedException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicMixedException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+HeuristicRollbackException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.HeuristicRollbackException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="HeuristicRollbackException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicRollbackException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class HeuristicRollbackException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.HeuristicRollbackException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>HeuristicRollbackException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the participants rolled back when the request was to commit.
+ Can only happen for a participant if it has received a
+ previous prepare message.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: HeuristicRollbackException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.HeuristicRollbackException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html#HeuristicRollbackException()">HeuristicRollbackException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html#HeuristicRollbackException(java.lang.String)">HeuristicRollbackException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="HeuristicRollbackException()"><!-- --></A><H3>
+HeuristicRollbackException</H3>
+<PRE>
+public <B>HeuristicRollbackException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HeuristicRollbackException(java.lang.String)"><!-- --></A><H3>
+HeuristicRollbackException</H3>
+<PRE>
+public <B>HeuristicRollbackException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HeuristicRollbackException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/SystemException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/SystemException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/SystemException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+SystemException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.SystemException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SystemException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/SystemException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SystemException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class SystemException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.SystemException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>SystemException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction is unknown.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: SystemException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.SystemException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html#SystemException()">SystemException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html#SystemException(java.lang.String)">SystemException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="SystemException()"><!-- --></A><H3>
+SystemException</H3>
+<PRE>
+public <B>SystemException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="SystemException(java.lang.String)"><!-- --></A><H3>
+SystemException</H3>
+<PRE>
+public <B>SystemException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/SystemException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SystemException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+TransactionRolledBackException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.TransactionRolledBackException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TransactionRolledBackException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionRolledBackException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class TransactionRolledBackException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.TransactionRolledBackException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TransactionRolledBackException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction rolls back rather than commits.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: TransactionRolledBackException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.TransactionRolledBackException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html#TransactionRolledBackException()">TransactionRolledBackException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html#TransactionRolledBackException(java.lang.String)">TransactionRolledBackException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TransactionRolledBackException()"><!-- --></A><H3>
+TransactionRolledBackException</H3>
+<PRE>
+public <B>TransactionRolledBackException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TransactionRolledBackException(java.lang.String)"><!-- --></A><H3>
+TransactionRolledBackException</H3>
+<PRE>
+public <B>TransactionRolledBackException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionRolledBackException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownParticipantException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownParticipantException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownParticipantException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+UnknownParticipantException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.UnknownParticipantException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UnknownParticipantException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UnknownParticipantException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class UnknownParticipantException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.UnknownParticipantException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>UnknownParticipantException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction is unknown.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: UnknownParticipantException.java,v 1.3 2004/03/15 13:25:16 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.UnknownParticipantException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html#UnknownParticipantException()">UnknownParticipantException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html#UnknownParticipantException(java.lang.String)">UnknownParticipantException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UnknownParticipantException()"><!-- --></A><H3>
+UnknownParticipantException</H3>
+<PRE>
+public <B>UnknownParticipantException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="UnknownParticipantException(java.lang.String)"><!-- --></A><H3>
+UnknownParticipantException</H3>
+<PRE>
+public <B>UnknownParticipantException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UnknownParticipantException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownTransactionException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownTransactionException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/UnknownTransactionException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+UnknownTransactionException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.UnknownTransactionException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UnknownTransactionException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UnknownTransactionException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class UnknownTransactionException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.UnknownTransactionException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>UnknownTransactionException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction is unknown.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: UnknownTransactionException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.UnknownTransactionException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html#UnknownTransactionException()">UnknownTransactionException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html#UnknownTransactionException(java.lang.String)">UnknownTransactionException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UnknownTransactionException()"><!-- --></A><H3>
+UnknownTransactionException</H3>
+<PRE>
+public <B>UnknownTransactionException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="UnknownTransactionException(java.lang.String)"><!-- --></A><H3>
+UnknownTransactionException</H3>
+<PRE>
+public <B>UnknownTransactionException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UnknownTransactionException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/WrongStateException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/WrongStateException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/WrongStateException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+WrongStateException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions.WrongStateException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="WrongStateException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/WrongStateException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="WrongStateException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.exceptions</FONT>
+<BR>
+Class WrongStateException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.exceptions.WrongStateException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>WrongStateException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction is unknown.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: WrongStateException.java,v 1.1 2003/02/03 11:01:26 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.arjuna.mw.wst.exceptions.WrongStateException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html#WrongStateException()">WrongStateException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html#WrongStateException(java.lang.String)">WrongStateException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="WrongStateException()"><!-- --></A><H3>
+WrongStateException</H3>
+<PRE>
+public <B>WrongStateException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="WrongStateException(java.lang.String)"><!-- --></A><H3>
+WrongStateException</H3>
+<PRE>
+public <B>WrongStateException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/WrongStateException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="WrongStateException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.exceptions
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-summary.html" target="classFrame">com.arjuna.mw.wst.exceptions</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicCommitException</A>
+<BR>
+<A HREF="HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicHazardException</A>
+<BR>
+<A HREF="HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicMixedException</A>
+<BR>
+<A HREF="HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">HeuristicRollbackException</A>
+<BR>
+<A HREF="SystemException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">SystemException</A>
+<BR>
+<A HREF="TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">TransactionRolledBackException</A>
+<BR>
+<A HREF="UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">UnknownParticipantException</A>
+<BR>
+<A HREF="UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">UnknownTransactionException</A>
+<BR>
+<A HREF="WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions" target="classFrame">WrongStateException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.exceptions
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.exceptions package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.exceptions";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.exceptions
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicCommitException</A></B></TD>
+<TD>Thrown if a participant or transaction commit when the request was to
+ roll back.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A></B></TD>
+<TD>Thrown if the outcome of at least one participant is unknown.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A></B></TD>
+<TD>Thrown if some of the participants commit while others rollback.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A></B></TD>
+<TD>Thrown if the participants rolled back when the request was to commit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></B></TD>
+<TD>Thrown if the transaction is unknown.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions">TransactionRolledBackException</A></B></TD>
+<TD>Thrown if the transaction rolls back rather than commits.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A></B></TD>
+<TD>Thrown if the transaction is unknown.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></B></TD>
+<TD>Thrown if the transaction is unknown.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></B></TD>
+<TD>Thrown if the transaction is unknown.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/exceptions/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.exceptions Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.exceptions Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.exceptions
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicCommitException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicHazardException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicMixedException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicRollbackException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in !
 com.arjuna.mw.wst.exceptions"><B>SystemException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>TransactionRolledBackException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>UnknownParticipantException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>UnknownTransactionException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions"><B>WrongStateException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/deploy/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/exceptions/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/arjuna/mw/wst/package-summary.html" target="classFrame">com.arjuna.mw.wst</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BAParticipantManager.html" title="interface in com.arjuna.mw.wst" target="classFrame"><I>BAParticipantManager</I></A>
+<BR>
+<A HREF="Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst" target="classFrame"><I>Durable2PCCoordinator</I></A>
+<BR>
+<A HREF="TxContext.html" title="interface in com.arjuna.mw.wst" target="classFrame"><I>TxContext</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BusinessActivityManager.html" title="class in com.arjuna.mw.wst" target="classFrame">BusinessActivityManager</A>
+<BR>
+<A HREF="BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">BusinessActivityManagerFactory</A>
+<BR>
+<A HREF="TransactionManager.html" title="class in com.arjuna.mw.wst" target="classFrame">TransactionManager</A>
+<BR>
+<A HREF="TransactionManagerFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">TransactionManagerFactory</A>
+<BR>
+<A HREF="UserBusinessActivity.html" title="class in com.arjuna.mw.wst" target="classFrame">UserBusinessActivity</A>
+<BR>
+<A HREF="UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">UserBusinessActivityFactory</A>
+<BR>
+<A HREF="UserTransaction.html" title="class in com.arjuna.mw.wst" target="classFrame">UserTransaction</A>
+<BR>
+<A HREF="UserTransactionFactory.html" title="class in com.arjuna.mw.wst" target="classFrame">UserTransactionFactory</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/client/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst">BAParticipantManager</A></B></TD>
+<TD>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.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst">Durable2PCCoordinator</A></B></TD>
+<TD>Allows a durable 2PC participant to rollback or send readonly
+ before the coordinator initiates the protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A></B></TD>
+<TD>This class represents a handle on a stack of transactions.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A></B></TD>
+<TD>This is the interface that the core exposes in order to allow different
+ types of participants to be enrolled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst">BusinessActivityManagerFactory</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A></B></TD>
+<TD>This is the interface that the core exposes in order to allow different
+ types of participants to be enrolled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst">TransactionManagerFactory</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A></B></TD>
+<TD>This is the interface that allows BAs to be started and terminated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst">UserBusinessActivityFactory</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A></B></TD>
+<TD>This is the interface that allows transactions to be started and terminated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst">UserTransactionFactory</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/client/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/client/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>BusinessActivityManager</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>BusinessActivityManagerFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>TransactionManager</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>TransactionManagerFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>UserBusinessActivity</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="!
 class in com.arjuna.mw.wst"><B>UserBusinessActivityFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>UserTransaction</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst"><B>UserTransactionFactory</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst"><B>BAParticipantManager</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>Durable2PCCoordinator</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="../../../../com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>TxContext</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/mw/wst/client/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/mw/wst/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreement.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreement.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreement.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+BusinessAgreement
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.BusinessAgreement interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessAgreement";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/BusinessAgreement.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreement.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface BusinessAgreement</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreementWithComplete</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BusinessAgreement</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#compensate()">compensate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#forget()">forget</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#identifier()">identifier</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+void <B>close</B>()
+           throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                  <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                  <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+void <B>cancel</B>()
+            throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate()"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+void <B>compensate</B>()
+                throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                       <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                       <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="forget()"><!-- --></A><H3>
+forget</H3>
+<PRE>
+void <B>forget</B>()
+            throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="identifier()"><!-- --></A><H3>
+identifier</H3>
+<PRE>
+java.lang.String <B>identifier</B>()
+                            throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/BusinessAgreement.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreement.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+BusinessAgreementWithComplete
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.BusinessAgreementWithComplete interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessAgreementWithComplete";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithComplete.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface BusinessAgreementWithComplete</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BusinessAgreementWithComplete</B><DT>extends <A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.mw.wst.resources.BusinessAgreement"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#cancel()">cancel</A>, <A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#close()">close</A>, <A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#compensate()">compensate</A>, <A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#forget()">forget</A>, <A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html#identifier()">identifier</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+void <B>complete</B>()
+              throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithComplete.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+CompletionParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.CompletionParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CompletionParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/CompletionParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface CompletionParticipant</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionWithAckParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>CompletionParticipant</B></DL>
+</PRE>
+
+<P>
+The CompletionParticipant.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html#aborted()">aborted</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html#committed()">committed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="committed()"><!-- --></A><H3>
+committed</H3>
+<PRE>
+void <B>committed</B>()
+               throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                      <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="aborted()"><!-- --></A><H3>
+aborted</H3>
+<PRE>
+void <B>aborted</B>()
+             throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                    <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/CompletionParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+CompletionWithAckParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.CompletionWithAckParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CompletionWithAckParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionWithAckParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface CompletionWithAckParticipant</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>CompletionWithAckParticipant</B><DT>extends <A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionParticipant</A></DL>
+</PRE>
+
+<P>
+The CompletionWithAckParticipant. The signature is essentially the same
+ as the CompletionParticipant, but we may want to be able to differentiate
+ between the two types internally. Hence the two distinct interfaces.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.mw.wst.resources.CompletionParticipant"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionParticipant</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html#aborted()">aborted</A>, <A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html#committed()">committed</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionWithAckParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+OutcomeNotificationParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.OutcomeNotificationParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="OutcomeNotificationParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="OutcomeNotificationParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface OutcomeNotificationParticipant</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>OutcomeNotificationParticipant</B></DL>
+</PRE>
+
+<P>
+The OutcomeNotificationParticipant. Essentially the second half of the
+ traditional Synchronization.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html#aborted()">aborted</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html#committed()">committed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="committed()"><!-- --></A><H3>
+committed</H3>
+<PRE>
+void <B>committed</B>()
+               throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                      <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="aborted()"><!-- --></A><H3>
+aborted</H3>
+<PRE>
+void <B>aborted</B>()
+             throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                    <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="OutcomeNotificationParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/PhaseZeroParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/PhaseZeroParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/PhaseZeroParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+PhaseZeroParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.PhaseZeroParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="PhaseZeroParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PhaseZeroParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface PhaseZeroParticipant</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>PhaseZeroParticipant</B></DL>
+</PRE>
+
+<P>
+The PhaseZeroParticipant. This is half of a traditional Synchronization
+ interface.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html#phaseZero()">phaseZero</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="phaseZero()"><!-- --></A><H3>
+phaseZero</H3>
+<PRE>
+void <B>phaseZero</B>()
+               throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                      <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PhaseZeroParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/TwoPhaseParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/TwoPhaseParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/TwoPhaseParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+TwoPhaseParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources.TwoPhaseParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TwoPhaseParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TwoPhaseParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.resources</FONT>
+<BR>
+Interface TwoPhaseParticipant</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>TwoPhaseParticipant</B></DL>
+</PRE>
+
+<P>
+The TwoPhaseParticipant. As with all traditional TP implementations, the
+ one-phase commit optimisation is supported.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#commitOnePhase()">commitOnePhase</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#prepare()">prepare</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="prepare()"><!-- --></A><H3>
+prepare</H3>
+<PRE>
+<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A> <B>prepare</B>()
+             throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                    <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>,
+                    <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>,
+                    <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                    <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+void <B>commit</B>()
+            throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                   <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+void <B>rollback</B>()
+              throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicCommitException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                     <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicCommitException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commitOnePhase()"><!-- --></A><H3>
+commitOnePhase</H3>
+<PRE>
+void <B>commitOnePhase</B>()
+                    throws <A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>,
+                           <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>,
+                           <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>,
+                           <A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A>,
+                           <A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>,
+                           <A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../../com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TwoPhaseParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.resources
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/resources/package-summary.html" target="classFrame">com.arjuna.mw.wst.resources</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>BusinessAgreement</I></A>
+<BR>
+<A HREF="BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>BusinessAgreementWithComplete</I></A>
+<BR>
+<A HREF="CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>CompletionParticipant</I></A>
+<BR>
+<A HREF="CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>CompletionWithAckParticipant</I></A>
+<BR>
+<A HREF="OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>OutcomeNotificationParticipant</I></A>
+<BR>
+<A HREF="PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>PhaseZeroParticipant</I></A>
+<BR>
+<A HREF="TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources" target="classFrame"><I>TwoPhaseParticipant</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.resources
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.resources package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.resources";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.resources
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreementWithComplete</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionParticipant</A></B></TD>
+<TD>The CompletionParticipant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionWithAckParticipant</A></B></TD>
+<TD>The CompletionWithAckParticipant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources">OutcomeNotificationParticipant</A></B></TD>
+<TD>The OutcomeNotificationParticipant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources">PhaseZeroParticipant</A></B></TD>
+<TD>The PhaseZeroParticipant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources">TwoPhaseParticipant</A></B></TD>
+<TD>The TwoPhaseParticipant.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/resources/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.resources Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.resources Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.resources
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources"><B>BusinessAgreement</B></A><UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>BusinessAgreementWithComplete</B></A></UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>CompletionParticipant</B></A><UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>CompletionWithAckParticipant</B></A></UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>OutcomeNotificationParticipant</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PhaseZeroParticipant</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="../../../../../com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>TwoPhaseParticipant</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/exceptions/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/resources/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+GlueIncomingContextInterceptor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.service.GlueIncomingContextInterceptor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="GlueIncomingContextInterceptor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueIncomingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.service</FONT>
+<BR>
+Class GlueIncomingContextInterceptor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.service.GlueIncomingContextInterceptor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>GlueIncomingContextInterceptor</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html#GlueIncomingContextInterceptor()">GlueIncomingContextInterceptor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)">intercept</A></B>(electric.soap.SOAPMessage&nbsp;soapMessage,
+          electric.util.Context&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="GlueIncomingContextInterceptor()"><!-- --></A><H3>
+GlueIncomingContextInterceptor</H3>
+<PRE>
+public <B>GlueIncomingContextInterceptor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="intercept(electric.soap.SOAPMessage, electric.util.Context)"><!-- --></A><H3>
+intercept</H3>
+<PRE>
+public void <B>intercept</B>(electric.soap.SOAPMessage&nbsp;soapMessage,
+                      electric.util.Context&nbsp;messageContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueIncomingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+GlueOutgoingContextInterceptor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="GlueOutgoingContextInterceptor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueOutgoingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.service</FONT>
+<BR>
+Class GlueOutgoingContextInterceptor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.service.GlueOutgoingContextInterceptor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>GlueOutgoingContextInterceptor</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html#GlueOutgoingContextInterceptor()">GlueOutgoingContextInterceptor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)">intercept</A></B>(electric.soap.SOAPMessage&nbsp;soapMessage,
+          electric.util.Context&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="GlueOutgoingContextInterceptor()"><!-- --></A><H3>
+GlueOutgoingContextInterceptor</H3>
+<PRE>
+public <B>GlueOutgoingContextInterceptor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="intercept(electric.soap.SOAPMessage, electric.util.Context)"><!-- --></A><H3>
+intercept</H3>
+<PRE>
+public void <B>intercept</B>(electric.soap.SOAPMessage&nbsp;soapMessage,
+                      electric.util.Context&nbsp;messageContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GlueOutgoingContextInterceptor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+JaxRPCHeaderContextProcessor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.service.JaxRPCHeaderContextProcessor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="JaxRPCHeaderContextProcessor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxRPCHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.service</FONT>
+<BR>
+Class JaxRPCHeaderContextProcessor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.service.JaxRPCHeaderContextProcessor</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>javax.xml.rpc.handler.Handler</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>JaxRPCHeaderContextProcessor</B><DT>extends java.lang.Object<DT>implements javax.xml.rpc.handler.Handler</DL>
+</PRE>
+
+<P>
+The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxRPC.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#JaxRPCHeaderContextProcessor()">JaxRPCHeaderContextProcessor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#destroy()">destroy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroy the handler.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;javax.xml.namespace.QName[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#getHeaders()">getHeaders</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the headers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleFault(javax.xml.rpc.handler.MessageContext)">handleFault</A></B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleInboundMessage(javax.xml.soap.SOAPMessage)">handleInboundMessage</A></B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleRequest(javax.xml.rpc.handler.MessageContext)">handleRequest</A></B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleResponse(javax.xml.rpc.handler.MessageContext)">handleResponse</A></B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the response.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#init(javax.xml.rpc.handler.HandlerInfo)">init</A></B>(javax.xml.rpc.handler.HandlerInfo&nbsp;handlerInfo)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialise the handler information.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#suspendTransaction()">suspendTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suspend the current transaction.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="JaxRPCHeaderContextProcessor()"><!-- --></A><H3>
+JaxRPCHeaderContextProcessor</H3>
+<PRE>
+public <B>JaxRPCHeaderContextProcessor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="init(javax.xml.rpc.handler.HandlerInfo)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(javax.xml.rpc.handler.HandlerInfo&nbsp;handlerInfo)</PRE>
+<DL>
+<DD>Initialise the handler information.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>init</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>handlerInfo</CODE> - The handler information.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="destroy()"><!-- --></A><H3>
+destroy</H3>
+<PRE>
+public void <B>destroy</B>()</PRE>
+<DL>
+<DD>Destroy the handler.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>destroy</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHeaders()"><!-- --></A><H3>
+getHeaders</H3>
+<PRE>
+public javax.xml.namespace.QName[] <B>getHeaders</B>()</PRE>
+<DL>
+<DD>Get the headers.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getHeaders</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the headers.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleRequest(javax.xml.rpc.handler.MessageContext)"><!-- --></A><H3>
+handleRequest</H3>
+<PRE>
+public boolean <B>handleRequest</B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Handle the request.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>handleRequest</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleResponse(javax.xml.rpc.handler.MessageContext)"><!-- --></A><H3>
+handleResponse</H3>
+<PRE>
+public boolean <B>handleResponse</B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Handle the response.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>handleResponse</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleFault(javax.xml.rpc.handler.MessageContext)"><!-- --></A><H3>
+handleFault</H3>
+<PRE>
+public boolean <B>handleFault</B>(javax.xml.rpc.handler.MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Handle the fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>handleFault</CODE> in interface <CODE>javax.xml.rpc.handler.Handler</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInboundMessage(javax.xml.soap.SOAPMessage)"><!-- --></A><H3>
+handleInboundMessage</H3>
+<PRE>
+protected boolean <B>handleInboundMessage</B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</PRE>
+<DL>
+<DD>Handle the request.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapMessage</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suspendTransaction()"><!-- --></A><H3>
+suspendTransaction</H3>
+<PRE>
+protected void <B>suspendTransaction</B>()</PRE>
+<DL>
+<DD>Suspend the current transaction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxRPCHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,426 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+JaxWSHeaderContextProcessor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="JaxWSHeaderContextProcessor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxWSHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.service</FONT>
+<BR>
+Class JaxWSHeaderContextProcessor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.service.JaxWSHeaderContextProcessor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>JaxWSHeaderContextProcessor</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+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.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#JaxWSHeaderContextProcessor()">JaxWSHeaderContextProcessor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#close(MessageContext)">close</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Set&lt;javax.xml.namespace.QName&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#getHeaders()">getHeaders</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the header blocks that can be processed by this Handler instance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleFault(MessageContext)">handleFault</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tidy up the Transaction/Thread association before faults are thrown back to the client.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleInbound(MessageContext)">handleInbound</A></B>(MessageContext&nbsp;msgContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process the tx context header that is attached to the received message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleInboundMessage(javax.xml.soap.SOAPMessage)">handleInboundMessage</A></B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleMessage(MessageContext)">handleMessage</A></B>(MessageContext&nbsp;msgContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process a message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleOutbound(MessageContext)">handleOutbound</A></B>(MessageContext&nbsp;messageContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tidy up the Transaction/Thread association before response is returned to the client.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#setHeaders(java.util.Set)">setHeaders</A></B>(java.util.Set&nbsp;headers)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the header blocks that can be processed by this Handler instance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#suspendTransaction()">suspendTransaction</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suspend the current transaction.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="JaxWSHeaderContextProcessor()"><!-- --></A><H3>
+JaxWSHeaderContextProcessor</H3>
+<PRE>
+public <B>JaxWSHeaderContextProcessor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="handleMessage(MessageContext)"><!-- --></A><H3>
+handleMessage</H3>
+<PRE>
+public boolean <B>handleMessage</B>(MessageContext&nbsp;msgContext)</PRE>
+<DL>
+<DD>Process a message. Determines if it is inbound or outbound and dispatches accordingly.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>msgContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleFault(MessageContext)"><!-- --></A><H3>
+handleFault</H3>
+<PRE>
+public boolean <B>handleFault</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Tidy up the Transaction/Thread association before faults are thrown back to the client.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(MessageContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHeaders()"><!-- --></A><H3>
+getHeaders</H3>
+<PRE>
+public java.util.Set&lt;javax.xml.namespace.QName&gt; <B>getHeaders</B>()</PRE>
+<DL>
+<DD>Gets the header blocks that can be processed by this Handler instance.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setHeaders(java.util.Set)"><!-- --></A><H3>
+setHeaders</H3>
+<PRE>
+public void <B>setHeaders</B>(java.util.Set&nbsp;headers)</PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInbound(MessageContext)"><!-- --></A><H3>
+handleInbound</H3>
+<PRE>
+protected boolean <B>handleInbound</B>(MessageContext&nbsp;msgContext)</PRE>
+<DL>
+<DD>Process the tx context header that is attached to the received message.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>msgContext</CODE> - 
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleOutbound(MessageContext)"><!-- --></A><H3>
+handleOutbound</H3>
+<PRE>
+protected boolean <B>handleOutbound</B>(MessageContext&nbsp;messageContext)</PRE>
+<DL>
+<DD>Tidy up the Transaction/Thread association before response is returned to the client.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>messageContext</CODE> - The current message context.
+<DT><B>Returns:</B><DD>true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInboundMessage(javax.xml.soap.SOAPMessage)"><!-- --></A><H3>
+handleInboundMessage</H3>
+<PRE>
+protected boolean <B>handleInboundMessage</B>(javax.xml.soap.SOAPMessage&nbsp;soapMessage)</PRE>
+<DL>
+<DD>Handle the request.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapMessage</CODE> - The current message context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suspendTransaction()"><!-- --></A><H3>
+suspendTransaction</H3>
+<PRE>
+protected void <B>suspendTransaction</B>()</PRE>
+<DL>
+<DD>Suspend the current transaction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="JaxWSHeaderContextProcessor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.service
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.service package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/service/package-summary.html" target="classFrame">com.arjuna.mw.wst.service</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">GlueIncomingContextInterceptor</A>
+<BR>
+<A HREF="GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">GlueOutgoingContextInterceptor</A>
+<BR>
+<A HREF="JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">JaxRPCHeaderContextProcessor</A>
+<BR>
+<A HREF="JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service" target="classFrame">JaxWSHeaderContextProcessor</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.service
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.service package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.service";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.service
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueIncomingContextInterceptor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueOutgoingContextInterceptor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxRPC.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A></B></TD>
+<TD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxWS.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/service/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.service Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.service Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.service
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="../../../../../com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>GlueIncomingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="../../../../../com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>GlueOutgoingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="../../../../../com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>JaxRPCHeaderContextProcessor</B></A> (implements javax.xml.rpc.handler.Handler)
+<LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="../../../../../com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>JaxWSHeaderContextProcessor</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/resources/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/service/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Aborted.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Aborted.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Aborted.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Aborted
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.vote.Aborted class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Aborted";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/Aborted.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Aborted.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.vote</FONT>
+<BR>
+Class Aborted</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.vote.Aborted</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Aborted</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></DL>
+</PRE>
+
+<P>
+Aborted: the participant has aborted and the transaction should also
+ attempt to do so.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/vote/Aborted.html#Aborted()">Aborted</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Aborted()"><!-- --></A><H3>
+Aborted</H3>
+<PRE>
+public <B>Aborted</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/Aborted.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Aborted.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Prepared.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Prepared.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Prepared.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Prepared
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.vote.Prepared class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Prepared";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/Prepared.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Prepared.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.vote</FONT>
+<BR>
+Class Prepared</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.vote.Prepared</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Prepared</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></DL>
+</PRE>
+
+<P>
+Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html#Prepared()">Prepared</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Prepared()"><!-- --></A><H3>
+Prepared</H3>
+<PRE>
+public <B>Prepared</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/Prepared.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Prepared.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/ReadOnly.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/ReadOnly.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/ReadOnly.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+ReadOnly
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.vote.ReadOnly class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ReadOnly";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/ReadOnly.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReadOnly.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.vote</FONT>
+<BR>
+Class ReadOnly</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.mw.wst.vote.ReadOnly</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ReadOnly</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></DL>
+</PRE>
+
+<P>
+ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html#ReadOnly()">ReadOnly</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ReadOnly()"><!-- --></A><H3>
+ReadOnly</H3>
+<PRE>
+public <B>ReadOnly</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/ReadOnly.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReadOnly.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Vote.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Vote.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/Vote.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Vote
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.vote.Vote interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Vote";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/Vote.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Vote.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.mw.wst.vote</FONT>
+<BR>
+Interface Vote</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote">Aborted</A>, <A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote">Prepared</A>, <A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote">ReadOnly</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Vote</B></DL>
+</PRE>
+
+<P>
+When asked to prepare, a 2PC participant returns one of three types of
+ vote:
+
+ ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.
+ Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.
+ Aborted: the participant has aborted and the transaction should also
+ attempt to do so.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/Vote.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Vote.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.vote
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.vote package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/mw/wst/vote/package-summary.html" target="classFrame">com.arjuna.mw.wst.vote</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Vote.html" title="interface in com.arjuna.mw.wst.vote" target="classFrame"><I>Vote</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Aborted.html" title="class in com.arjuna.mw.wst.vote" target="classFrame">Aborted</A>
+<BR>
+<A HREF="Prepared.html" title="class in com.arjuna.mw.wst.vote" target="classFrame">Prepared</A>
+<BR>
+<A HREF="ReadOnly.html" title="class in com.arjuna.mw.wst.vote" target="classFrame">ReadOnly</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.vote
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.mw.wst.vote package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.vote";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.mw.wst.vote
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A></B></TD>
+<TD>When asked to prepare, a 2PC participant returns one of three types of
+ vote:
+
+ ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote">Aborted</A></B></TD>
+<TD>Aborted: the participant has aborted and the transaction should also
+ attempt to do so.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote">Prepared</A></B></TD>
+<TD>Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote">ReadOnly</A></B></TD>
+<TD>ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/mw/wst/vote/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.mw.wst.vote Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.mw.wst.vote Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.mw.wst.vote
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote"><B>Aborted</B></A> (implements com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A>)
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>Prepared</B></A> (implements com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A>)
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>ReadOnly</B></A> (implements com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A>)
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="../../../../../com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote"><B>Vote</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/mw/wst/service/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/mw/wst/vote/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ActivationCoordinator.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ActivationCoordinator.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ActivationCoordinator.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+ActivationCoordinator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.ActivationCoordinator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ActivationCoordinator";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/ActivationCoordinator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ActivationCoordinator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class ActivationCoordinator</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.ActivationCoordinator</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ActivationCoordinator</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Wrapper around low level Activation Coordinator messaging.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ActivationCoordinator.html#ActivationCoordinator()">ActivationCoordinator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;com.arjuna.webservices.wscoor.CoordinationContextType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ActivationCoordinator.html#createCoordinationContext(java.lang.String, java.lang.String, java.lang.String, java.lang.Long, com.arjuna.webservices.wscoor.CoordinationContextType)">createCoordinationContext</A></B>(java.lang.String&nbsp;activationCoordinatorURI,
+                          java.lang.String&nbsp;messageID,
+                          java.lang.String&nbsp;coordinationTypeURI,
+                          java.lang.Long&nbsp;expires,
+                          com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;currentContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create the coordination context.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ActivationCoordinator()"><!-- --></A><H3>
+ActivationCoordinator</H3>
+<PRE>
+public <B>ActivationCoordinator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="createCoordinationContext(java.lang.String, java.lang.String, java.lang.String, java.lang.Long, com.arjuna.webservices.wscoor.CoordinationContextType)"><!-- --></A><H3>
+createCoordinationContext</H3>
+<PRE>
+public static com.arjuna.webservices.wscoor.CoordinationContextType <B>createCoordinationContext</B>(java.lang.String&nbsp;activationCoordinatorURI,
+                                                                                              java.lang.String&nbsp;messageID,
+                                                                                              java.lang.String&nbsp;coordinationTypeURI,
+                                                                                              java.lang.Long&nbsp;expires,
+                                                                                              com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;currentContext)
+                                                                                       throws <A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A>,
+                                                                                              com.arjuna.webservices.SoapFault</PRE>
+<DL>
+<DD>Create the coordination context.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>activationCoordinatorURI</CODE> - The URI of the activation coordinator.<DD><CODE>messageID</CODE> - The messageID to use.<DD><CODE>coordinationTypeURI</CODE> - The coordination type.<DD><CODE>expires</CODE> - The expiry time or null.<DD><CODE>currentContext</CODE> - The currnt context or null.
+<DT><B>Returns:</B><DD>The coordination context.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A></CODE> - if the create parameters are invalid.
+<DD><CODE>com.arjuna.webservices.SoapFault</CODE> - for errors during processing.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/ActivationCoordinator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ActivationCoordinator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/AlreadyRegisteredException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/AlreadyRegisteredException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/AlreadyRegisteredException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+AlreadyRegisteredException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.AlreadyRegisteredException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="AlreadyRegisteredException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/AlreadyRegisteredException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="AlreadyRegisteredException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class AlreadyRegisteredException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.AlreadyRegisteredException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>AlreadyRegisteredException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wsc.AlreadyRegisteredException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html#AlreadyRegisteredException()">AlreadyRegisteredException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html#AlreadyRegisteredException(java.lang.String)">AlreadyRegisteredException</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AlreadyRegisteredException()"><!-- --></A><H3>
+AlreadyRegisteredException</H3>
+<PRE>
+public <B>AlreadyRegisteredException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="AlreadyRegisteredException(java.lang.String)"><!-- --></A><H3>
+AlreadyRegisteredException</H3>
+<PRE>
+public <B>AlreadyRegisteredException</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/AlreadyRegisteredException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="AlreadyRegisteredException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactory.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactory.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactory.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+ContextFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.ContextFactory interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ContextFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/ContextFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ContextFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Interface ContextFactory</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ContextFactory</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wscoor.CoordinationContextType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactory.html#create(java.lang.String, java.lang.Long, com.arjuna.webservices.wscoor.CoordinationContextType)">create</A></B>(java.lang.String&nbsp;coordinationTypeURI,
+       java.lang.Long&nbsp;expires,
+       com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;currentContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a coordination context.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactory.html#install(java.lang.String)">install</A></B>(java.lang.String&nbsp;coordinationTypeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a context factory is added to a context factory mapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactory.html#uninstall(java.lang.String)">uninstall</A></B>(java.lang.String&nbsp;coordinationTypeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a context factory is removed from a context factory mapper.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="install(java.lang.String)"><!-- --></A><H3>
+install</H3>
+<PRE>
+void <B>install</B>(java.lang.String&nbsp;coordinationTypeURI)</PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationTypeURI</CODE> - the coordination type uri</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(java.lang.String, java.lang.Long, com.arjuna.webservices.wscoor.CoordinationContextType)"><!-- --></A><H3>
+create</H3>
+<PRE>
+com.arjuna.webservices.wscoor.CoordinationContextType <B>create</B>(java.lang.String&nbsp;coordinationTypeURI,
+                                                             java.lang.Long&nbsp;expires,
+                                                             com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;currentContext)
+                                                             throws <A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A></PRE>
+<DL>
+<DD>Creates a coordination context.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationTypeURI</CODE> - the coordination type uri<DD><CODE>expires</CODE> - the expire date/time for the returned context, can be null<DD><CODE>currentContext</CODE> - the current coordination context, can be null
+<DT><B>Returns:</B><DD>the created coordination context
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A></CODE> - if a parameter passed is invalid
+         this activity identifier</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="uninstall(java.lang.String)"><!-- --></A><H3>
+uninstall</H3>
+<PRE>
+void <B>uninstall</B>(java.lang.String&nbsp;coordinationTypeURI)</PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationTypeURI</CODE> - the coordination type uri</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/ContextFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ContextFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactoryMapper.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactoryMapper.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/ContextFactoryMapper.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+ContextFactoryMapper
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.ContextFactoryMapper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ContextFactoryMapper";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/ContextFactoryMapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ContextFactoryMapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class ContextFactoryMapper</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.ContextFactoryMapper</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ContextFactoryMapper</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The context factory mapper.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#ContextFactoryMapper()">ContextFactoryMapper</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default constructor</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#addContextFactory(java.lang.String, com.arjuna.wsc.ContextFactory)">addContextFactory</A></B>(java.lang.String&nbsp;coordinationTypeURI,
+                  <A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>&nbsp;contextFactory)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a context factory for the specified coordination type.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#getContextFactory(java.lang.String)">getContextFactory</A></B>(java.lang.String&nbsp;coordinationTypeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the context factory for the specified coordination type.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#getDefaultContextFactory()">getDefaultContextFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the default coordination factory.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#getFactory()">getFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the context factory mapper singleton.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#getSubordinateContextFactoryMapper()">getSubordinateContextFactoryMapper</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the subordinate coordination factory mapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#removeContextFactory(java.lang.String)">removeContextFactory</A></B>(java.lang.String&nbsp;coordinationTypeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the context factory for the specified coordination type.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#setDefaultContextFactory(com.arjuna.wsc.ContextFactory)">setDefaultContextFactory</A></B>(<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>&nbsp;defaultContextFactory)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the default coordination factory.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html#setSubordinateContextFactoryMapper(com.arjuna.wsc.ContextFactoryMapper)">setSubordinateContextFactoryMapper</A></B>(<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>&nbsp;subordinateContextFactoryMapper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a subordinate coordination factory mapper.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ContextFactoryMapper()"><!-- --></A><H3>
+ContextFactoryMapper</H3>
+<PRE>
+protected <B>ContextFactoryMapper</B>()</PRE>
+<DL>
+<DD>Default constructor
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getFactory()"><!-- --></A><H3>
+getFactory</H3>
+<PRE>
+public static <A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A> <B>getFactory</B>()</PRE>
+<DL>
+<DD>Get the context factory mapper singleton.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The context factory mapper singleton.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addContextFactory(java.lang.String, com.arjuna.wsc.ContextFactory)"><!-- --></A><H3>
+addContextFactory</H3>
+<PRE>
+public void <B>addContextFactory</B>(java.lang.String&nbsp;coordinationTypeURI,
+                              <A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>&nbsp;contextFactory)</PRE>
+<DL>
+<DD>Add a context factory for the specified coordination type.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationTypeURI</CODE> - The coordination type.<DD><CODE>contextFactory</CODE> - The context factory.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getContextFactory(java.lang.String)"><!-- --></A><H3>
+getContextFactory</H3>
+<PRE>
+public <A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A> <B>getContextFactory</B>(java.lang.String&nbsp;coordinationTypeURI)</PRE>
+<DL>
+<DD>Get the context factory for the specified coordination type.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationTypeURI</CODE> - The coordination type.
+<DT><B>Returns:</B><DD>The context factory.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeContextFactory(java.lang.String)"><!-- --></A><H3>
+removeContextFactory</H3>
+<PRE>
+public void <B>removeContextFactory</B>(java.lang.String&nbsp;coordinationTypeURI)</PRE>
+<DL>
+<DD>Remove the context factory for the specified coordination type.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationTypeURI</CODE> - The coordination type.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSubordinateContextFactoryMapper()"><!-- --></A><H3>
+getSubordinateContextFactoryMapper</H3>
+<PRE>
+public <A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A> <B>getSubordinateContextFactoryMapper</B>()</PRE>
+<DL>
+<DD>Get the subordinate coordination factory mapper.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The subordinate coordination factory mapper.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSubordinateContextFactoryMapper(com.arjuna.wsc.ContextFactoryMapper)"><!-- --></A><H3>
+setSubordinateContextFactoryMapper</H3>
+<PRE>
+public void <B>setSubordinateContextFactoryMapper</B>(<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>&nbsp;subordinateContextFactoryMapper)</PRE>
+<DL>
+<DD>Set a subordinate coordination factory mapper.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>subordinateContextFactoryMapper</CODE> - The subordinate coordination factory mapper.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDefaultContextFactory()"><!-- --></A><H3>
+getDefaultContextFactory</H3>
+<PRE>
+public <A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A> <B>getDefaultContextFactory</B>()</PRE>
+<DL>
+<DD>Get the default coordination factory.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The default coordination factory.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDefaultContextFactory(com.arjuna.wsc.ContextFactory)"><!-- --></A><H3>
+setDefaultContextFactory</H3>
+<PRE>
+public void <B>setDefaultContextFactory</B>(<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>&nbsp;defaultContextFactory)</PRE>
+<DL>
+<DD>Set the default coordination factory.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>defaultContextFactory</CODE> - The default coordination factory.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/ContextFactoryMapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ContextFactoryMapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidCreateParametersException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidCreateParametersException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidCreateParametersException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+InvalidCreateParametersException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.InvalidCreateParametersException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="InvalidCreateParametersException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/InvalidCreateParametersException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InvalidCreateParametersException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class InvalidCreateParametersException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.InvalidCreateParametersException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>InvalidCreateParametersException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wsc.InvalidCreateParametersException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html#InvalidCreateParametersException()">InvalidCreateParametersException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html#InvalidCreateParametersException(java.lang.String)">InvalidCreateParametersException</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="InvalidCreateParametersException()"><!-- --></A><H3>
+InvalidCreateParametersException</H3>
+<PRE>
+public <B>InvalidCreateParametersException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="InvalidCreateParametersException(java.lang.String)"><!-- --></A><H3>
+InvalidCreateParametersException</H3>
+<PRE>
+public <B>InvalidCreateParametersException</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/InvalidCreateParametersException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InvalidCreateParametersException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidProtocolException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidProtocolException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidProtocolException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+InvalidProtocolException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.InvalidProtocolException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="InvalidProtocolException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/InvalidProtocolException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InvalidProtocolException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class InvalidProtocolException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.InvalidProtocolException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>InvalidProtocolException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wsc.InvalidProtocolException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html#InvalidProtocolException()">InvalidProtocolException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html#InvalidProtocolException(java.lang.String)">InvalidProtocolException</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="InvalidProtocolException()"><!-- --></A><H3>
+InvalidProtocolException</H3>
+<PRE>
+public <B>InvalidProtocolException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="InvalidProtocolException(java.lang.String)"><!-- --></A><H3>
+InvalidProtocolException</H3>
+<PRE>
+public <B>InvalidProtocolException</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/InvalidProtocolException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InvalidProtocolException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidStateException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidStateException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/InvalidStateException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+InvalidStateException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.InvalidStateException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="InvalidStateException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/InvalidStateException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InvalidStateException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class InvalidStateException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.InvalidStateException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>InvalidStateException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wsc.InvalidStateException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/InvalidStateException.html#InvalidStateException()">InvalidStateException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/InvalidStateException.html#InvalidStateException(java.lang.String)">InvalidStateException</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="InvalidStateException()"><!-- --></A><H3>
+InvalidStateException</H3>
+<PRE>
+public <B>InvalidStateException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="InvalidStateException(java.lang.String)"><!-- --></A><H3>
+InvalidStateException</H3>
+<PRE>
+public <B>InvalidStateException</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/InvalidStateException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InvalidStateException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/NoActivityException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/NoActivityException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/NoActivityException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+NoActivityException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.NoActivityException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="NoActivityException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/NoActivityException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NoActivityException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class NoActivityException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.NoActivityException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>NoActivityException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wsc.NoActivityException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/NoActivityException.html#NoActivityException()">NoActivityException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/NoActivityException.html#NoActivityException(java.lang.String)">NoActivityException</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NoActivityException()"><!-- --></A><H3>
+NoActivityException</H3>
+<PRE>
+public <B>NoActivityException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="NoActivityException(java.lang.String)"><!-- --></A><H3>
+NoActivityException</H3>
+<PRE>
+public <B>NoActivityException</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/NoActivityException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NoActivityException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/Registrar.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/Registrar.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/Registrar.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+Registrar
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.Registrar interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Registrar";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/Registrar.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Registrar.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Interface Registrar</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Registrar</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/Registrar.html#install(java.lang.String)">install</A></B>(java.lang.String&nbsp;protocolIdentifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a registrar is added to a register mapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/Registrar.html#register(com.arjuna.webservices.wsaddr.EndpointReferenceType, java.lang.String, com.arjuna.webservices.wsarj.InstanceIdentifier)">register</A></B>(com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participantProtocolService,
+         java.lang.String&nbsp;protocolIdentifier,
+         com.arjuna.webservices.wsarj.InstanceIdentifier&nbsp;instanceIdentifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the interest of participant in a particular protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/Registrar.html#uninstall(java.lang.String)">uninstall</A></B>(java.lang.String&nbsp;protocolIdentifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a registrar is removed from a register mapper.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="install(java.lang.String)"><!-- --></A><H3>
+install</H3>
+<PRE>
+void <B>install</B>(java.lang.String&nbsp;protocolIdentifier)</PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>protocolIdentifier</CODE> - the protocol identifier</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="register(com.arjuna.webservices.wsaddr.EndpointReferenceType, java.lang.String, com.arjuna.webservices.wsarj.InstanceIdentifier)"><!-- --></A><H3>
+register</H3>
+<PRE>
+com.arjuna.webservices.wsaddr.EndpointReferenceType <B>register</B>(com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participantProtocolService,
+                                                             java.lang.String&nbsp;protocolIdentifier,
+                                                             com.arjuna.webservices.wsarj.InstanceIdentifier&nbsp;instanceIdentifier)
+                                                             throws <A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>,
+                                                                    <A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A>,
+                                                                    <A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A>,
+                                                                    <A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A></PRE>
+<DL>
+<DD>Registers the interest of participant in a particular protocol.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participantProtocolService</CODE> - the port reference of the participant protocol service<DD><CODE>protocolIdentifier</CODE> - the protocol identifier<DD><CODE>instanceIdentifier</CODE> - the instance identifier, this may be null
+<DT><B>Returns:</B><DD>the port reference of the coordinator protocol service
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></CODE> - if the participant is already registered for this coordination protocol under
+         this activity identifier
+<DD><CODE><A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A></CODE> - if the coordination protocol is not supported
+<DD><CODE><A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A></CODE> - if the state of the coordinator no longer allows registration for this
+         coordination protocol
+<DD><CODE><A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A></CODE> - if the actvity does not exist</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="uninstall(java.lang.String)"><!-- --></A><H3>
+uninstall</H3>
+<PRE>
+void <B>uninstall</B>(java.lang.String&nbsp;protocolIdentifier)</PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>protocolIdentifier</CODE> - the protocol identifier</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/Registrar.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Registrar.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrarMapper.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrarMapper.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrarMapper.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,328 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+RegistrarMapper
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.RegistrarMapper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RegistrarMapper";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/RegistrarMapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RegistrarMapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class RegistrarMapper</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.RegistrarMapper</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>RegistrarMapper</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The registrar mapper.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrarMapper.html#RegistrarMapper()">RegistrarMapper</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default constructor</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrarMapper.html#addRegistrar(java.lang.String, com.arjuna.wsc.Registrar)">addRegistrar</A></B>(java.lang.String&nbsp;protocolIdentifier,
+             <A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A>&nbsp;registrar)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a registrar for the specified protocol identifier.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrarMapper.html#getFactory()">getFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the registrar mapper singleton.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrarMapper.html#getRegistrar(java.lang.String)">getRegistrar</A></B>(java.lang.String&nbsp;protocolIdentifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the registrar for the specified protocol identifier.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrarMapper.html#removeRegistrar(java.lang.String)">removeRegistrar</A></B>(java.lang.String&nbsp;protocolIdentifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the registrar for the specified protocol identifier.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RegistrarMapper()"><!-- --></A><H3>
+RegistrarMapper</H3>
+<PRE>
+protected <B>RegistrarMapper</B>()</PRE>
+<DL>
+<DD>Default constructor
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getFactory()"><!-- --></A><H3>
+getFactory</H3>
+<PRE>
+public static <A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A> <B>getFactory</B>()</PRE>
+<DL>
+<DD>Get the registrar mapper singleton.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The registrar mapper singleton.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addRegistrar(java.lang.String, com.arjuna.wsc.Registrar)"><!-- --></A><H3>
+addRegistrar</H3>
+<PRE>
+public void <B>addRegistrar</B>(java.lang.String&nbsp;protocolIdentifier,
+                         <A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A>&nbsp;registrar)</PRE>
+<DL>
+<DD>Add a registrar for the specified protocol identifier.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>protocolIdentifier</CODE> - The protocol identifier.<DD><CODE>registrar</CODE> - The registrar.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRegistrar(java.lang.String)"><!-- --></A><H3>
+getRegistrar</H3>
+<PRE>
+public <A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A> <B>getRegistrar</B>(java.lang.String&nbsp;protocolIdentifier)</PRE>
+<DL>
+<DD>Get the registrar for the specified protocol identifier.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>protocolIdentifier</CODE> - The protocol identifier.
+<DT><B>Returns:</B><DD>The registrar.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeRegistrar(java.lang.String)"><!-- --></A><H3>
+removeRegistrar</H3>
+<PRE>
+public void <B>removeRegistrar</B>(java.lang.String&nbsp;protocolIdentifier)</PRE>
+<DL>
+<DD>Remove the registrar for the specified protocol identifier.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>protocolIdentifier</CODE> - The protocol identifier.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/RegistrarMapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RegistrarMapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrationCoordinator.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrationCoordinator.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/RegistrationCoordinator.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+RegistrationCoordinator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.RegistrationCoordinator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RegistrationCoordinator";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/RegistrationCoordinator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RegistrationCoordinator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc</FONT>
+<BR>
+Class RegistrationCoordinator</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.RegistrationCoordinator</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>RegistrationCoordinator</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Wrapper around low level Registration Coordinator messaging.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrationCoordinator.html#RegistrationCoordinator()">RegistrationCoordinator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wsc/RegistrationCoordinator.html#register(com.arjuna.webservices.wscoor.CoordinationContextType, java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, java.lang.String)">register</A></B>(com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;coordinationContext,
+         java.lang.String&nbsp;messageID,
+         com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participantProtocolService,
+         java.lang.String&nbsp;protocolIdentifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register the participant in the protocol.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RegistrationCoordinator()"><!-- --></A><H3>
+RegistrationCoordinator</H3>
+<PRE>
+public <B>RegistrationCoordinator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="register(com.arjuna.webservices.wscoor.CoordinationContextType, java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, java.lang.String)"><!-- --></A><H3>
+register</H3>
+<PRE>
+public static com.arjuna.webservices.wsaddr.EndpointReferenceType <B>register</B>(com.arjuna.webservices.wscoor.CoordinationContextType&nbsp;coordinationContext,
+                                                                           java.lang.String&nbsp;messageID,
+                                                                           com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participantProtocolService,
+                                                                           java.lang.String&nbsp;protocolIdentifier)
+                                                                    throws <A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>,
+                                                                           <A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A>,
+                                                                           <A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A>,
+                                                                           <A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A>,
+                                                                           com.arjuna.webservices.SoapFault</PRE>
+<DL>
+<DD>Register the participant in the protocol.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinationContext</CODE> - The current coordination context<DD><CODE>messageID</CODE> - The messageID to use.<DD><CODE>participantProtocolService</CODE> - The participant protocol service.<DD><CODE>protocolIdentifier</CODE> - The protocol identifier.
+<DT><B>Returns:</B><DD>The endpoint reference of the coordinator protocol service.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></CODE> - If the participant is already registered.
+<DD><CODE><A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A></CODE> - If the protocol is unsupported.
+<DD><CODE><A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A></CODE> - If the state is invalid
+<DD><CODE><A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A></CODE> - If there is to activity context active.
+<DD><CODE>com.arjuna.webservices.SoapFault</CODE> - for errors during processing.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/RegistrationCoordinator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RegistrationCoordinator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+ActivationCoordinatorProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ActivationCoordinatorProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ActivationCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc.messaging</FONT>
+<BR>
+Class ActivationCoordinatorProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ActivationCoordinatorProcessorImpl</B><DT>extends com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Activation Coordinator processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html#ActivationCoordinatorProcessorImpl()">ActivationCoordinatorProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html#createCoordinationContext(com.arjuna.webservices.wscoor.CreateCoordinationContextType, com.arjuna.webservices.wsaddr.AddressingContext)">createCoordinationContext</A></B>(com.arjuna.webservices.wscoor.CreateCoordinationContextType&nbsp;createCoordinationContext,
+                          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create the coordination context.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getCoordinator, setCoordinator</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ActivationCoordinatorProcessorImpl()"><!-- --></A><H3>
+ActivationCoordinatorProcessorImpl</H3>
+<PRE>
+public <B>ActivationCoordinatorProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="createCoordinationContext(com.arjuna.webservices.wscoor.CreateCoordinationContextType, com.arjuna.webservices.wsaddr.AddressingContext)"><!-- --></A><H3>
+createCoordinationContext</H3>
+<PRE>
+public void <B>createCoordinationContext</B>(com.arjuna.webservices.wscoor.CreateCoordinationContextType&nbsp;createCoordinationContext,
+                                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext)</PRE>
+<DL>
+<DD>Create the coordination context.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>createCoordinationContext</CODE> in class <CODE>com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>createCoordinationContext</CODE> - The create coordination context request.<DD><CODE>addressingContext</CODE> - The addressing context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ActivationCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/MessageId.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/MessageId.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/MessageId.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+MessageId
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging.MessageId class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="MessageId";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/MessageId.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageId.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc.messaging</FONT>
+<BR>
+Class MessageId</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.messaging.MessageId</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>MessageId</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+A simple message id generator, used when UID is inaccessible.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html#getMessageId()">getMessageId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the next message identifier.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getMessageId()"><!-- --></A><H3>
+getMessageId</H3>
+<PRE>
+public static java.lang.String <B>getMessageId</B>()</PRE>
+<DL>
+<DD>Get the next message identifier.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The next message identifier.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/MessageId.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageId.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+RegistrationCoordinatorProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RegistrationCoordinatorProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RegistrationCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc.messaging</FONT>
+<BR>
+Class RegistrationCoordinatorProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>RegistrationCoordinatorProcessorImpl</B><DT>extends com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Registration Coordinator processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html#RegistrationCoordinatorProcessorImpl()">RegistrationCoordinatorProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html#register(com.arjuna.webservices.wscoor.RegisterType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">register</A></B>(com.arjuna.webservices.wscoor.RegisterType&nbsp;register,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register the participant in the protocol.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getCoordinator, setCoordinator</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RegistrationCoordinatorProcessorImpl()"><!-- --></A><H3>
+RegistrationCoordinatorProcessorImpl</H3>
+<PRE>
+public <B>RegistrationCoordinatorProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="register(com.arjuna.webservices.wscoor.RegisterType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+register</H3>
+<PRE>
+public void <B>register</B>(com.arjuna.webservices.wscoor.RegisterType&nbsp;register,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Register the participant in the protocol.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>register</CODE> in class <CODE>com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>register</CODE> - The register request.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RegistrationCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:34 GMT 2007 -->
+<TITLE>
+CoordinationInitialisation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging.deploy.CoordinationInitialisation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinationInitialisation";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinationInitialisation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wsc.messaging.deploy</FONT>
+<BR>
+Class CoordinationInitialisation</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wsc.messaging.deploy.CoordinationInitialisation</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.EventListener, javax.servlet.ServletContextListener</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinationInitialisation</B><DT>extends java.lang.Object<DT>implements javax.servlet.ServletContextListener</DL>
+</PRE>
+
+<P>
+Initialise the coordination services.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html#CoordinationInitialisation()">CoordinationInitialisation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html#contextDestroyed(javax.servlet.ServletContextEvent)">contextDestroyed</A></B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The context is about to be destroyed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html#contextInitialized(javax.servlet.ServletContextEvent)">contextInitialized</A></B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The context has been initialized.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinationInitialisation()"><!-- --></A><H3>
+CoordinationInitialisation</H3>
+<PRE>
+public <B>CoordinationInitialisation</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="contextInitialized(javax.servlet.ServletContextEvent)"><!-- --></A><H3>
+contextInitialized</H3>
+<PRE>
+public void <B>contextInitialized</B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</PRE>
+<DL>
+<DD>The context has been initialized.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>contextInitialized</CODE> in interface <CODE>javax.servlet.ServletContextListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>servletContextEvent</CODE> - The servlet context event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contextDestroyed(javax.servlet.ServletContextEvent)"><!-- --></A><H3>
+contextDestroyed</H3>
+<PRE>
+public void <B>contextDestroyed</B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</PRE>
+<DL>
+<DD>The context is about to be destroyed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>contextDestroyed</CODE> in interface <CODE>javax.servlet.ServletContextListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>servletContextEvent</CODE> - The servlet context event.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinationInitialisation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc.messaging.deploy
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging.deploy package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/wsc/messaging/deploy/package-summary.html" target="classFrame">com.arjuna.wsc.messaging.deploy</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy" target="classFrame">CoordinationInitialisation</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc.messaging.deploy
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging.deploy package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wsc.messaging.deploy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/messaging/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wsc/messaging/deploy/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wsc.messaging.deploy
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy">CoordinationInitialisation</A></B></TD>
+<TD>Initialise the coordination services.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/messaging/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wsc/messaging/deploy/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/deploy/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc.messaging.deploy Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wsc.messaging.deploy Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/messaging/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wsc/messaging/deploy/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wsc.messaging.deploy
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wsc.messaging.deploy.<A HREF="../../../../../com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy"><B>CoordinationInitialisation</B></A> (implements javax.servlet.ServletContextListener)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wsc/messaging/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wsc/messaging/deploy/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc.messaging
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/arjuna/wsc/messaging/package-summary.html" target="classFrame">com.arjuna.wsc.messaging</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging" target="classFrame">ActivationCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="MessageId.html" title="class in com.arjuna.wsc.messaging" target="classFrame">MessageId</A>
+<BR>
+<A HREF="RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging" target="classFrame">RegistrationCoordinatorProcessorImpl</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc.messaging
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc.messaging package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wsc.messaging";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/deploy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wsc.messaging
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">ActivationCoordinatorProcessorImpl</A></B></TD>
+<TD>The Activation Coordinator processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging">MessageId</A></B></TD>
+<TD>A simple message id generator, used when UID is inaccessible.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">RegistrationCoordinatorProcessorImpl</A></B></TD>
+<TD>The Registration Coordinator processor.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/deploy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/messaging/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc.messaging Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wsc.messaging Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/deploy/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wsc.messaging
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wsc.messaging.<A HREF="../../../../com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>ActivationCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wsc.messaging.<A HREF="../../../../com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>MessageId</B></A><LI TYPE="circle">com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wsc.messaging.<A HREF="../../../../com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>RegistrationCoordinatorProcessorImpl</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wsc/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wsc/messaging/deploy/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wsc/messaging/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../com/arjuna/wsc/package-summary.html" target="classFrame">com.arjuna.wsc</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ContextFactory.html" title="interface in com.arjuna.wsc" target="classFrame"><I>ContextFactory</I></A>
+<BR>
+<A HREF="Registrar.html" title="interface in com.arjuna.wsc" target="classFrame"><I>Registrar</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ActivationCoordinator.html" title="class in com.arjuna.wsc" target="classFrame">ActivationCoordinator</A>
+<BR>
+<A HREF="ContextFactoryMapper.html" title="class in com.arjuna.wsc" target="classFrame">ContextFactoryMapper</A>
+<BR>
+<A HREF="RegistrarMapper.html" title="class in com.arjuna.wsc" target="classFrame">RegistrarMapper</A>
+<BR>
+<A HREF="RegistrationCoordinator.html" title="class in com.arjuna.wsc" target="classFrame">RegistrationCoordinator</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AlreadyRegisteredException.html" title="class in com.arjuna.wsc" target="classFrame">AlreadyRegisteredException</A>
+<BR>
+<A HREF="InvalidCreateParametersException.html" title="class in com.arjuna.wsc" target="classFrame">InvalidCreateParametersException</A>
+<BR>
+<A HREF="InvalidProtocolException.html" title="class in com.arjuna.wsc" target="classFrame">InvalidProtocolException</A>
+<BR>
+<A HREF="InvalidStateException.html" title="class in com.arjuna.wsc" target="classFrame">InvalidStateException</A>
+<BR>
+<A HREF="NoActivityException.html" title="class in com.arjuna.wsc" target="classFrame">NoActivityException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wsc package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wsc";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/mw/wst/vote/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wsc
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc">ActivationCoordinator</A></B></TD>
+<TD>Wrapper around low level Activation Coordinator messaging.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A></B></TD>
+<TD>The context factory mapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A></B></TD>
+<TD>The registrar mapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc">RegistrationCoordinator</A></B></TD>
+<TD>Wrapper around low level Registration Coordinator messaging.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/mw/wst/vote/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wsc/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wsc Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wsc Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/mw/wst/vote/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wsc
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc"><B>ActivationCoordinator</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>ContextFactoryMapper</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>RegistrarMapper</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc"><B>RegistrationCoordinator</B></A><LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>AlreadyRegisteredException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>InvalidCreateParametersException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>InvalidProtocolException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>InvalidStateException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>NoActivityException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>ContextFactory</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="../../../com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>Registrar</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/mw/wst/vote/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wsc/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Aborted.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Aborted.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Aborted.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Aborted
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Aborted class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Aborted";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Aborted.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Aborted.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class Aborted</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.Aborted</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Aborted</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DL>
+</PRE>
+
+<P>
+Aborted: the participant has aborted and the transaction should also
+ attempt to do so.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Aborted.html#Aborted()">Aborted</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Aborted()"><!-- --></A><H3>
+Aborted</H3>
+<PRE>
+public <B>Aborted</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Aborted.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Aborted.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BAParticipantManager.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BAParticipantManager.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BAParticipantManager.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+BAParticipantManager
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.BAParticipantManager interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BAParticipantManager";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BAParticipantManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BAParticipantManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface BAParticipantManager</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>, <A HREF="../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BAParticipantManager</B></DL>
+</PRE>
+
+<P>
+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.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>XTS 1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: BAParticipantManager.java,v 1.5 2004/09/09 08:48:33 kconner Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BAParticipantManager.html#completed()">completed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BAParticipantManager.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BAParticipantManager.html#exit()">exit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant has exited the business activity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BAParticipantManager.html#fault()">fault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BAParticipantManager.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An unknown error has occurred that the participant wants to communicate
+ to the coordinator.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="exit()"><!-- --></A><H3>
+exit</H3>
+<PRE>
+void <B>exit</B>()
+          throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                 <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                 <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed()"><!-- --></A><H3>
+completed</H3>
+<PRE>
+void <B>completed</B>()
+               throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                      <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                      <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>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.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault()"><!-- --></A><H3>
+fault</H3>
+<PRE>
+void <B>fault</B>()
+           throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Fault.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+void <B>unknown</B>()
+             throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>An unknown error has occurred that the participant wants to communicate
+ to the coordinator.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+void <B>error</B>()
+           throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BAParticipantManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BAParticipantManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessActivityTerminator.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessActivityTerminator.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessActivityTerminator.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+BusinessActivityTerminator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.BusinessActivityTerminator interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessActivityTerminator";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BusinessActivityTerminator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityTerminator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface BusinessActivityTerminator</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BusinessActivityTerminator</B></DL>
+</PRE>
+
+<P>
+Not in the 1.1 specification. Supposed to use participant interface.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+void <B>close</B>()
+           throws <A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>,
+                  <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                  <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+void <B>cancel</B>()
+            throws <A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                   <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                   <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+void <B>complete</B>()
+              throws <A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                     <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                     <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BusinessActivityTerminator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityTerminator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+BusinessAgreementWithCoordinatorCompletionParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessAgreementWithCoordinatorCompletionParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithCoordinatorCompletionParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface BusinessAgreementWithCoordinatorCompletionParticipant</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BusinessAgreementWithCoordinatorCompletionParticipant</B><DT>extends <A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The coordinator is informing the participant that all work it needs to
+ do within the scope of this business activity has been received.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.wst.<A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()">cancel</A>, <A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()">close</A>, <A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()">compensate</A>, <A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()">error</A>, <A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#status()">status</A>, <A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+void <B>complete</B>()
+              throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                     <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The coordinator is informing the participant that all work it needs to
+ do within the scope of this business activity has been received.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithCoordinatorCompletionParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+BusinessAgreementWithParticipantCompletionParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessAgreementWithParticipantCompletionParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithParticipantCompletionParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface BusinessAgreementWithParticipantCompletionParticipant</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>, <A HREF="../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BusinessAgreementWithParticipantCompletionParticipant</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has cancelled, and the participant should undo any work.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has completed successfully.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()">compensate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has cancelled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#status()">status</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+void <B>close</B>()
+           throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                  <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The transaction has completed successfully. The participant previously
+ informed the coordinator that it was ready to complete.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+void <B>cancel</B>()
+            throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                   <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The transaction has cancelled, and the participant should undo any work.
+ The participant cannot have informed the coordinator that it has
+ completed.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate()"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+void <B>compensate</B>()
+                throws <A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                       <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                       <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The transaction has cancelled. The participant previously
+ informed the coordinator that it had finished work but could compensate
+ later if required, so it is now requested to do so.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status()"><!-- --></A><H3>
+status</H3>
+<PRE>
+java.lang.String <B>status</B>()
+                        throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the status value.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+void <B>unknown</B>()
+             throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+void <B>error</B>()
+           throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithParticipantCompletionParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Cancel.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Cancel.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Cancel.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Cancel
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Cancel class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Cancel";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Cancel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Cancel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class Cancel</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.Cancel</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Cancel</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DL>
+</PRE>
+
+<P>
+Cancel: the participant is in an unknown state and should be rolledback.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Cancel.html#Cancel()">Cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Cancel()"><!-- --></A><H3>
+Cancel</H3>
+<PRE>
+public <B>Cancel</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Cancel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Cancel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/CompletionCoordinatorParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/CompletionCoordinatorParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/CompletionCoordinatorParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+CompletionCoordinatorParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.CompletionCoordinatorParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CompletionCoordinatorParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/CompletionCoordinatorParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionCoordinatorParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface CompletionCoordinatorParticipant</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub">CompletionStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>CompletionCoordinatorParticipant</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+void <B>commit</B>()
+            throws <A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>,
+                   <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                   <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+void <B>rollback</B>()
+              throws <A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                     <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/CompletionCoordinatorParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionCoordinatorParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Durable2PCParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Durable2PCParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Durable2PCParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Durable2PCParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Durable2PCParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Durable2PCParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Durable2PCParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Durable2PCParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface Durable2PCParticipant</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Durable2PCParticipant</B><DT>extends <A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></DL>
+</PRE>
+
+<P>
+The Durable2PCParticipant. Unlike all traditional TP implementations, the
+ one-phase commit optimisation is not supported. It was in the 1.0
+ version of the protocol, but not now!
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.Participant"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../com/arjuna/wst/Participant.html#commit()">commit</A>, <A HREF="../../../com/arjuna/wst/Participant.html#error()">error</A>, <A HREF="../../../com/arjuna/wst/Participant.html#prepare()">prepare</A>, <A HREF="../../../com/arjuna/wst/Participant.html#rollback()">rollback</A>, <A HREF="../../../com/arjuna/wst/Participant.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Durable2PCParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Durable2PCParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/FaultedException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/FaultedException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/FaultedException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+FaultedException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.FaultedException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="FaultedException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/FaultedException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="FaultedException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class FaultedException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.FaultedException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>FaultedException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if there is a fault during complete or compensation.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: FaultedException.java,v 1.1 2004/04/21 15:57:04 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wst.FaultedException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/FaultedException.html#FaultedException()">FaultedException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/FaultedException.html#FaultedException(java.lang.String)">FaultedException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="FaultedException()"><!-- --></A><H3>
+FaultedException</H3>
+<PRE>
+public <B>FaultedException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="FaultedException(java.lang.String)"><!-- --></A><H3>
+FaultedException</H3>
+<PRE>
+public <B>FaultedException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/FaultedException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="FaultedException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Participant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Participant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Participant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Participant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Participant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Participant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Participant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Participant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface Participant</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A>, <A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A>, <A HREF="../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>, <A HREF="../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Participant</B></DL>
+</PRE>
+
+<P>
+The base Participant.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Participant.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant should make permanent the work that it controls.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Participant.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;During recovery the participant can enquire as to the status of the
+ transaction it was registered with.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Participant.html#prepare()">prepare</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perform any work necessary to allow it to either commit or rollback
+ the work performed by the Web service under the scope of the
+ transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Participant.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant should undo the work that it controls.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Participant.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;During recovery the participant can enquire as to the status of the
+ transaction it was registered with.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="prepare()"><!-- --></A><H3>
+prepare</H3>
+<PRE>
+<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A> <B>prepare</B>()
+             throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                    <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>Perform any work necessary to allow it to either commit or rollback
+ the work performed by the Web service under the scope of the
+ transaction. The implementation is free to do whatever it needs to in
+ order to fulfill the implicit contract between it and the coordinator.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an indication of whether it can prepare or not.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE><DT><B>See Also:</B><DD><A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><CODE>Vote</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+void <B>commit</B>()
+            throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                   <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The participant should make permanent the work that it controls.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+void <B>rollback</B>()
+              throws <A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                     <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>The participant should undo the work that it controls. The participant
+ will then return an indication of whether or not it succeeded.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+void <B>unknown</B>()
+             throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>During recovery the participant can enquire as to the status of the
+ transaction it was registered with. If that transaction is no longer
+ available (has rolled back) then this operation will be invoked by the
+ coordination service.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+void <B>error</B>()
+           throws <A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD>During recovery the participant can enquire as to the status of the
+ transaction it was registered with. If an error occurs (e.g., the
+ transaction service is unavailable) then this operation will be invoked.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Participant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Participant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/PersistableParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/PersistableParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/PersistableParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+PersistableParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.PersistableParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="PersistableParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/PersistableParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PersistableParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface PersistableParticipant</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>, <A HREF="../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>, <A HREF="../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A>, <A HREF="../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>, <A HREF="../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>PersistableParticipant</B></DL>
+</PRE>
+
+<P>
+The interface for a persistable resource.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore the state of the particpant from the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the state of the particpant to the specified input object stream.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><!-- --></A><H3>
+saveState</H3>
+<PRE>
+boolean <B>saveState</B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</PRE>
+<DL>
+<DD>Save the state of the particpant to the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>oos</CODE> - The output output stream.
+<DT><B>Returns:</B><DD>true if persisted, false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><!-- --></A><H3>
+restoreState</H3>
+<PRE>
+boolean <B>restoreState</B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</PRE>
+<DL>
+<DD>Restore the state of the particpant from the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ios</CODE> - The Input object stream.
+<DT><B>Returns:</B><DD>true if restored, false otherwise.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/PersistableParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PersistableParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Prepared.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Prepared.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Prepared.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Prepared
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Prepared class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Prepared";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Prepared.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Prepared.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class Prepared</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.Prepared</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Prepared</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DL>
+</PRE>
+
+<P>
+Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Prepared.html#Prepared()">Prepared</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Prepared()"><!-- --></A><H3>
+Prepared</H3>
+<PRE>
+public <B>Prepared</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Prepared.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Prepared.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/ReadOnly.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/ReadOnly.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/ReadOnly.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+ReadOnly
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.ReadOnly class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ReadOnly";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/ReadOnly.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReadOnly.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class ReadOnly</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.ReadOnly</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ReadOnly</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></DL>
+</PRE>
+
+<P>
+ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/ReadOnly.html#ReadOnly()">ReadOnly</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ReadOnly()"><!-- --></A><H3>
+ReadOnly</H3>
+<PRE>
+public <B>ReadOnly</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/ReadOnly.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReadOnly.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Status.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Status.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Status.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,471 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Status
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Status class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Status";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Status.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Status.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class Status</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.Status</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Status</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_ACTIVE">STATUS_ACTIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_CANCELING">STATUS_CANCELING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_CANCELING_ACTIVE">STATUS_CANCELING_ACTIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_CANCELING_COMPLETING">STATUS_CANCELING_COMPLETING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_CLOSING">STATUS_CLOSING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_COMPENSATING">STATUS_COMPENSATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_COMPLETED">STATUS_COMPLETED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_COMPLETING">STATUS_COMPLETING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_ENDED">STATUS_ENDED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_EXITING">STATUS_EXITING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_FAULTING">STATUS_FAULTING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_FAULTING_ACTIVE">STATUS_FAULTING_ACTIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#STATUS_FAULTING_COMPENSATING">STATUS_FAULTING_COMPENSATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/Status.html#Status()">Status</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="STATUS_ACTIVE"><!-- --></A><H3>
+STATUS_ACTIVE</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_ACTIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_ACTIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_CANCELING"><!-- --></A><H3>
+STATUS_CANCELING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_CANCELING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_CANCELING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_CANCELING_ACTIVE"><!-- --></A><H3>
+STATUS_CANCELING_ACTIVE</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_CANCELING_ACTIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_CANCELING_ACTIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_CANCELING_COMPLETING"><!-- --></A><H3>
+STATUS_CANCELING_COMPLETING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_CANCELING_COMPLETING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_CANCELING_COMPLETING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_COMPLETING"><!-- --></A><H3>
+STATUS_COMPLETING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_COMPLETING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_COMPLETING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_COMPLETED"><!-- --></A><H3>
+STATUS_COMPLETED</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_COMPLETED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_COMPLETED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_CLOSING"><!-- --></A><H3>
+STATUS_CLOSING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_CLOSING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_CLOSING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_COMPENSATING"><!-- --></A><H3>
+STATUS_COMPENSATING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_COMPENSATING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_COMPENSATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_FAULTING"><!-- --></A><H3>
+STATUS_FAULTING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_FAULTING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_FAULTING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_FAULTING_ACTIVE"><!-- --></A><H3>
+STATUS_FAULTING_ACTIVE</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_FAULTING_ACTIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_FAULTING_ACTIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_FAULTING_COMPENSATING"><!-- --></A><H3>
+STATUS_FAULTING_COMPENSATING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_FAULTING_COMPENSATING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_FAULTING_COMPENSATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_EXITING"><!-- --></A><H3>
+STATUS_EXITING</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_EXITING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_EXITING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STATUS_ENDED"><!-- --></A><H3>
+STATUS_ENDED</H3>
+<PRE>
+public static final java.lang.String <B>STATUS_ENDED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.arjuna.wst.Status.STATUS_ENDED">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Status()"><!-- --></A><H3>
+Status</H3>
+<PRE>
+public <B>Status</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Status.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Status.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/SystemException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/SystemException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/SystemException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+SystemException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.SystemException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SystemException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/SystemException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SystemException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class SystemException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.SystemException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub">SystemCommunicationException</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>SystemException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if a general exception is encountered (one not supported by
+ any other exception.)
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: SystemException.java,v 1.2 2003/04/11 14:47:29 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wst.SystemException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/SystemException.html#SystemException()">SystemException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/SystemException.html#SystemException(java.lang.String)">SystemException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="SystemException()"><!-- --></A><H3>
+SystemException</H3>
+<PRE>
+public <B>SystemException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="SystemException(java.lang.String)"><!-- --></A><H3>
+SystemException</H3>
+<PRE>
+public <B>SystemException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/SystemException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SystemException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/TransactionRolledBackException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/TransactionRolledBackException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/TransactionRolledBackException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+TransactionRolledBackException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.TransactionRolledBackException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TransactionRolledBackException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/TransactionRolledBackException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionRolledBackException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class TransactionRolledBackException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.TransactionRolledBackException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TransactionRolledBackException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction rolls back rather than commits.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: TransactionRolledBackException.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wst.TransactionRolledBackException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html#TransactionRolledBackException()">TransactionRolledBackException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html#TransactionRolledBackException(java.lang.String)">TransactionRolledBackException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TransactionRolledBackException()"><!-- --></A><H3>
+TransactionRolledBackException</H3>
+<PRE>
+public <B>TransactionRolledBackException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TransactionRolledBackException(java.lang.String)"><!-- --></A><H3>
+TransactionRolledBackException</H3>
+<PRE>
+public <B>TransactionRolledBackException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/TransactionRolledBackException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionRolledBackException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/UnknownTransactionException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/UnknownTransactionException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/UnknownTransactionException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+UnknownTransactionException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.UnknownTransactionException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="UnknownTransactionException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/UnknownTransactionException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UnknownTransactionException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class UnknownTransactionException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.UnknownTransactionException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>UnknownTransactionException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the transaction is unknown.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: UnknownTransactionException.java,v 1.1 2003/02/03 16:24:46 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wst.UnknownTransactionException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html#UnknownTransactionException()">UnknownTransactionException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html#UnknownTransactionException(java.lang.String)">UnknownTransactionException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UnknownTransactionException()"><!-- --></A><H3>
+UnknownTransactionException</H3>
+<PRE>
+public <B>UnknownTransactionException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="UnknownTransactionException(java.lang.String)"><!-- --></A><H3>
+UnknownTransactionException</H3>
+<PRE>
+public <B>UnknownTransactionException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/UnknownTransactionException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="UnknownTransactionException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Volatile2PCParticipant.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Volatile2PCParticipant.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Volatile2PCParticipant.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Volatile2PCParticipant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Volatile2PCParticipant interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Volatile2PCParticipant";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Volatile2PCParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Volatile2PCParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface Volatile2PCParticipant</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Volatile2PCParticipant</B><DT>extends <A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></DL>
+</PRE>
+
+<P>
+The Volatile2PCParticipant. This is the equivalent of the traditional
+ synchronization protocol (the old PhaseZero and OutcomeNotification
+ protocols.)
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.Participant"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../com/arjuna/wst/Participant.html#commit()">commit</A>, <A HREF="../../../com/arjuna/wst/Participant.html#error()">error</A>, <A HREF="../../../com/arjuna/wst/Participant.html#prepare()">prepare</A>, <A HREF="../../../com/arjuna/wst/Participant.html#rollback()">rollback</A>, <A HREF="../../../com/arjuna/wst/Participant.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Volatile2PCParticipant.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Volatile2PCParticipant.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Vote.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Vote.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/Vote.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+Vote
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.Vote interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Vote";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Vote.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Vote.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Interface Vote</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst">Aborted</A>, <A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst">Cancel</A>, <A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst">Prepared</A>, <A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst">ReadOnly</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Vote</B></DL>
+</PRE>
+
+<P>
+When asked to prepare, a 2PC participant returns one of three types of
+ vote:
+
+ ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.
+ Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.
+ Aborted: the participant has aborted and the transaction should also
+ attempt to do so.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><CODE>ReadOnly</CODE></A>, 
+<A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><CODE>Prepared</CODE></A>, 
+<A HREF="../../../com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst"><CODE>Aborted</CODE></A></DL>
+<HR>
+
+<P>
+
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/Vote.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Vote.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/WrongStateException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/WrongStateException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/WrongStateException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+WrongStateException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.WrongStateException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="WrongStateException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/WrongStateException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="WrongStateException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst</FONT>
+<BR>
+Class WrongStateException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.WrongStateException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>WrongStateException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+Thrown if the state of the transaction is incompatible with the
+ operation attempted. For example, asking the transaction to rollback
+ if it is already committing.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0.</DD>
+<DT><B>Version:</B></DT>
+  <DD>$Id: WrongStateException.java,v 1.2 2003/04/11 14:47:29 nmcl Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Mark Little (mark.little at arjuna.com)</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.arjuna.wst.WrongStateException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/WrongStateException.html#WrongStateException()">WrongStateException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/arjuna/wst/WrongStateException.html#WrongStateException(java.lang.String)">WrongStateException</A></B>(java.lang.String&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="WrongStateException()"><!-- --></A><H3>
+WrongStateException</H3>
+<PRE>
+public <B>WrongStateException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="WrongStateException(java.lang.String)"><!-- --></A><H3>
+WrongStateException</H3>
+<PRE>
+public <B>WrongStateException</B>(java.lang.String&nbsp;s)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/WrongStateException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="WrongStateException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+CompletionCoordinatorProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CompletionCoordinatorProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class CompletionCoordinatorProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>CompletionCoordinatorProcessorImpl</B><DT>extends com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Completion Coordinator processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#CompletionCoordinatorProcessorImpl()">CompletionCoordinatorProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#activateParticipant(com.arjuna.wst.CompletionCoordinatorParticipant, java.lang.String)">activateParticipant</A></B>(<A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>&nbsp;participant,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">commit</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;commit,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#deactivateParticipant(com.arjuna.wst.CompletionCoordinatorParticipant)">deactivateParticipant</A></B>(<A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">rollback</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;rollback,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rollback.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CompletionCoordinatorProcessorImpl()"><!-- --></A><H3>
+CompletionCoordinatorProcessorImpl</H3>
+<PRE>
+public <B>CompletionCoordinatorProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateParticipant(com.arjuna.wst.CompletionCoordinatorParticipant, java.lang.String)"><!-- --></A><H3>
+activateParticipant</H3>
+<PRE>
+public void <B>activateParticipant</B>(<A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>&nbsp;participant,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateParticipant(com.arjuna.wst.CompletionCoordinatorParticipant)"><!-- --></A><H3>
+deactivateParticipant</H3>
+<PRE>
+public void <B>deactivateParticipant</B>(<A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>&nbsp;participant)</PRE>
+<DL>
+<DD>Deactivate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public void <B>commit</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;commit,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Commit.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>commit</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>commit</CODE> - The commit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public void <B>rollback</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;rollback,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Rollback.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>rollback</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>rollback</CODE> - The rollback notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+CoordinatorCompletionCoordinatorProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinatorCompletionCoordinatorProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class CoordinatorCompletionCoordinatorProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinatorCompletionCoordinatorProcessorImpl</B><DT>extends com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Coordinator Completion Coordinator processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#CoordinatorCompletionCoordinatorProcessorImpl()">CoordinatorCompletionCoordinatorProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#activateCoordinator(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents, java.lang.String)">activateCoordinator</A></B>(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents&nbsp;coordinator,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancelled</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancelled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">closed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensated</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+            com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+            com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compensated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">completed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Completed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#deactivateCoordinator(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents)">deactivateCoordinator</A></B>(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exit</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">fault</A></B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinatorCompletionCoordinatorProcessorImpl()"><!-- --></A><H3>
+CoordinatorCompletionCoordinatorProcessorImpl</H3>
+<PRE>
+public <B>CoordinatorCompletionCoordinatorProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateCoordinator(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents, java.lang.String)"><!-- --></A><H3>
+activateCoordinator</H3>
+<PRE>
+public void <B>activateCoordinator</B>(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents&nbsp;coordinator,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateCoordinator</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - The coordinator.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateCoordinator(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents)"><!-- --></A><H3>
+deactivateCoordinator</H3>
+<PRE>
+public void <B>deactivateCoordinator</B>(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents&nbsp;coordinator)</PRE>
+<DL>
+<DD>Deactivate the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateCoordinator</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - The coordinator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancelled</H3>
+<PRE>
+public void <B>cancelled</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Cancelled.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancelled</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancelled</CODE> - The cancelled notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+closed</H3>
+<PRE>
+public void <B>closed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Closed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>closed</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>closed</CODE> - The closed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensated</H3>
+<PRE>
+public void <B>compensated</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+                        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Compensated.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensated</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensated</CODE> - The compensated notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public void <B>completed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Completed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>completed</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>completed</CODE> - The completed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public void <B>exit</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+                 com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                 com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Exit.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exit</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exit</CODE> - The exit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public void <B>fault</B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>fault</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The fault notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Get Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The get status notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>SOAP fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The SOAP fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+CoordinatorCompletionParticipantProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinatorCompletionParticipantProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class CoordinatorCompletionParticipantProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinatorCompletionParticipantProcessorImpl</B><DT>extends com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</DL>
+</PRE>
+
+<P>
+The Coordinator Completion Participant processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#CoordinatorCompletionParticipantProcessorImpl()">CoordinatorCompletionParticipantProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#activateParticipant(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents, java.lang.String)">activateParticipant</A></B>(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents&nbsp;participant,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancel</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">close</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensate</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+           com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+           com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compensate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#complete(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">complete</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;complete,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents)">deactivateParticipant</A></B>(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exited</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exited.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">faulted</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Faulted.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinatorCompletionParticipantProcessorImpl()"><!-- --></A><H3>
+CoordinatorCompletionParticipantProcessorImpl</H3>
+<PRE>
+public <B>CoordinatorCompletionParticipantProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateParticipant(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents, java.lang.String)"><!-- --></A><H3>
+activateParticipant</H3>
+<PRE>
+public void <B>activateParticipant</B>(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents&nbsp;participant,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateParticipant(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents)"><!-- --></A><H3>
+deactivateParticipant</H3>
+<PRE>
+public void <B>deactivateParticipant</B>(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents&nbsp;participant)</PRE>
+<DL>
+<DD>Deactivate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Cancel.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancel</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancel</CODE> - The cancel notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Close.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>close</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>close</CODE> - The close notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public void <B>compensate</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+                       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Compensate.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensate</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensate</CODE> - The compensate notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public void <B>complete</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;complete,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Complete.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>complete</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>complete</CODE> - The complete notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exited</H3>
+<PRE>
+public void <B>exited</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Exited.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exited</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exited</CODE> - The exited notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+faulted</H3>
+<PRE>
+public void <B>faulted</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Faulted.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>faulted</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>faulted</CODE> - The faulted notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Get Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The get status notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>SOAP Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The SOAP fault notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/CoordinatorProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,464 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+CoordinatorProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.CoordinatorProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinatorProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class CoordinatorProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsat.processors.CoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.CoordinatorProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinatorProcessorImpl</B><DT>extends com.arjuna.webservices.wsat.processors.CoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Coordinator processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#CoordinatorProcessorImpl()">CoordinatorProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#aborted(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">aborted</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;aborted,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aborted.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#activateCoordinator(com.arjuna.webservices.wsat.CoordinatorInboundEvents, java.lang.String)">activateCoordinator</A></B>(com.arjuna.webservices.wsat.CoordinatorInboundEvents&nbsp;coordinator,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#committed(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">committed</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;committed,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Committed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#deactivateCoordinator(com.arjuna.webservices.wsat.CoordinatorInboundEvents)">deactivateCoordinator</A></B>(com.arjuna.webservices.wsat.CoordinatorInboundEvents&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#prepared(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">prepared</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepared,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepared.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#readOnly(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">readOnly</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;readOnly,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read only.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#replay(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">replay</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;replay,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replay.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP Fault.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsat.processors.CoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsat.processors.CoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinatorProcessorImpl()"><!-- --></A><H3>
+CoordinatorProcessorImpl</H3>
+<PRE>
+public <B>CoordinatorProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateCoordinator(com.arjuna.webservices.wsat.CoordinatorInboundEvents, java.lang.String)"><!-- --></A><H3>
+activateCoordinator</H3>
+<PRE>
+public void <B>activateCoordinator</B>(com.arjuna.webservices.wsat.CoordinatorInboundEvents&nbsp;coordinator,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateCoordinator</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - The coordinator.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateCoordinator(com.arjuna.webservices.wsat.CoordinatorInboundEvents)"><!-- --></A><H3>
+deactivateCoordinator</H3>
+<PRE>
+public void <B>deactivateCoordinator</B>(com.arjuna.webservices.wsat.CoordinatorInboundEvents&nbsp;coordinator)</PRE>
+<DL>
+<DD>Deactivate the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateCoordinator</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - The coordinator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="aborted(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+aborted</H3>
+<PRE>
+public void <B>aborted</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;aborted,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Aborted.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>aborted</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>aborted</CODE> - The aborted notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="committed(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+committed</H3>
+<PRE>
+public void <B>committed</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;committed,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Committed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>committed</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>committed</CODE> - The committed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="prepared(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+prepared</H3>
+<PRE>
+public void <B>prepared</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepared,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Prepared.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>prepared</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prepared</CODE> - The prepared notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readOnly(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+readOnly</H3>
+<PRE>
+public void <B>readOnly</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;readOnly,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Read only.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>readOnly</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>readOnly</CODE> - The read only notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="replay(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+replay</H3>
+<PRE>
+public void <B>replay</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;replay,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Replay.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>replay</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>replay</CODE> - The replay notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>SOAP Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.CoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The SOAP fault notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+ParticipantCompletionCoordinatorProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantCompletionCoordinatorProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class ParticipantCompletionCoordinatorProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantCompletionCoordinatorProcessorImpl</B><DT>extends com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Participant Completion Coordinator processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#ParticipantCompletionCoordinatorProcessorImpl()">ParticipantCompletionCoordinatorProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#activateCoordinator(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents, java.lang.String)">activateCoordinator</A></B>(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents&nbsp;coordinator,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancelled</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancelled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">closed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensated</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+            com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+            com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compensated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">completed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Completed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#deactivateCoordinator(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents)">deactivateCoordinator</A></B>(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exit</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">fault</A></B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantCompletionCoordinatorProcessorImpl()"><!-- --></A><H3>
+ParticipantCompletionCoordinatorProcessorImpl</H3>
+<PRE>
+public <B>ParticipantCompletionCoordinatorProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateCoordinator(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents, java.lang.String)"><!-- --></A><H3>
+activateCoordinator</H3>
+<PRE>
+public void <B>activateCoordinator</B>(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents&nbsp;coordinator,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateCoordinator</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - The coordinator.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateCoordinator(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents)"><!-- --></A><H3>
+deactivateCoordinator</H3>
+<PRE>
+public void <B>deactivateCoordinator</B>(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents&nbsp;coordinator)</PRE>
+<DL>
+<DD>Deactivate the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateCoordinator</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - The coordinator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancelled</H3>
+<PRE>
+public void <B>cancelled</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Cancelled.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancelled</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancelled</CODE> - The cancelled notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+closed</H3>
+<PRE>
+public void <B>closed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Closed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>closed</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>closed</CODE> - The closed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensated</H3>
+<PRE>
+public void <B>compensated</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+                        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Compensated.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensated</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensated</CODE> - The compensated notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public void <B>completed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Completed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>completed</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>completed</CODE> - The completed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public void <B>exit</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+                 com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                 com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Exit.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exit</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exit</CODE> - The exit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public void <B>fault</B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>fault</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The fault notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Get Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The get status notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>SOAP fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The SOAP fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionCoordinatorProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,520 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+ParticipantCompletionParticipantProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantCompletionParticipantProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class ParticipantCompletionParticipantProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantCompletionParticipantProcessorImpl</B><DT>extends com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</DL>
+</PRE>
+
+<P>
+The Participant Completion Participant processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#ParticipantCompletionParticipantProcessorImpl()">ParticipantCompletionParticipantProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#activateParticipant(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents, java.lang.String)">activateParticipant</A></B>(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents&nbsp;participant,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancel</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">close</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensate</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+           com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+           com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compensate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents)">deactivateParticipant</A></B>(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exited</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exited.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">faulted</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Faulted.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantCompletionParticipantProcessorImpl()"><!-- --></A><H3>
+ParticipantCompletionParticipantProcessorImpl</H3>
+<PRE>
+public <B>ParticipantCompletionParticipantProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateParticipant(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents, java.lang.String)"><!-- --></A><H3>
+activateParticipant</H3>
+<PRE>
+public void <B>activateParticipant</B>(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents&nbsp;participant,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateParticipant(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents)"><!-- --></A><H3>
+deactivateParticipant</H3>
+<PRE>
+public void <B>deactivateParticipant</B>(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents&nbsp;participant)</PRE>
+<DL>
+<DD>Deactivate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Cancel.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancel</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancel</CODE> - The cancel notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Close.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>close</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>close</CODE> - The close notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public void <B>compensate</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+                       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Compensate.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensate</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensate</CODE> - The compensate notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exited</H3>
+<PRE>
+public void <B>exited</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Exited.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exited</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exited</CODE> - The exited notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+faulted</H3>
+<PRE>
+public void <B>faulted</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Faulted.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>faulted</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>faulted</CODE> - The faulted notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Get Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The get status notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Status.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status type.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>SOAP Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in class <CODE>com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The SOAP fault notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/ParticipantProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:35 GMT 2007 -->
+<TITLE>
+ParticipantProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.ParticipantProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/ParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class ParticipantProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsat.processors.ParticipantProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.ParticipantProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantProcessorImpl</B><DT>extends com.arjuna.webservices.wsat.processors.ParticipantProcessor</DL>
+</PRE>
+
+<P>
+The Participant processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#ParticipantProcessorImpl()">ParticipantProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#activateParticipant(com.arjuna.webservices.wsat.ParticipantInboundEvents, java.lang.String)">activateParticipant</A></B>(com.arjuna.webservices.wsat.ParticipantInboundEvents&nbsp;participant,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">commit</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;commit,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.webservices.wsat.ParticipantInboundEvents)">deactivateParticipant</A></B>(com.arjuna.webservices.wsat.ParticipantInboundEvents&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#prepare(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">prepare</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepare,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepare.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">rollback</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;rollback,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rollback.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP Fault.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsat.processors.ParticipantProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsat.processors.ParticipantProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantProcessorImpl()"><!-- --></A><H3>
+ParticipantProcessorImpl</H3>
+<PRE>
+public <B>ParticipantProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateParticipant(com.arjuna.webservices.wsat.ParticipantInboundEvents, java.lang.String)"><!-- --></A><H3>
+activateParticipant</H3>
+<PRE>
+public void <B>activateParticipant</B>(com.arjuna.webservices.wsat.ParticipantInboundEvents&nbsp;participant,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.ParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateParticipant(com.arjuna.webservices.wsat.ParticipantInboundEvents)"><!-- --></A><H3>
+deactivateParticipant</H3>
+<PRE>
+public void <B>deactivateParticipant</B>(com.arjuna.webservices.wsat.ParticipantInboundEvents&nbsp;participant)</PRE>
+<DL>
+<DD>Deactivate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.ParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public void <B>commit</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;commit,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Commit.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>commit</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.ParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>commit</CODE> - The commit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="prepare(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+prepare</H3>
+<PRE>
+public void <B>prepare</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepare,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Prepare.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>prepare</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.ParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prepare</CODE> - The prepare notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public void <B>rollback</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;rollback,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Rollback.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>rollback</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.ParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>rollback</CODE> - The rollback notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;fault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>SOAP Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in class <CODE>com.arjuna.webservices.wsat.processors.ParticipantProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The SOAP fault notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/ParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+TerminatorParticipantProcessorImpl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TerminatorParticipantProcessorImpl";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TerminatorParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging</FONT>
+<BR>
+Class TerminatorParticipantProcessorImpl</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.TerminatorParticipantProcessorImpl</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>TerminatorParticipantProcessorImpl</B><DT>extends com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</DL>
+</PRE>
+
+<P>
+The Terminator Participant processor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#TerminatorParticipantProcessorImpl()">TerminatorParticipantProcessorImpl</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#activateParticipant(com.arjuna.wst.BusinessActivityTerminator, java.lang.String)">activateParticipant</A></B>(<A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>&nbsp;participant,
+                    java.lang.String&nbsp;identifier)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Activate the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#cancel(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancel</A></B>(com.arjuna.webservices.wsarjtx.NotificationType&nbsp;cancel,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#close(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">close</A></B>(com.arjuna.webservices.wsarjtx.NotificationType&nbsp;close,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#complete(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">complete</A></B>(com.arjuna.webservices.wsarjtx.NotificationType&nbsp;complete,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.wst.BusinessActivityTerminator)">deactivateParticipant</A></B>(<A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deactivate the participant.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getProcessor, setProcessor</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TerminatorParticipantProcessorImpl()"><!-- --></A><H3>
+TerminatorParticipantProcessorImpl</H3>
+<PRE>
+public <B>TerminatorParticipantProcessorImpl</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activateParticipant(com.arjuna.wst.BusinessActivityTerminator, java.lang.String)"><!-- --></A><H3>
+activateParticipant</H3>
+<PRE>
+public void <B>activateParticipant</B>(<A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>&nbsp;participant,
+                                java.lang.String&nbsp;identifier)</PRE>
+<DL>
+<DD>Activate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>activateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>identifier</CODE> - The identifier.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deactivateParticipant(com.arjuna.wst.BusinessActivityTerminator)"><!-- --></A><H3>
+deactivateParticipant</H3>
+<PRE>
+public void <B>deactivateParticipant</B>(<A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>&nbsp;participant)</PRE>
+<DL>
+<DD>Deactivate the participant.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>deactivateParticipant</CODE> in class <CODE>com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>(com.arjuna.webservices.wsarjtx.NotificationType&nbsp;cancel,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Cancel.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancel</CODE> in class <CODE>com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancel</CODE> - The cancel notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(com.arjuna.webservices.wsarjtx.NotificationType&nbsp;close,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Close.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>close</CODE> in class <CODE>com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>close</CODE> - The close notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public void <B>complete</B>(com.arjuna.webservices.wsarjtx.NotificationType&nbsp;complete,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Complete.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>complete</CODE> in class <CODE>com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>complete</CODE> - The complete notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TerminatorParticipantProcessorImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/TransactionInitialisation.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/TransactionInitialisation.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/TransactionInitialisation.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+TransactionInitialisation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.deploy.TransactionInitialisation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TransactionInitialisation";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionInitialisation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.deploy</FONT>
+<BR>
+Class TransactionInitialisation</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.deploy.TransactionInitialisation</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.EventListener, javax.servlet.ServletContextListener</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TransactionInitialisation</B><DT>extends java.lang.Object<DT>implements javax.servlet.ServletContextListener</DL>
+</PRE>
+
+<P>
+Initialise the transaction services.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/deploy/TransactionInitialisation.html#TransactionInitialisation()">TransactionInitialisation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/deploy/TransactionInitialisation.html#contextDestroyed(javax.servlet.ServletContextEvent)">contextDestroyed</A></B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The context is about to be destroyed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/deploy/TransactionInitialisation.html#contextInitialized(javax.servlet.ServletContextEvent)">contextInitialized</A></B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The context has been initialized.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TransactionInitialisation()"><!-- --></A><H3>
+TransactionInitialisation</H3>
+<PRE>
+public <B>TransactionInitialisation</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="contextInitialized(javax.servlet.ServletContextEvent)"><!-- --></A><H3>
+contextInitialized</H3>
+<PRE>
+public void <B>contextInitialized</B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</PRE>
+<DL>
+<DD>The context has been initialized.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>contextInitialized</CODE> in interface <CODE>javax.servlet.ServletContextListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>servletContextEvent</CODE> - The servlet context event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contextDestroyed(javax.servlet.ServletContextEvent)"><!-- --></A><H3>
+contextDestroyed</H3>
+<PRE>
+public void <B>contextDestroyed</B>(javax.servlet.ServletContextEvent&nbsp;servletContextEvent)</PRE>
+<DL>
+<DD>The context is about to be destroyed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>contextDestroyed</CODE> in interface <CODE>javax.servlet.ServletContextListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>servletContextEvent</CODE> - The servlet context event.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TransactionInitialisation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging.deploy
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.deploy package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/wst/messaging/deploy/package-summary.html" target="classFrame">com.arjuna.wst.messaging.deploy</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy" target="classFrame">TransactionInitialisation</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging.deploy
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.deploy package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.messaging.deploy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/deploy/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wst.messaging.deploy
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy">TransactionInitialisation</A></B></TD>
+<TD>Initialise the transaction services.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/deploy/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/deploy/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging.deploy Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.messaging.deploy Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/deploy/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wst.messaging.deploy
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.deploy.<A HREF="../../../../../com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy"><B>TransactionInitialisation</B></A> (implements javax.servlet.ServletContextListener)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/deploy/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,827 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+CoordinatorCompletionCoordinatorEngine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinatorCompletionCoordinatorEngine";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionCoordinatorEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.engines</FONT>
+<BR>
+Class CoordinatorCompletionCoordinatorEngine</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinatorCompletionCoordinatorEngine</B><DT>extends java.lang.Object<DT>implements com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</DL>
+</PRE>
+
+<P>
+The coordinator completion coordinator state engine
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#CoordinatorCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">CoordinatorCompletionCoordinatorEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the initial engine for the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#CoordinatorCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsba.State)">CoordinatorCompletionCoordinatorEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant,
+                                       com.arjuna.webservices.wsba.State&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the engine for the coordinator in a specified state.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the cancel event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancelled</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the cancelled event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the close event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">closed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the closed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#compensate()">compensate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the compensate event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensated</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+            com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+            com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the compensated event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the complete event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">completed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the completed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exit</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the exit event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">fault</A></B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getCoordinator()">getCoordinator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the associated coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator id.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getParticipant()">getParticipant</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the participant endpoint reference</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getStatus()">getStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the get status event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the getStatus event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#setCoordinator(com.arjuna.wst.BAParticipantManager)">setCoordinator</A></B>(<A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the coordinator and register</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the soap fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the status event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinatorCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+CoordinatorCompletionCoordinatorEngine</H3>
+<PRE>
+public <B>CoordinatorCompletionCoordinatorEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant)</PRE>
+<DL>
+<DD>Construct the initial engine for the coordinator.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The coordinator id.<DD><CODE>participant</CODE> - The participant endpoint reference.</DL>
+</DL>
+<HR>
+
+<A NAME="CoordinatorCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsba.State)"><!-- --></A><H3>
+CoordinatorCompletionCoordinatorEngine</H3>
+<PRE>
+public <B>CoordinatorCompletionCoordinatorEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant,
+                                              com.arjuna.webservices.wsba.State&nbsp;state)</PRE>
+<DL>
+<DD>Construct the engine for the coordinator in a specified state.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The coordinator id.<DD><CODE>participant</CODE> - The participant endpoint reference.<DD><CODE>state</CODE> - The initial state.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setCoordinator(com.arjuna.wst.BAParticipantManager)"><!-- --></A><H3>
+setCoordinator</H3>
+<PRE>
+public void <B>setCoordinator</B>(<A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>&nbsp;coordinator)</PRE>
+<DL>
+<DD>Set the coordinator and register
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancelled</H3>
+<PRE>
+public void <B>cancelled</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the cancelled event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancelled</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancelled</CODE> - The cancelled notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Ended
+ Canceling-Active -> Ended
+ Canceling-Completing -> Ended
+ Completing -> Completing (invalid state)
+ 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 (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+closed</H3>
+<PRE>
+public void <B>closed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the closed event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>closed</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>closed</CODE> - The closed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Canceling-Active -> Canceling (invalid state)
+ Canceling-Completing -> Canceling (invalid state)
+ Completing -> Completing (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Ended
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensated</H3>
+<PRE>
+public void <B>compensated</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+                        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the compensated event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensated</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensated</CODE> - The compensated notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Canceling-Active -> Canceling (invalid state)
+ Canceling-Completing -> Canceling (invalid state)
+ Completing -> Completing (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Ended
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public void <B>completed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the completed event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>completed</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>completed</CODE> - The completed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Completed
+ Canceling -> Canceling (invalid state)
+ Canceling-Active -> Canceling (invalid state)
+ Canceling-Completing -> Completed
+ Completing -> Completed
+ Completed -> Completed
+ Closing -> Closing (resend close)
+ Compensating -> Compensating (resend compensate)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public void <B>exit</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+                 com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                 com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the exit event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exit</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exit</CODE> - The exit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public void <B>fault</B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>fault</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The fault exception.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Faulting-Active
+ Canceling -> Faulting-Active
+ Canceling-Active -> Faulting-Active
+ Canceling-Completing -> Faulting-Active
+ Completing -> Faulting-Active
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Faulting-Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (resend Faulted)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the getStatus event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The getStatus notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the status event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus()"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>getStatus</B>()</PRE>
+<DL>
+<DD>Handle the get status event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>cancel</B>()</PRE>
+<DL>
+<DD>Handle the cancel event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate()"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>compensate</B>()</PRE>
+<DL>
+<DD>Handle the compensate event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>complete</B>()</PRE>
+<DL>
+<DD>Handle the complete event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>close</B>()</PRE>
+<DL>
+<DD>Handle the close event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the soap fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The soap fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Get the coordinator id.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator id.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParticipant()"><!-- --></A><H3>
+getParticipant</H3>
+<PRE>
+public com.arjuna.webservices.wsaddr.EndpointReferenceType <B>getParticipant</B>()</PRE>
+<DL>
+<DD>Get the participant endpoint reference
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The participant endpoint reference</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinator()"><!-- --></A><H3>
+getCoordinator</H3>
+<PRE>
+public <A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A> <B>getCoordinator</B>()</PRE>
+<DL>
+<DD>Get the associated coordinator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The associated coordinator.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionCoordinatorEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,778 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+CoordinatorCompletionParticipantEngine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinatorCompletionParticipantEngine";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionParticipantEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.engines</FONT>
+<BR>
+Class CoordinatorCompletionParticipantEngine</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinatorCompletionParticipantEngine</B><DT>extends java.lang.Object<DT>implements com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</DL>
+</PRE>
+
+<P>
+The coordinator completion participant state engine
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#CoordinatorCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant)">CoordinatorCompletionParticipantEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                       <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the initial engine for the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#CoordinatorCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant, com.arjuna.webservices.wsba.State)">CoordinatorCompletionParticipantEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                       <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>&nbsp;participant,
+                                       com.arjuna.webservices.wsba.State&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the engine for the participant in a specified state.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancel</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the cancel event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">close</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the close event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensate</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+           com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+           com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the compensate event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#complete(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">complete</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;complete,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the complete event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#completed()">completed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the completed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#exit()">exit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the exit event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exited</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the exited event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#fault()">fault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">faulted</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the faulted event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getCoordinator()">getCoordinator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator endpoint reference</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator id.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getParticipant()">getParticipant</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the associated participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the getStatus event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the soap fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the status event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinatorCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant)"><!-- --></A><H3>
+CoordinatorCompletionParticipantEngine</H3>
+<PRE>
+public <B>CoordinatorCompletionParticipantEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                              <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>&nbsp;participant)</PRE>
+<DL>
+<DD>Construct the initial engine for the participant.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The participant id.<DD><CODE>coordinator</CODE> - The coordinator endpoint reference.<DD><CODE>participant</CODE> - The participant.</DL>
+</DL>
+<HR>
+
+<A NAME="CoordinatorCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant, com.arjuna.webservices.wsba.State)"><!-- --></A><H3>
+CoordinatorCompletionParticipantEngine</H3>
+<PRE>
+public <B>CoordinatorCompletionParticipantEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                              <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>&nbsp;participant,
+                                              com.arjuna.webservices.wsba.State&nbsp;state)</PRE>
+<DL>
+<DD>Construct the engine for the participant in a specified state.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The participant id.<DD><CODE>coordinator</CODE> - The coordinator endpoint reference.<DD><CODE>participant</CODE> - The participant.<DD><CODE>state</CODE> - The initial state.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the cancel event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancel</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancel</CODE> - The cancel notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Canceling
+ Canceling -> Canceling
+ Completing -> Canceling
+ Completed -> Completed (resend Completed)
+ Closing -> Closing
+ Compensating -> Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting (resend Fault)
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (resend Exit)
+ Ended -> Ended (resend Cancelled)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the close event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>close</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>close</CODE> - The close notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completing -> Completing (invalid state)
+ Completed -> Closing
+ Closing -> Closing
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (send Closed)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public void <B>compensate</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+                       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the compensate event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensate</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensate</CODE> - The compensate notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completing -> Completing (invalid state)
+ Completed -> Compensating
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (resend fault)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (send compensated)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public void <B>complete</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;complete,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the complete event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>complete</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>complete</CODE> - The complete notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Completing
+ Canceling -> Canceling
+ Completing -> Completing
+ Completed -> Completed (resend Completed)
+ Closing -> Closing
+ Compensating -> Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting (resend Fault)
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (resend Exit)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exited</H3>
+<PRE>
+public void <B>exited</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the exited event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exited</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exited</CODE> - The exited notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Ended
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+faulted</H3>
+<PRE>
+public void <B>faulted</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the faulted event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>faulted</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>faulted</CODE> - The faulted notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)
+ Faulting -> Ended
+ Faulting-Active -> Ended
+ Faulting-Compensating -> Ended
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the getStatus event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The getStatus notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the status event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status type.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the soap fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in interface <CODE>com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The soap fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed()"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>completed</B>()</PRE>
+<DL>
+<DD>Handle the completed event.
+ 
+ Active -> Completed
+ Canceling -> Canceling (invalid state)
+ Completing -> Completed
+ Completed -> Completed
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting-Active (invalid state)
+ Faulting-Compensating -> Faulting-Compensating (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (invalid state)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exit()"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>exit</B>()</PRE>
+<DL>
+<DD>Handle the exit event.
+ 
+ Active -> Exiting
+ Canceling -> Canceling (invalid state)
+ Completing -> Exiting
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting-Active (invalid state)
+ Faulting-Compensating -> Faulting-Compensating (invalid state)
+ Exiting -> Exiting
+ Ended -> Ended (invalid state)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault()"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>fault</B>()</PRE>
+<DL>
+<DD>Handle the fault event.
+ 
+ Active -> Faulting-Active
+ Canceling -> Canceling (invalid state)
+ Completing -> Faulting-Active
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Faulting-Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting-Active
+ Faulting-Compensating -> Faulting-Compensating
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (invalid state)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Get the coordinator id.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator id.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinator()"><!-- --></A><H3>
+getCoordinator</H3>
+<PRE>
+public com.arjuna.webservices.wsaddr.EndpointReferenceType <B>getCoordinator</B>()</PRE>
+<DL>
+<DD>Get the coordinator endpoint reference
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator endpoint reference</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParticipant()"><!-- --></A><H3>
+getParticipant</H3>
+<PRE>
+public <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A> <B>getParticipant</B>()</PRE>
+<DL>
+<DD>Get the associated participant.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The associated participant.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorCompletionParticipantEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorEngine.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorEngine.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/CoordinatorEngine.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,667 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+CoordinatorEngine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines.CoordinatorEngine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CoordinatorEngine";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/CoordinatorEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.engines</FONT>
+<BR>
+Class CoordinatorEngine</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.engines.CoordinatorEngine</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.arjuna.webservices.wsat.CoordinatorInboundEvents</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>CoordinatorEngine</B><DT>extends java.lang.Object<DT>implements com.arjuna.webservices.wsat.CoordinatorInboundEvents</DL>
+</PRE>
+
+<P>
+The coordinator state engine
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#CoordinatorEngine(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType)">CoordinatorEngine</A></B>(java.lang.String&nbsp;id,
+                  boolean&nbsp;durable,
+                  com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the initial engine for the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#CoordinatorEngine(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsat.State)">CoordinatorEngine</A></B>(java.lang.String&nbsp;id,
+                  boolean&nbsp;durable,
+                  com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant,
+                  com.arjuna.webservices.wsat.State&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the engine for the coordinator in a specified state.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#aborted(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">aborted</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;aborted,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the aborted event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsat.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the commit event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#committed(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">committed</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;committed,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the committed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator id.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#getParticipant()">getParticipant</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the participant endpoint reference</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#isDurable()">isDurable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the participant durable?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#isReadOnly()">isReadOnly</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Was this a read only response?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsat.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#prepare()">prepare</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the prepare event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#prepared(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">prepared</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepared,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the prepared event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#readOnly(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">readOnly</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;readOnly,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the readOnly event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#replay(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">replay</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;replay,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the replay event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsat.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the rollback event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the soap fault event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CoordinatorEngine(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+CoordinatorEngine</H3>
+<PRE>
+public <B>CoordinatorEngine</B>(java.lang.String&nbsp;id,
+                         boolean&nbsp;durable,
+                         com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant)</PRE>
+<DL>
+<DD>Construct the initial engine for the coordinator.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The coordinator id.<DD><CODE>durable</CODE> - true if the participant is durable, false if volatile.<DD><CODE>participant</CODE> - The participant endpoint reference.</DL>
+</DL>
+<HR>
+
+<A NAME="CoordinatorEngine(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsat.State)"><!-- --></A><H3>
+CoordinatorEngine</H3>
+<PRE>
+public <B>CoordinatorEngine</B>(java.lang.String&nbsp;id,
+                         boolean&nbsp;durable,
+                         com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant,
+                         com.arjuna.webservices.wsat.State&nbsp;state)</PRE>
+<DL>
+<DD>Construct the engine for the coordinator in a specified state.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The coordinator id.<DD><CODE>durable</CODE> - true if the participant is durable, false if volatile.<DD><CODE>participant</CODE> - The participant endpoint reference.<DD><CODE>state</CODE> - The initial state.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="aborted(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+aborted</H3>
+<PRE>
+public void <B>aborted</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;aborted,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the aborted event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>aborted</CODE> in interface <CODE>com.arjuna.webservices.wsat.CoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>aborted</CODE> - The aborted notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ None -> None (ignore)
+ Active -> Aborting (forget)
+ Preparing -> Aborting (forget)
+ PreparedSuccess -> PreparedSuccess (invalid state)
+ Committing -> Committing (invalid state)
+ Aborting -> Aborting (forget)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="committed(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+committed</H3>
+<PRE>
+public void <B>committed</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;committed,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the committed event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>committed</CODE> in interface <CODE>com.arjuna.webservices.wsat.CoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>committed</CODE> - The committed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="prepared(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+prepared</H3>
+<PRE>
+public void <B>prepared</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepared,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the prepared event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>prepared</CODE> in interface <CODE>com.arjuna.webservices.wsat.CoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prepared</CODE> - The prepared notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readOnly(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+readOnly</H3>
+<PRE>
+public void <B>readOnly</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;readOnly,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the readOnly event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>readOnly</CODE> in interface <CODE>com.arjuna.webservices.wsat.CoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>readOnly</CODE> - The readOnly notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ None -> None (ignore)
+ Active -> Active (forget)
+ Preparing -> Preparing (forget)
+ PreparedSuccess -> PreparedSuccess (invalid state)
+ Committing -> Committing (invalid state)
+ Aborting -> Aborting (forget)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="replay(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+replay</H3>
+<PRE>
+public void <B>replay</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;replay,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the replay event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>replay</CODE> in interface <CODE>com.arjuna.webservices.wsat.CoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>replay</CODE> - The replay notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ None -> Durable: (send rollback), Volatile: Invalid state: none
+ Active -> Aborting (send rollback)
+ Preparing -> Aborting (send rollback)
+ PreparedSuccess -> PreparedSuccess (ignore)
+ Committing -> Committing (send commit)
+ Aborting -> Aborting (send rollback)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the soap fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in interface <CODE>com.arjuna.webservices.wsat.CoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The soap fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="prepare()"><!-- --></A><H3>
+prepare</H3>
+<PRE>
+public com.arjuna.webservices.wsat.State <B>prepare</B>()</PRE>
+<DL>
+<DD>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)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public com.arjuna.webservices.wsat.State <B>commit</B>()</PRE>
+<DL>
+<DD>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)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public com.arjuna.webservices.wsat.State <B>rollback</B>()</PRE>
+<DL>
+<DD>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)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Get the coordinator id.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator id.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParticipant()"><!-- --></A><H3>
+getParticipant</H3>
+<PRE>
+public com.arjuna.webservices.wsaddr.EndpointReferenceType <B>getParticipant</B>()</PRE>
+<DL>
+<DD>Get the participant endpoint reference
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The participant endpoint reference</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDurable()"><!-- --></A><H3>
+isDurable</H3>
+<PRE>
+public boolean <B>isDurable</B>()</PRE>
+<DL>
+<DD>Is the participant durable?
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if durable, false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isReadOnly()"><!-- --></A><H3>
+isReadOnly</H3>
+<PRE>
+public boolean <B>isReadOnly</B>()</PRE>
+<DL>
+<DD>Was this a read only response?
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if a read only response, false otherwise.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/CoordinatorEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CoordinatorEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,784 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+ParticipantCompletionCoordinatorEngine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantCompletionCoordinatorEngine";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionCoordinatorEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.engines</FONT>
+<BR>
+Class ParticipantCompletionCoordinatorEngine</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantCompletionCoordinatorEngine</B><DT>extends java.lang.Object<DT>implements com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</DL>
+</PRE>
+
+<P>
+The participant completion coordinator state engine
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#ParticipantCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">ParticipantCompletionCoordinatorEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the initial engine for the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#ParticipantCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsba.State)">ParticipantCompletionCoordinatorEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant,
+                                       com.arjuna.webservices.wsba.State&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the engine for the coordinator in a specified state.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the cancel event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancelled</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the cancelled event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the close event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">closed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the closed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#compensate()">compensate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the compensate event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensated</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+            com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+            com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the compensated event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">completed</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the completed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exit</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the exit event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">fault</A></B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getCoordinator()">getCoordinator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the associated coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator id.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getParticipant()">getParticipant</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the participant endpoint reference</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getStatus()">getStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the get status event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the getStatus event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#setCoordinator(com.arjuna.wst.BAParticipantManager)">setCoordinator</A></B>(<A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the coordinator and register</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the soap fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the status event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+ParticipantCompletionCoordinatorEngine</H3>
+<PRE>
+public <B>ParticipantCompletionCoordinatorEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant)</PRE>
+<DL>
+<DD>Construct the initial engine for the coordinator.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The coordinator id.<DD><CODE>participant</CODE> - The participant endpoint reference.</DL>
+</DL>
+<HR>
+
+<A NAME="ParticipantCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsba.State)"><!-- --></A><H3>
+ParticipantCompletionCoordinatorEngine</H3>
+<PRE>
+public <B>ParticipantCompletionCoordinatorEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;participant,
+                                              com.arjuna.webservices.wsba.State&nbsp;state)</PRE>
+<DL>
+<DD>Construct the engine for the coordinator in a specified state.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The coordinator id.<DD><CODE>participant</CODE> - The participant endpoint reference.<DD><CODE>state</CODE> - The initial state.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setCoordinator(com.arjuna.wst.BAParticipantManager)"><!-- --></A><H3>
+setCoordinator</H3>
+<PRE>
+public void <B>setCoordinator</B>(<A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>&nbsp;coordinator)</PRE>
+<DL>
+<DD>Set the coordinator and register
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinator</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancelled</H3>
+<PRE>
+public void <B>cancelled</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancelled,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the cancelled event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancelled</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancelled</CODE> - The cancelled notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Ended
+ 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 (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+closed</H3>
+<PRE>
+public void <B>closed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;closed,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the closed event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>closed</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>closed</CODE> - The closed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Ended
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensated</H3>
+<PRE>
+public void <B>compensated</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensated,
+                        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the compensated event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensated</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensated</CODE> - The compensated notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Ended
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public void <B>completed</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;completed,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the completed event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>completed</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>completed</CODE> - The completed notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Completed
+ Canceling -> Compensating
+ Completed -> Completed
+ Closing -> Closing (resend close)
+ Compensating -> Compensating (resend compensate)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public void <B>exit</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exit,
+                 com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                 com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the exit event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exit</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exit</CODE> - The exit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Exiting
+ Canceling -> Exiting
+ Completed -> Completed
+ 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public void <B>fault</B>(com.arjuna.webservices.wsba.ExceptionType&nbsp;fault,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>fault</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fault</CODE> - The fault exception.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Faulting-Active
+ Canceling -> Faulting-Active
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Faulting-Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (resend Faulted)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the getStatus event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The getStatus notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the status event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus()"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>getStatus</B>()</PRE>
+<DL>
+<DD>Handle the get status event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>cancel</B>()</PRE>
+<DL>
+<DD>Handle the cancel event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate()"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>compensate</B>()</PRE>
+<DL>
+<DD>Handle the compensate event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>close</B>()</PRE>
+<DL>
+<DD>Handle the close event.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The state.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the soap fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The soap fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Get the coordinator id.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator id.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParticipant()"><!-- --></A><H3>
+getParticipant</H3>
+<PRE>
+public com.arjuna.webservices.wsaddr.EndpointReferenceType <B>getParticipant</B>()</PRE>
+<DL>
+<DD>Get the participant endpoint reference
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The participant endpoint reference</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinator()"><!-- --></A><H3>
+getCoordinator</H3>
+<PRE>
+public <A HREF="../../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A> <B>getCoordinator</B>()</PRE>
+<DL>
+<DD>Get the associated coordinator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The associated coordinator.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionCoordinatorEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,730 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+ParticipantCompletionParticipantEngine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantCompletionParticipantEngine";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionParticipantEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.engines</FONT>
+<BR>
+Class ParticipantCompletionParticipantEngine</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantCompletionParticipantEngine</B><DT>extends java.lang.Object<DT>implements com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</DL>
+</PRE>
+
+<P>
+The participant completion participant state engine
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#ParticipantCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant)">ParticipantCompletionParticipantEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                       <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the initial engine for the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#ParticipantCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant, com.arjuna.webservices.wsba.State)">ParticipantCompletionParticipantEngine</A></B>(java.lang.String&nbsp;id,
+                                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                       <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>&nbsp;participant,
+                                       com.arjuna.webservices.wsba.State&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the engine for the participant in a specified state.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">cancel</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the cancel event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">close</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the close event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">compensate</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+           com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+           com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the compensate event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#completed()">completed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the completed event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#exit()">exit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the exit event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">exited</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the exited event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsba.State</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#fault()">fault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">faulted</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the faulted event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;com.arjuna.webservices.wsaddr.EndpointReferenceType</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getCoordinator()">getCoordinator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator endpoint reference</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the coordinator id.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getParticipant()">getParticipant</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the associated participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">getStatus</A></B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the getStatus event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the soap fault event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">status</A></B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the status event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant)"><!-- --></A><H3>
+ParticipantCompletionParticipantEngine</H3>
+<PRE>
+public <B>ParticipantCompletionParticipantEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                              <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>&nbsp;participant)</PRE>
+<DL>
+<DD>Construct the initial engine for the participant.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The participant id.<DD><CODE>coordinator</CODE> - The coordinator endpoint reference.<DD><CODE>participant</CODE> - The participant.</DL>
+</DL>
+<HR>
+
+<A NAME="ParticipantCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant, com.arjuna.webservices.wsba.State)"><!-- --></A><H3>
+ParticipantCompletionParticipantEngine</H3>
+<PRE>
+public <B>ParticipantCompletionParticipantEngine</B>(java.lang.String&nbsp;id,
+                                              com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator,
+                                              <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>&nbsp;participant,
+                                              com.arjuna.webservices.wsba.State&nbsp;state)</PRE>
+<DL>
+<DD>Construct the engine for the participant in a specified state.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The participant id.<DD><CODE>coordinator</CODE> - The coordinator endpoint reference.<DD><CODE>participant</CODE> - The participant.<DD><CODE>state</CODE> - The initial state.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;cancel,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the cancel event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>cancel</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cancel</CODE> - The cancel notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Canceling
+ Canceling -> Canceling
+ Completed -> Completed (resend Completed)
+ Closing -> Closing
+ Compensating -> Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting (resend Fault)
+ Faulting-Compensating -> Faulting
+ Exiting -> Exiting (resend Exit)
+ Ended -> Ended (resend Cancelled)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;close,
+                  com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                  com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the close event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>close</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>close</CODE> - The close notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completed -> Closing
+ Closing -> Closing
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (send Closed)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public void <B>compensate</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;compensate,
+                       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the compensate event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compensate</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>compensate</CODE> - The compensate notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completed -> Compensating
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting (invalid state)
+ Faulting-Compensating -> Faulting (resend fault)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (send compensated)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+exited</H3>
+<PRE>
+public void <B>exited</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;exited,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the exited event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>exited</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exited</CODE> - The exited notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ 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 -> Ended
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+faulted</H3>
+<PRE>
+public void <B>faulted</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;faulted,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the faulted event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>faulted</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>faulted</CODE> - The faulted notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.
+ 
+ Active -> Active (invalid state)
+ Canceling -> Canceling (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating (invalid state)
+ Faulting -> Ended
+ Faulting-Active -> Ended
+ Faulting-Compensating -> Ended
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public void <B>getStatus</B>(com.arjuna.webservices.wsba.NotificationType&nbsp;getStatus,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the getStatus event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getStatus</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>getStatus</CODE> - The getStatus notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(com.arjuna.webservices.wsba.StatusType&nbsp;status,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the status event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>status</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - The status type.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the soap fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in interface <CODE>com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The soap fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed()"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>completed</B>()</PRE>
+<DL>
+<DD>Handle the completed event.
+ 
+ Active -> Completed
+ Canceling -> Canceling (invalid state)
+ Completed -> Completed
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting-Active (invalid state)
+ Faulting-Compensating -> Faulting-Compensating (invalid state)
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (invalid state)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exit()"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>exit</B>()</PRE>
+<DL>
+<DD>Handle the exit event.
+ 
+ Active -> Exiting
+ Canceling -> Canceling (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Compensating (invalid state)
+ Faulting -> Faulting (invalid state)
+ Faulting-Active -> Faulting-Active (invalid state)
+ Faulting-Compensating -> Faulting-Compensating (invalid state)
+ Exiting -> Exiting
+ Ended -> Ended (invalid state)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault()"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public com.arjuna.webservices.wsba.State <B>fault</B>()</PRE>
+<DL>
+<DD>Handle the fault event.
+ 
+ Active -> Faulting-Active
+ Canceling -> Canceling (invalid state)
+ Completed -> Completed (invalid state)
+ Closing -> Closing (invalid state)
+ Compensating -> Faulting-Compensating
+ Faulting -> Faulting
+ Faulting-Active -> Faulting-Active
+ Faulting-Compensating -> Faulting-Compensating
+ Exiting -> Exiting (invalid state)
+ Ended -> Ended (invalid state)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Get the coordinator id.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator id.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinator()"><!-- --></A><H3>
+getCoordinator</H3>
+<PRE>
+public com.arjuna.webservices.wsaddr.EndpointReferenceType <B>getCoordinator</B>()</PRE>
+<DL>
+<DD>Get the coordinator endpoint reference
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The coordinator endpoint reference</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParticipant()"><!-- --></A><H3>
+getParticipant</H3>
+<PRE>
+public <A HREF="../../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A> <B>getParticipant</B>()</PRE>
+<DL>
+<DD>Get the associated participant.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The associated participant.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantCompletionParticipantEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantEngine.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantEngine.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/ParticipantEngine.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,497 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+ParticipantEngine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines.ParticipantEngine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantEngine";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/ParticipantEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.messaging.engines</FONT>
+<BR>
+Class ParticipantEngine</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.messaging.engines.ParticipantEngine</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.arjuna.webservices.wsat.ParticipantInboundEvents</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantEngine</B><DT>extends java.lang.Object<DT>implements com.arjuna.webservices.wsat.ParticipantInboundEvents</DL>
+</PRE>
+
+<P>
+The participant state engine
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>kevin</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#ParticipantEngine(com.arjuna.wst.Participant, java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">ParticipantEngine</A></B>(<A HREF="../../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>&nbsp;participant,
+                  java.lang.String&nbsp;id,
+                  com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the initial engine for the participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#ParticipantEngine(com.arjuna.wst.Participant, java.lang.String, com.arjuna.webservices.wsat.State, com.arjuna.webservices.wsaddr.EndpointReferenceType)">ParticipantEngine</A></B>(<A HREF="../../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>&nbsp;participant,
+                  java.lang.String&nbsp;id,
+                  com.arjuna.webservices.wsat.State&nbsp;state,
+                  com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the engine for the participant in a specified state.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">commit</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;commit,
+       com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+       com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the commit event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#earlyReadonly()">earlyReadonly</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the early readonly event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#earlyRollback()">earlyRollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the early rollback event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#prepare(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">prepare</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepare,
+        com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+        com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the prepare event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#recovery()">recovery</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the recovery event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">rollback</A></B>(com.arjuna.webservices.wsat.NotificationType&nbsp;rollback,
+         com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+         com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the rollback event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)">soapFault</A></B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+          com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+          com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handle the soap fault event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantEngine(com.arjuna.wst.Participant, java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+ParticipantEngine</H3>
+<PRE>
+public <B>ParticipantEngine</B>(<A HREF="../../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>&nbsp;participant,
+                         java.lang.String&nbsp;id,
+                         com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator)</PRE>
+<DL>
+<DD>Construct the initial engine for the participant.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>id</CODE> - The participant id.<DD><CODE>coordinator</CODE> - The coordinator endpoint reference.</DL>
+</DL>
+<HR>
+
+<A NAME="ParticipantEngine(com.arjuna.wst.Participant, java.lang.String, com.arjuna.webservices.wsat.State, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+ParticipantEngine</H3>
+<PRE>
+public <B>ParticipantEngine</B>(<A HREF="../../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>&nbsp;participant,
+                         java.lang.String&nbsp;id,
+                         com.arjuna.webservices.wsat.State&nbsp;state,
+                         com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;coordinator)</PRE>
+<DL>
+<DD>Construct the engine for the participant in a specified state.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>participant</CODE> - The participant.<DD><CODE>id</CODE> - The participant id.<DD><CODE>state</CODE> - The initial state.<DD><CODE>coordinator</CODE> - The coordinator endpoint reference.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public void <B>commit</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;commit,
+                   com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                   com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the commit event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>commit</CODE> in interface <CODE>com.arjuna.webservices.wsat.ParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>commit</CODE> - The commit notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="prepare(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+prepare</H3>
+<PRE>
+public void <B>prepare</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;prepare,
+                    com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                    com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the prepare event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>prepare</CODE> in interface <CODE>com.arjuna.webservices.wsat.ParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prepare</CODE> - The prepare notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public void <B>rollback</B>(com.arjuna.webservices.wsat.NotificationType&nbsp;rollback,
+                     com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                     com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the rollback event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>rollback</CODE> in interface <CODE>com.arjuna.webservices.wsat.ParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>rollback</CODE> - The rollback notification.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - 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)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="earlyRollback()"><!-- --></A><H3>
+earlyRollback</H3>
+<PRE>
+public void <B>earlyRollback</B>()</PRE>
+<DL>
+<DD>Handle the early rollback event.
+ 
+ None -> None
+ Active -> Aborting (execute rollback, send aborted and forget)
+ Preparing -> Aborting (execute rollback, send aborted and forget)
+ PreparedSuccess -> PreparedSuccess
+ Committing -> Committing
+ Aborting -> Aborting
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="earlyReadonly()"><!-- --></A><H3>
+earlyReadonly</H3>
+<PRE>
+public void <B>earlyReadonly</B>()</PRE>
+<DL>
+<DD>Handle the early readonly event.
+ 
+ None -> None
+ Active -> None (send ReadOnly)
+ Preparing -> None (send ReadOnly)
+ PreparedSuccess -> PreparedSuccess
+ Committing -> Committing
+ Aborting -> Aborting
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="recovery()"><!-- --></A><H3>
+recovery</H3>
+<PRE>
+public void <B>recovery</B>()</PRE>
+<DL>
+<DD>Handle the recovery event.
+ 
+ None -> None
+ Active -> Active
+ Preparing -> Preparing
+ PreparedSuccess -> PreparedSuccess
+ Committing -> PreparedSuccess (resend Prepared)
+ Aborting -> Aborting
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><!-- --></A><H3>
+soapFault</H3>
+<PRE>
+public void <B>soapFault</B>(com.arjuna.webservices.SoapFault&nbsp;soapFault,
+                      com.arjuna.webservices.wsaddr.AddressingContext&nbsp;addressingContext,
+                      com.arjuna.webservices.wsarj.ArjunaContext&nbsp;arjunaContext)</PRE>
+<DL>
+<DD>Handle the soap fault event.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>soapFault</CODE> in interface <CODE>com.arjuna.webservices.wsat.ParticipantInboundEvents</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>soapFault</CODE> - The soap fault.<DD><CODE>addressingContext</CODE> - The addressing context.<DD><CODE>arjunaContext</CODE> - The arjuna context.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/ParticipantEngine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantEngine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging.engines
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/arjuna/wst/messaging/engines/package-summary.html" target="classFrame">com.arjuna.wst.messaging.engines</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">CoordinatorCompletionCoordinatorEngine</A>
+<BR>
+<A HREF="CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">CoordinatorCompletionParticipantEngine</A>
+<BR>
+<A HREF="CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">CoordinatorEngine</A>
+<BR>
+<A HREF="ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">ParticipantCompletionCoordinatorEngine</A>
+<BR>
+<A HREF="ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">ParticipantCompletionParticipantEngine</A>
+<BR>
+<A HREF="ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines" target="classFrame">ParticipantEngine</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging.engines
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging.engines package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.messaging.engines";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/deploy/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/stub/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wst.messaging.engines
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A></B></TD>
+<TD>The coordinator completion coordinator state engine</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A></B></TD>
+<TD>The coordinator completion participant state engine</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A></B></TD>
+<TD>The coordinator state engine</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A></B></TD>
+<TD>The participant completion coordinator state engine</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A></B></TD>
+<TD>The participant completion participant state engine</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A></B></TD>
+<TD>The participant state engine</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/deploy/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/stub/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/engines/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging.engines Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.messaging.engines Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/deploy/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/stub/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wst.messaging.engines
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorCompletionCoordinatorEngine</B></A> (implements com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents)
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorCompletionParticipantEngine</B></A> (implements com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents)
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="../../../../../com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorEngine</B></A> (implements com.arjuna.webservices.wsat.CoordinatorInboundEvents)
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantCompletionCoordinatorEngine</B></A> (implements com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents)
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantCompletionParticipantEngine</B></A> (implements com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents)
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="../../../../../com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantEngine</B></A> (implements com.arjuna.webservices.wsat.ParticipantInboundEvents)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../com/arjuna/wst/messaging/deploy/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../com/arjuna/wst/stub/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?com/arjuna/wst/messaging/engines/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/arjuna/wst/messaging/package-summary.html" target="classFrame">com.arjuna.wst.messaging</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CoordinatorCompletionParticipantProcessorImpl</A>
+<BR>
+<A HREF="CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">CoordinatorProcessorImpl</A>
+<BR>
+<A HREF="ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">ParticipantCompletionCoordinatorProcessorImpl</A>
+<BR>
+<A HREF="ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">ParticipantCompletionParticipantProcessorImpl</A>
+<BR>
+<A HREF="ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">ParticipantProcessorImpl</A>
+<BR>
+<A HREF="TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging" target="classFrame">TerminatorParticipantProcessorImpl</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.messaging package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.messaging";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/deploy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wst.messaging
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A></B></TD>
+<TD>The Completion Coordinator processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A></B></TD>
+<TD>The Coordinator Completion Coordinator processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A></B></TD>
+<TD>The Coordinator Completion Participant processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A></B></TD>
+<TD>The Coordinator processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A></B></TD>
+<TD>The Participant Completion Coordinator processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A></B></TD>
+<TD>The Participant Completion Participant processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A></B></TD>
+<TD>The Participant processor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A></B></TD>
+<TD>The Terminator Participant processor.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/deploy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/messaging/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.messaging Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.messaging Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/deploy/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wst.messaging
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CompletionCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorCompletionCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorCompletionParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsat.processors.CoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantCompletionCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantCompletionParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsat.processors.ParticipantProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="../../../../com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>TerminatorParticipantProcessorImpl</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/deploy/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/messaging/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../com/arjuna/wst/package-summary.html" target="classFrame">com.arjuna.wst</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BAParticipantManager.html" title="interface in com.arjuna.wst" target="classFrame"><I>BAParticipantManager</I></A>
+<BR>
+<A HREF="BusinessActivityTerminator.html" title="interface in com.arjuna.wst" target="classFrame"><I>BusinessActivityTerminator</I></A>
+<BR>
+<A HREF="BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>BusinessAgreementWithCoordinatorCompletionParticipant</I></A>
+<BR>
+<A HREF="BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>BusinessAgreementWithParticipantCompletionParticipant</I></A>
+<BR>
+<A HREF="CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>CompletionCoordinatorParticipant</I></A>
+<BR>
+<A HREF="Durable2PCParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>Durable2PCParticipant</I></A>
+<BR>
+<A HREF="Participant.html" title="interface in com.arjuna.wst" target="classFrame"><I>Participant</I></A>
+<BR>
+<A HREF="PersistableParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>PersistableParticipant</I></A>
+<BR>
+<A HREF="Volatile2PCParticipant.html" title="interface in com.arjuna.wst" target="classFrame"><I>Volatile2PCParticipant</I></A>
+<BR>
+<A HREF="Vote.html" title="interface in com.arjuna.wst" target="classFrame"><I>Vote</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Aborted.html" title="class in com.arjuna.wst" target="classFrame">Aborted</A>
+<BR>
+<A HREF="Cancel.html" title="class in com.arjuna.wst" target="classFrame">Cancel</A>
+<BR>
+<A HREF="Prepared.html" title="class in com.arjuna.wst" target="classFrame">Prepared</A>
+<BR>
+<A HREF="ReadOnly.html" title="class in com.arjuna.wst" target="classFrame">ReadOnly</A>
+<BR>
+<A HREF="Status.html" title="class in com.arjuna.wst" target="classFrame">Status</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="FaultedException.html" title="class in com.arjuna.wst" target="classFrame">FaultedException</A>
+<BR>
+<A HREF="SystemException.html" title="class in com.arjuna.wst" target="classFrame">SystemException</A>
+<BR>
+<A HREF="TransactionRolledBackException.html" title="class in com.arjuna.wst" target="classFrame">TransactionRolledBackException</A>
+<BR>
+<A HREF="UnknownTransactionException.html" title="class in com.arjuna.wst" target="classFrame">UnknownTransactionException</A>
+<BR>
+<A HREF="WrongStateException.html" title="class in com.arjuna.wst" target="classFrame">WrongStateException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/deploy/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/messaging/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wst
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></B></TD>
+<TD>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.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A></B></TD>
+<TD>Not in the 1.1 specification.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A></B></TD>
+<TD>The Durable2PCParticipant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></B></TD>
+<TD>The base Participant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></B></TD>
+<TD>The interface for a persistable resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A></B></TD>
+<TD>The Volatile2PCParticipant.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></B></TD>
+<TD>When asked to prepare, a 2PC participant returns one of three types of
+ vote:
+
+ ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst">Aborted</A></B></TD>
+<TD>Aborted: the participant has aborted and the transaction should also
+ attempt to do so.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst">Cancel</A></B></TD>
+<TD>Cancel: the participant is in an unknown state and should be rolledback.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst">Prepared</A></B></TD>
+<TD>Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst">ReadOnly</A></B></TD>
+<TD>ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></B></TD>
+<TD>Thrown if there is a fault during complete or compensation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></B></TD>
+<TD>Thrown if a general exception is encountered (one not supported by
+ any other exception.)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></B></TD>
+<TD>Thrown if the transaction rolls back rather than commits.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></B></TD>
+<TD>Thrown if the transaction is unknown.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></B></TD>
+<TD>Thrown if the state of the transaction is incompatible with the
+ operation attempted.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/deploy/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/messaging/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+com.arjuna.wst Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/deploy/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/messaging/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wst
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst"><B>Aborted</B></A> (implements com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>Cancel</B></A> (implements com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>Prepared</B></A> (implements com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>ReadOnly</B></A> (implements com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>Status</B></A><LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>FaultedException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>SystemException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>TransactionRolledBackException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>UnknownTransactionException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst"><B>WrongStateException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>BAParticipantManager</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>BusinessActivityTerminator</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>BusinessAgreementWithParticipantCompletionParticipant</B></A><UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>BusinessAgreementWithCoordinatorCompletionParticipant</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>CompletionCoordinatorParticipant</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>Participant</B></A><UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>Durable2PCParticipant</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>Volatile2PCParticipant</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>PersistableParticipant</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>Vote</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../com/arjuna/wsc/messaging/deploy/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/arjuna/wst/messaging/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?com/arjuna/wst/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+BACoordinatorCompletionParticipantManagerStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.BACoordinatorCompletionParticipantManagerStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BACoordinatorCompletionParticipantManagerStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BACoordinatorCompletionParticipantManagerStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class BACoordinatorCompletionParticipantManagerStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.BACoordinatorCompletionParticipantManagerStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>BACoordinatorCompletionParticipantManagerStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#BACoordinatorCompletionParticipantManagerStub(com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine)">BACoordinatorCompletionParticipantManagerStub</A></B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#completed()">completed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#exit()">exit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant has exited the business activity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#fault()">fault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An unknown error has occurred that the participant wants to communicate
+ to the coordinator.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BACoordinatorCompletionParticipantManagerStub(com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine)"><!-- --></A><H3>
+BACoordinatorCompletionParticipantManagerStub</H3>
+<PRE>
+public <B>BACoordinatorCompletionParticipantManagerStub</B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>&nbsp;coordinator)
+                                              throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="exit()"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public void <B>exit</B>()
+          throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                 <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                 <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#exit()">BAParticipantManager</A></CODE></B></DD>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#exit()">exit</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed()"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public void <B>completed</B>()
+               throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                      <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                      <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#completed()">BAParticipantManager</A></CODE></B></DD>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#completed()">completed</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault()"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public void <B>fault</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#fault()">BAParticipantManager</A></CODE></B></DD>
+<DD>Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#fault()">fault</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+public void <B>unknown</B>()
+             throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#unknown()">BAParticipantManager</A></CODE></B></DD>
+<DD>An unknown error has occurred that the participant wants to communicate
+ to the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#unknown()">unknown</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#error()">BAParticipantManager</A></CODE></B></DD>
+<DD>An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#error()">error</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BACoordinatorCompletionParticipantManagerStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+BAParticipantCompletionParticipantManagerStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.BAParticipantCompletionParticipantManagerStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BAParticipantCompletionParticipantManagerStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BAParticipantCompletionParticipantManagerStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class BAParticipantCompletionParticipantManagerStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.BAParticipantCompletionParticipantManagerStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>BAParticipantCompletionParticipantManagerStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#BAParticipantCompletionParticipantManagerStub(com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine)">BAParticipantCompletionParticipantManagerStub</A></B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>&nbsp;coordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#completed()">completed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#exit()">exit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant has exited the business activity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#fault()">fault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fault.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An unknown error has occurred that the participant wants to communicate
+ to the coordinator.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BAParticipantCompletionParticipantManagerStub(com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine)"><!-- --></A><H3>
+BAParticipantCompletionParticipantManagerStub</H3>
+<PRE>
+public <B>BAParticipantCompletionParticipantManagerStub</B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>&nbsp;coordinator)
+                                              throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="exit()"><!-- --></A><H3>
+exit</H3>
+<PRE>
+public void <B>exit</B>()
+          throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                 <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                 <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#exit()">BAParticipantManager</A></CODE></B></DD>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#exit()">exit</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="completed()"><!-- --></A><H3>
+completed</H3>
+<PRE>
+public void <B>completed</B>()
+               throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                      <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                      <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#completed()">BAParticipantManager</A></CODE></B></DD>
+<DD>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.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#completed()">completed</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fault()"><!-- --></A><H3>
+fault</H3>
+<PRE>
+public void <B>fault</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#fault()">BAParticipantManager</A></CODE></B></DD>
+<DD>Fault.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#fault()">fault</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+public void <B>unknown</B>()
+             throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#unknown()">BAParticipantManager</A></CODE></B></DD>
+<DD>An unknown error has occurred that the participant wants to communicate
+ to the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#unknown()">unknown</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#error()">BAParticipantManager</A></CODE></B></DD>
+<DD>An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html#error()">error</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BAParticipantCompletionParticipantManagerStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessActivityTerminatorStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessActivityTerminatorStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessActivityTerminatorStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+BusinessActivityTerminatorStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.BusinessActivityTerminatorStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessActivityTerminatorStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityTerminatorStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class BusinessActivityTerminatorStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.BusinessActivityTerminatorStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>BusinessActivityTerminatorStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#BusinessActivityTerminatorStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">BusinessActivityTerminatorStub</A></B>(java.lang.String&nbsp;id,
+                               com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;terminationParticipant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BusinessActivityTerminatorStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+BusinessActivityTerminatorStub</H3>
+<PRE>
+public <B>BusinessActivityTerminatorStub</B>(java.lang.String&nbsp;id,
+                                      com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;terminationParticipant)
+                               throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()
+           throws <A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>,
+                  <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                  <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>()
+            throws <A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                   <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                   <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html#cancel()">cancel</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public void <B>complete</B>()
+              throws <A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                     <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                     <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html#complete()">complete</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+public void <B>unknown</B>()
+             throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessActivityTerminatorStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,507 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+BusinessAgreementWithCoordinatorCompletionStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessAgreementWithCoordinatorCompletionStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithCoordinatorCompletionStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class BusinessAgreementWithCoordinatorCompletionStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>, <A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>BusinessAgreementWithCoordinatorCompletionStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#BusinessAgreementWithCoordinatorCompletionStub(com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine)">BusinessAgreementWithCoordinatorCompletionStub</A></B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has cancelled, and the participant should undo any work.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has completed successfully.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#compensate()">compensate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has cancelled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#complete()">complete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The coordinator is informing the participant that all work it needs to
+ do within the scope of this business activity has been received.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore the state of the particpant from the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the state of the particpant to the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#status()">status</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BusinessAgreementWithCoordinatorCompletionStub(com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine)"><!-- --></A><H3>
+BusinessAgreementWithCoordinatorCompletionStub</H3>
+<PRE>
+public <B>BusinessAgreementWithCoordinatorCompletionStub</B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>&nbsp;participant)
+                                               throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()
+           throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                  <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>The transaction has completed successfully. The participant previously
+ informed the coordinator that it was ready to complete.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>()
+            throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                   <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>The transaction has cancelled, and the participant should undo any work.
+ The participant cannot have informed the coordinator that it has
+ completed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()">cancel</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate()"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public void <B>compensate</B>()
+                throws <A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                       <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                       <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>The transaction has cancelled. The participant previously
+ informed the coordinator that it had finished work but could compensate
+ later if required, so it is now requested to do so.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()">compensate</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="complete()"><!-- --></A><H3>
+complete</H3>
+<PRE>
+public void <B>complete</B>()
+              throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                     <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html#complete()">BusinessAgreementWithCoordinatorCompletionParticipant</A></CODE></B></DD>
+<DD>The coordinator is informing the participant that all work it needs to
+ do within the scope of this business activity has been received.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html#complete()">complete</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status()"><!-- --></A><H3>
+status</H3>
+<PRE>
+public java.lang.String <B>status</B>()
+                        throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#status()">status</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the status value.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+public void <B>unknown</B>()
+             throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()">unknown</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()">error</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><!-- --></A><H3>
+saveState</H3>
+<PRE>
+public boolean <B>saveState</B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">PersistableParticipant</A></CODE></B></DD>
+<DD>Save the state of the particpant to the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>oos</CODE> - The output output stream.
+<DT><B>Returns:</B><DD>true if persisted, false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><!-- --></A><H3>
+restoreState</H3>
+<PRE>
+public boolean <B>restoreState</B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">PersistableParticipant</A></CODE></B></DD>
+<DD>Restore the state of the particpant from the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ios</CODE> - The Input object stream.
+<DT><B>Returns:</B><DD>true if restored, false otherwise.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithCoordinatorCompletionStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,475 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+BusinessAgreementWithParticipantCompletionStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BusinessAgreementWithParticipantCompletionStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithParticipantCompletionStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class BusinessAgreementWithParticipantCompletionStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>BusinessAgreementWithParticipantCompletionStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#BusinessAgreementWithParticipantCompletionStub(com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine)">BusinessAgreementWithParticipantCompletionStub</A></B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>&nbsp;participant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#cancel()">cancel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has cancelled, and the participant should undo any work.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has completed successfully.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#compensate()">compensate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transaction has cancelled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore the state of the particpant from the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the state of the particpant to the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#status()">status</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BusinessAgreementWithParticipantCompletionStub(com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine)"><!-- --></A><H3>
+BusinessAgreementWithParticipantCompletionStub</H3>
+<PRE>
+public <B>BusinessAgreementWithParticipantCompletionStub</B>(<A HREF="../../../../com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>&nbsp;participant)
+                                               throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()
+           throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                  <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>The transaction has completed successfully. The participant previously
+ informed the coordinator that it was ready to complete.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel()"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>()
+            throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                   <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>The transaction has cancelled, and the participant should undo any work.
+ The participant cannot have informed the coordinator that it has
+ completed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()">cancel</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compensate()"><!-- --></A><H3>
+compensate</H3>
+<PRE>
+public void <B>compensate</B>()
+                throws <A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>,
+                       <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                       <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>The transaction has cancelled. The participant previously
+ informed the coordinator that it had finished work but could compensate
+ later if required, so it is now requested to do so.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()">compensate</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status()"><!-- --></A><H3>
+status</H3>
+<PRE>
+public java.lang.String <B>status</B>()
+                        throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#status()">status</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the status value.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+public void <B>unknown</B>()
+             throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()">unknown</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></B></DD>
+<DD>If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()">error</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><!-- --></A><H3>
+saveState</H3>
+<PRE>
+public boolean <B>saveState</B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">PersistableParticipant</A></CODE></B></DD>
+<DD>Save the state of the particpant to the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>oos</CODE> - The output output stream.
+<DT><B>Returns:</B><DD>true if persisted, false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><!-- --></A><H3>
+restoreState</H3>
+<PRE>
+public boolean <B>restoreState</B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">PersistableParticipant</A></CODE></B></DD>
+<DD>Restore the state of the particpant from the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ios</CODE> - The Input object stream.
+<DT><B>Returns:</B><DD>true if restored, false otherwise.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BusinessAgreementWithParticipantCompletionStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/CompletionStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/CompletionStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/CompletionStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+CompletionStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.CompletionStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CompletionStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/CompletionStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class CompletionStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.CompletionStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>CompletionStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html#CompletionStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">CompletionStub</A></B>(java.lang.String&nbsp;id,
+               com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;completionCoordinator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CompletionStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+CompletionStub</H3>
+<PRE>
+public <B>CompletionStub</B>(java.lang.String&nbsp;id,
+                      com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;completionCoordinator)
+               throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public void <B>commit</B>()
+            throws <A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>,
+                   <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                   <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html#commit()">commit</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public void <B>rollback</B>()
+              throws <A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>,
+                     <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html#rollback()">rollback</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/CompletionStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CompletionStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Durable2PCStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Durable2PCStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Durable2PCStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+Durable2PCStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.Durable2PCStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Durable2PCStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/Durable2PCStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Durable2PCStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_com.arjuna.wst.stub.ParticipantStub">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class Durable2PCStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">com.arjuna.wst.stub.ParticipantStub</A>
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.Durable2PCStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A>, <A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Durable2PCStub</B><DT>extends <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A><DT>implements <A HREF="../../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html#Durable2PCStub()">Durable2PCStub</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html#Durable2PCStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">Durable2PCStub</A></B>(java.lang.String&nbsp;id,
+               com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;twoPCParticipant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.stub.ParticipantStub"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#commit()">commit</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#error()">error</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#prepare()">prepare</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#rollback()">rollback</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.Participant"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#commit()">commit</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#error()">error</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#prepare()">prepare</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#rollback()">rollback</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Durable2PCStub()"><!-- --></A><H3>
+Durable2PCStub</H3>
+<PRE>
+public <B>Durable2PCStub</B>()
+               throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+<HR>
+
+<A NAME="Durable2PCStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+Durable2PCStub</H3>
+<PRE>
+public <B>Durable2PCStub</B>(java.lang.String&nbsp;id,
+                      com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;twoPCParticipant)
+               throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/Durable2PCStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Durable2PCStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_com.arjuna.wst.stub.ParticipantStub">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/ParticipantStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/ParticipantStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/ParticipantStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,455 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+ParticipantStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.ParticipantStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ParticipantStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/ParticipantStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class ParticipantStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.ParticipantStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A>, <A HREF="../../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ParticipantStub</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#ParticipantStub(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType)">ParticipantStub</A></B>(java.lang.String&nbsp;id,
+                boolean&nbsp;durable,
+                com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;twoPCParticipant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#commit()">commit</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant should make permanent the work that it controls.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#error()">error</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;During recovery the participant can enquire as to the status of the
+ transaction it was registered with.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#prepare()">prepare</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perform any work necessary to allow it to either commit or rollback
+ the work performed by the Web service under the scope of the
+ transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore the state of the particpant from the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#rollback()">rollback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The participant should undo the work that it controls.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the state of the particpant to the specified input object stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#unknown()">unknown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;During recovery the participant can enquire as to the status of the
+ transaction it was registered with.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ParticipantStub(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+ParticipantStub</H3>
+<PRE>
+public <B>ParticipantStub</B>(java.lang.String&nbsp;id,
+                       boolean&nbsp;durable,
+                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;twoPCParticipant)
+                throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="prepare()"><!-- --></A><H3>
+prepare</H3>
+<PRE>
+public <A HREF="../../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A> <B>prepare</B>()
+             throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                    <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/Participant.html#prepare()">Participant</A></CODE></B></DD>
+<DD>Perform any work necessary to allow it to either commit or rollback
+ the work performed by the Web service under the scope of the
+ transaction. The implementation is free to do whatever it needs to in
+ order to fulfill the implicit contract between it and the coordinator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#prepare()">prepare</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an indication of whether it can prepare or not.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE><DT><B>See Also:</B><DD><A HREF="../../../../com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><CODE>Vote</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commit()"><!-- --></A><H3>
+commit</H3>
+<PRE>
+public void <B>commit</B>()
+            throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                   <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/Participant.html#commit()">Participant</A></CODE></B></DD>
+<DD>The participant should make permanent the work that it controls.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#commit()">commit</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rollback()"><!-- --></A><H3>
+rollback</H3>
+<PRE>
+public void <B>rollback</B>()
+              throws <A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>,
+                     <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/Participant.html#rollback()">Participant</A></CODE></B></DD>
+<DD>The participant should undo the work that it controls. The participant
+ will then return an indication of whether or not it succeeded.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#rollback()">rollback</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A></CODE>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unknown()"><!-- --></A><H3>
+unknown</H3>
+<PRE>
+public void <B>unknown</B>()
+             throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/Participant.html#unknown()">Participant</A></CODE></B></DD>
+<DD>During recovery the participant can enquire as to the status of the
+ transaction it was registered with. If that transaction is no longer
+ available (has rolled back) then this operation will be invoked by the
+ coordination service.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#unknown()">unknown</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error()"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>()
+           throws <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/Participant.html#error()">Participant</A></CODE></B></DD>
+<DD>During recovery the participant can enquire as to the status of the
+ transaction it was registered with. If an error occurs (e.g., the
+ transaction service is unavailable) then this operation will be invoked.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#error()">error</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><!-- --></A><H3>
+saveState</H3>
+<PRE>
+public boolean <B>saveState</B>(com.arjuna.ats.arjuna.state.OutputObjectState&nbsp;oos)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">PersistableParticipant</A></CODE></B></DD>
+<DD>Save the state of the particpant to the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>oos</CODE> - The output output stream.
+<DT><B>Returns:</B><DD>true if persisted, false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><!-- --></A><H3>
+restoreState</H3>
+<PRE>
+public boolean <B>restoreState</B>(com.arjuna.ats.arjuna.state.InputObjectState&nbsp;ios)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">PersistableParticipant</A></CODE></B></DD>
+<DD>Restore the state of the particpant from the specified input object stream.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A></CODE> in interface <CODE><A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ios</CODE> - The Input object stream.
+<DT><B>Returns:</B><DD>true if restored, false otherwise.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/ParticipantStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ParticipantStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/SystemCommunicationException.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/SystemCommunicationException.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/SystemCommunicationException.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:36 GMT 2007 -->
+<TITLE>
+SystemCommunicationException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.SystemCommunicationException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SystemCommunicationException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/SystemCommunicationException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SystemCommunicationException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class SystemCommunicationException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">com.arjuna.wst.SystemException</A>
+              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.SystemCommunicationException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>SystemCommunicationException</B><DT>extends <A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A></DL>
+</PRE>
+
+<P>
+Marker interface for exceptions e.g. timeouts, in the client/server communication.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.arjuna.wst.stub.SystemCommunicationException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html#SystemCommunicationException()">SystemCommunicationException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="SystemCommunicationException()"><!-- --></A><H3>
+SystemCommunicationException</H3>
+<PRE>
+public <B>SystemCommunicationException</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/SystemCommunicationException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SystemCommunicationException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Volatile2PCStub.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Volatile2PCStub.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/Volatile2PCStub.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Volatile2PCStub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub.Volatile2PCStub class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Volatile2PCStub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/Volatile2PCStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Volatile2PCStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_com.arjuna.wst.stub.ParticipantStub">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.arjuna.wst.stub</FONT>
+<BR>
+Class Volatile2PCStub</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">com.arjuna.wst.stub.ParticipantStub</A>
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.arjuna.wst.stub.Volatile2PCStub</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>, <A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>, <A HREF="../../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Volatile2PCStub</B><DT>extends <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A><DT>implements <A HREF="../../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/arjuna/wst/stub/Volatile2PCStub.html#Volatile2PCStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)">Volatile2PCStub</A></B>(java.lang.String&nbsp;id,
+                com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;twoPCParticipant)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.stub.ParticipantStub"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#commit()">commit</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#error()">error</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#prepare()">prepare</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)">restoreState</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#rollback()">rollback</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)">saveState</A>, <A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_com.arjuna.wst.Participant"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/arjuna/wst/Participant.html#commit()">commit</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#error()">error</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#prepare()">prepare</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#rollback()">rollback</A>, <A HREF="../../../../com/arjuna/wst/Participant.html#unknown()">unknown</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Volatile2PCStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><!-- --></A><H3>
+Volatile2PCStub</H3>
+<PRE>
+public <B>Volatile2PCStub</B>(java.lang.String&nbsp;id,
+                       com.arjuna.webservices.wsaddr.EndpointReferenceType&nbsp;twoPCParticipant)
+                throws java.lang.Exception</PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/Volatile2PCStub.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Volatile2PCStub.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_com.arjuna.wst.stub.ParticipantStub">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.stub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/arjuna/wst/stub/package-summary.html" target="classFrame">com.arjuna.wst.stub</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BACoordinatorCompletionParticipantManagerStub</A>
+<BR>
+<A HREF="BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BAParticipantCompletionParticipantManagerStub</A>
+<BR>
+<A HREF="BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BusinessActivityTerminatorStub</A>
+<BR>
+<A HREF="BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BusinessAgreementWithCoordinatorCompletionStub</A>
+<BR>
+<A HREF="BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub" target="classFrame">BusinessAgreementWithParticipantCompletionStub</A>
+<BR>
+<A HREF="CompletionStub.html" title="class in com.arjuna.wst.stub" target="classFrame">CompletionStub</A>
+<BR>
+<A HREF="Durable2PCStub.html" title="class in com.arjuna.wst.stub" target="classFrame">Durable2PCStub</A>
+<BR>
+<A HREF="ParticipantStub.html" title="class in com.arjuna.wst.stub" target="classFrame">ParticipantStub</A>
+<BR>
+<A HREF="Volatile2PCStub.html" title="class in com.arjuna.wst.stub" target="classFrame">Volatile2PCStub</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="SystemCommunicationException.html" title="class in com.arjuna.wst.stub" target="classFrame">SystemCommunicationException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.stub
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.arjuna.wst.stub package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.stub";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/engines/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.arjuna.wst.stub
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub">CompletionStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub">SystemCommunicationException</A></B></TD>
+<TD>Marker interface for exceptions e.g.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/engines/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/com/arjuna/wst/stub/package-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+com.arjuna.wst.stub Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.arjuna.wst.stub Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/engines/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.arjuna.wst.stub
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>BACoordinatorCompletionParticipantManagerStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>BAParticipantCompletionParticipantManagerStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>BusinessActivityTerminatorStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>BusinessAgreementWithCoordinatorCompletionStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>, com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>BusinessAgreementWithParticipantCompletionStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>, com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>CompletionStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>ParticipantStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>, com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>)
+<UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>Durable2PCStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub"><B>Volatile2PCStub</B></A> (implements com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A>)
+</UL>
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="../../../../com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>SystemException</B></A><UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="../../../../com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>SystemCommunicationException</B></A></UL>
+</UL>
+</UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/arjuna/wst/messaging/engines/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/arjuna/wst/stub/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/constant-values.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/constant-values.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/constant-values.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#com.arjuna">com.arjuna.*</A>
+</UL>
+
+<A NAME="com.arjuna"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+com.arjuna.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.mw.wst.UserBusinessActivity.ATOMIC_OUTCOME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/mw/wst/UserBusinessActivity.html#ATOMIC_OUTCOME">ATOMIC_OUTCOME</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.mw.wst.UserBusinessActivity.MIXED_OUTCOME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/mw/wst/UserBusinessActivity.html#MIXED_OUTCOME">MIXED_OUTCOME</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">com.arjuna.mw.wst.common.<A HREF="com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common">Environment</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.mw.wst.common.Environment.COORDINATOR_URL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/mw/wst/common/Environment.html#COORDINATOR_URL">COORDINATOR_URL</A></CODE></TD>
+<TD ALIGN="right"><CODE>"com.arjuna.mw.wst.coordinatorURL"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">com.arjuna.wst.<A HREF="com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_ACTIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_ACTIVE">STATUS_ACTIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Active"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_CANCELING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_CANCELING">STATUS_CANCELING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Canceling"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_CANCELING_ACTIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_CANCELING_ACTIVE">STATUS_CANCELING_ACTIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Canceling-Active"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_CANCELING_COMPLETING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_CANCELING_COMPLETING">STATUS_CANCELING_COMPLETING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Canceling-Completing"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_CLOSING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_CLOSING">STATUS_CLOSING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Closing"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_COMPENSATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_COMPENSATING">STATUS_COMPENSATING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Compensating"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_COMPLETED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_COMPLETED">STATUS_COMPLETED</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Completed"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_COMPLETING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_COMPLETING">STATUS_COMPLETING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Completing"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_ENDED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_ENDED">STATUS_ENDED</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Ended"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_EXITING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_EXITING">STATUS_EXITING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Exiting"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_FAULTING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_FAULTING">STATUS_FAULTING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Faulting"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_FAULTING_ACTIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_FAULTING_ACTIVE">STATUS_FAULTING_ACTIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Faulting-Active"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.arjuna.wst.Status.STATUS_FAULTING_COMPENSATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/arjuna/wst/Status.html#STATUS_FAULTING_COMPENSATING">STATUS_FAULTING_COMPENSATING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Faulting-Compensating"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/deprecated-list.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/deprecated-list.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/deprecated-list.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Deprecated List";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/help-doc.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/help-doc.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/help-doc.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="API Help";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames.  All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/index-all.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/index-all.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/index-all.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,1658 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/resources/CompletionParticipant.html#aborted()"><B>aborted()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html#aborted()"><B>aborted()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources">OutcomeNotificationParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote"><B>Aborted</B></A> - Class in <A HREF="./com/arjuna/mw/wst/vote/package-summary.html">com.arjuna.mw.wst.vote</A><DD>Aborted: the participant has aborted and the transaction should also
+ attempt to do so.<DT><A HREF="./com/arjuna/mw/wst/vote/Aborted.html#Aborted()"><B>Aborted()</B></A> - 
+Constructor for class com.arjuna.mw.wst.vote.<A HREF="./com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote">Aborted</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst"><B>Aborted</B></A> - Class in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Aborted: the participant has aborted and the transaction should also
+ attempt to do so.<DT><A HREF="./com/arjuna/wst/Aborted.html#Aborted()"><B>Aborted()</B></A> - 
+Constructor for class com.arjuna.wst.<A HREF="./com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst">Aborted</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#aborted(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>aborted(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Aborted.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#aborted(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>aborted(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the aborted event.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#activateCoordinator(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents, java.lang.String)"><B>activateCoordinator(CoordinatorCompletionCoordinatorInboundEvents, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Activate the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#activateCoordinator(com.arjuna.webservices.wsat.CoordinatorInboundEvents, java.lang.String)"><B>activateCoordinator(CoordinatorInboundEvents, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Activate the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#activateCoordinator(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents, java.lang.String)"><B>activateCoordinator(ParticipantCompletionCoordinatorInboundEvents, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Activate the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#activateParticipant(com.arjuna.wst.CompletionCoordinatorParticipant, java.lang.String)"><B>activateParticipant(CompletionCoordinatorParticipant, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A>
+<DD>Activate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#activateParticipant(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents, java.lang.String)"><B>activateParticipant(CoordinatorCompletionParticipantInboundEvents, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Activate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#activateParticipant(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents, java.lang.String)"><B>activateParticipant(ParticipantCompletionParticipantInboundEvents, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Activate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#activateParticipant(com.arjuna.webservices.wsat.ParticipantInboundEvents, java.lang.String)"><B>activateParticipant(ParticipantInboundEvents, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>Activate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#activateParticipant(com.arjuna.wst.BusinessActivityTerminator, java.lang.String)"><B>activateParticipant(BusinessActivityTerminator, String)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<DD>Activate the participant.
+<DT><A HREF="./com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc"><B>ActivationCoordinator</B></A> - Class in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>Wrapper around low level Activation Coordinator messaging.<DT><A HREF="./com/arjuna/wsc/ActivationCoordinator.html#ActivationCoordinator()"><B>ActivationCoordinator()</B></A> - 
+Constructor for class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc">ActivationCoordinator</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>ActivationCoordinatorProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wsc/messaging/package-summary.html">com.arjuna.wsc.messaging</A><DD>The Activation Coordinator processor.<DT><A HREF="./com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html#ActivationCoordinatorProcessorImpl()"><B>ActivationCoordinatorProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wsc.messaging.<A HREF="./com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">ActivationCoordinatorProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#addContextFactory(java.lang.String, com.arjuna.wsc.ContextFactory)"><B>addContextFactory(String, ContextFactory)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Add a context factory for the specified coordination type.
+<DT><A HREF="./com/arjuna/wsc/RegistrarMapper.html#addRegistrar(java.lang.String, com.arjuna.wsc.Registrar)"><B>addRegistrar(String, Registrar)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A>
+<DD>Add a registrar for the specified protocol identifier.
+<DT><A HREF="./com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>AlreadyRegisteredException</B></A> - Exception in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/AlreadyRegisteredException.html#AlreadyRegisteredException()"><B>AlreadyRegisteredException()</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/AlreadyRegisteredException.html#AlreadyRegisteredException(java.lang.String)"><B>AlreadyRegisteredException(String)</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">AlreadyRegisteredException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#ATOMIC_OUTCOME"><B>ATOMIC_OUTCOME</B></A> - 
+Static variable in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_B_"><!-- --></A><H2>
+<B>B</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>BACoordinatorCompletionParticipantManagerStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#BACoordinatorCompletionParticipantManagerStub(com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngine)"><B>BACoordinatorCompletionParticipantManagerStub(CoordinatorCompletionParticipantEngine)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>BAParticipantCompletionParticipantManagerStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#BAParticipantCompletionParticipantManagerStub(com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngine)"><B>BAParticipantCompletionParticipantManagerStub(ParticipantCompletionParticipantEngine)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst"><B>BAParticipantManager</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>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.<DT><A HREF="./com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>BAParticipantManager</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>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.<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#begin()"><B>begin()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>Start a new business activity with atomic outcome.
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#begin(int)"><B>begin(int)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>Start a new BA with atomic outcome and the specified timeout as
+ its lifetime.
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#begin()"><B>begin()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>Start a new transaction.
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#begin(int)"><B>begin(int)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>Start a new transaction with the specified timeout as its lifetime.
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>BusinessActivityManager</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>This is the interface that the core exposes in order to allow different
+ types of participants to be enrolled.<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#BusinessActivityManager()"><B>BusinessActivityManager()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManagerFactory.html#businessActivityManager()"><B>businessActivityManager()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst">BusinessActivityManagerFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>BusinessActivityManagerFactory</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManagerFactory.html#BusinessActivityManagerFactory()"><B>BusinessActivityManagerFactory()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst">BusinessActivityManagerFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>BusinessActivityTerminator</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Not in the 1.1 specification.<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>BusinessActivityTerminatorStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#BusinessActivityTerminatorStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>BusinessActivityTerminatorStub(String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources"><B>BusinessAgreement</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>BusinessAgreementWithComplete</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>BusinessAgreementWithCoordinatorCompletionParticipant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>BusinessAgreementWithCoordinat!
 orCompletionStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#BusinessAgreementWithCoordinatorCompletionStub(com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngine)"><B>BusinessAgreementWithCoordinatorCompletionStub(CoordinatorCompletionCoordinatorEngine)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>BusinessAgreementWithParticipantCompletionParticipant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>BusinessAgreementWithParticipantCompletionStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#BusinessAgreementWithParticipantCompletionStub(com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngine)"><B>BusinessAgreementWithParticipantCompletionStub(ParticipantCompletionCoordinatorEngine)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html#cancel()"><B>cancel()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#cancel()"><B>cancel()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>If the BA must undo its work then the cancel method is used.
+<DT><A HREF="./com/arjuna/wst/BusinessActivityTerminator.html#cancel()"><B>cancel()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#cancel()"><B>cancel()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>
+<DD>The transaction has cancelled, and the participant should undo any work.
+<DT><A HREF="./com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>Cancel</B></A> - Class in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Cancel: the participant is in an unknown state and should be rolledback.<DT><A HREF="./com/arjuna/wst/Cancel.html#Cancel()"><B>Cancel()</B></A> - 
+Constructor for class com.arjuna.wst.<A HREF="./com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst">Cancel</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancel(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Cancel.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#cancel()"><B>cancel()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the cancel event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancel(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the cancel event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#cancel()"><B>cancel()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the cancel event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancel(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the cancel event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#cancel(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancel(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Cancel.
+<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#cancel(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancel(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<DD>Cancel.
+<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#cancel()"><B>cancel()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#cancel()"><B>cancel()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#cancel()"><B>cancel()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancelled(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Cancelled.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancelled(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the cancelled event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancelled(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the cancelled event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#cancelled(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>cancelled(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Cancelled.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#close(MessageContext)"><B>close(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html#close()"><B>close()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#close(MessageContext)"><B>close(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#close()"><B>close()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>The BA is normally terminated by the close method.
+<DT><A HREF="./com/arjuna/wst/BusinessActivityTerminator.html#close()"><B>close()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#close()"><B>close()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>
+<DD>The transaction has completed successfully.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>close(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Close.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#close()"><B>close()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the close event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>close(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the close event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#close()"><B>close()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the close event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>close(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the close event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#close(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>close(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Close.
+<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#close(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>close(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<DD>Close.
+<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#close()"><B>close()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#close()"><B>close()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#close()"><B>close()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>closed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Closed.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>closed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the closed event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>closed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the closed event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#closed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>closed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Closed.
+<DT><A HREF="./com/arjuna/mw/wst/package-summary.html"><B>com.arjuna.mw.wst</B></A> - package com.arjuna.mw.wst<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/client/package-summary.html"><B>com.arjuna.mw.wst.client</B></A> - package com.arjuna.mw.wst.client<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/common/package-summary.html"><B>com.arjuna.mw.wst.common</B></A> - package com.arjuna.mw.wst.common<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/deploy/package-summary.html"><B>com.arjuna.mw.wst.deploy</B></A> - package com.arjuna.mw.wst.deploy<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html"><B>com.arjuna.mw.wst.exceptions</B></A> - package com.arjuna.mw.wst.exceptions<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/resources/package-summary.html"><B>com.arjuna.mw.wst.resources</B></A> - package com.arjuna.mw.wst.resources<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/service/package-summary.html"><B>com.arjuna.mw.wst.service</B></A> - package com.arjuna.mw.wst.service<!
 DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/vote/package-summary.html"><B>com.arjuna.mw.wst.vote</B></A> - package com.arjuna.mw.wst.vote<DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/package-summary.html"><B>com.arjuna.wsc</B></A> - package com.arjuna.wsc<DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/messaging/package-summary.html"><B>com.arjuna.wsc.messaging</B></A> - package com.arjuna.wsc.messaging<DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/messaging/deploy/package-summary.html"><B>com.arjuna.wsc.messaging.deploy</B></A> - package com.arjuna.wsc.messaging.deploy<DD>&nbsp;<DT><A HREF="./com/arjuna/wst/package-summary.html"><B>com.arjuna.wst</B></A> - package com.arjuna.wst<DD>&nbsp;<DT><A HREF="./com/arjuna/wst/messaging/package-summary.html"><B>com.arjuna.wst.messaging</B></A> - package com.arjuna.wst.messaging<DD>&nbsp;<DT><A HREF="./com/arjuna/wst/messaging/deploy/package-summary.html"><B>com.arjuna.wst.messaging.deploy</B></A> - package com.arjuna.wst.messaging.deploy<DD>&nbsp;<DT><A HR!
 EF="./com/arjuna/wst/messaging/engines/package-summary.html"><B>com.ar
juna.wst.messaging.engines</B></A> - package com.arjuna.wst.messaging.engines<DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/package-summary.html"><B>com.arjuna.wst.stub</B></A> - package com.arjuna.wst.stub<DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#commit()"><B>commit()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources">TwoPhaseParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#commit()"><B>commit()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>The transaction is committed by the commit method.
+<DT><A HREF="./com/arjuna/wst/CompletionCoordinatorParticipant.html#commit()"><B>commit()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>commit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A>
+<DD>Commit.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#commit()"><B>commit()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the commit event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>commit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the commit event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#commit(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>commit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>Commit.
+<DT><A HREF="./com/arjuna/wst/Participant.html#commit()"><B>commit()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>
+<DD>The participant should make permanent the work that it controls.
+<DT><A HREF="./com/arjuna/wst/stub/CompletionStub.html#commit()"><B>commit()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub">CompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#commit()"><B>commit()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#commitOnePhase()"><B>commitOnePhase()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources">TwoPhaseParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/CompletionParticipant.html#committed()"><B>committed()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources">CompletionParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html#committed()"><B>committed()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources">OutcomeNotificationParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#committed(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>committed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Committed.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#committed(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>committed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the committed event.
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html#compensate()"><B>compensate()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#compensate()"><B>compensate()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>
+<DD>The transaction has cancelled.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensate(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Compensate.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#compensate()"><B>compensate()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the compensate event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensate(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the compensate event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#compensate()"><B>compensate()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the compensate event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensate(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the compensate event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#compensate(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensate(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Compensate.
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#compensate()"><B>compensate()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#compensate()"><B>compensate()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensated(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Compensated.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensated(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the compensated event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensated(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the compensated event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#compensated(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>compensated(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Compensated.
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html#complete()"><B>complete()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreementWithComplete</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#complete()"><B>complete()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>If participants have registered for the BusinessAgreementWithComplete
+ protocol then they will be expecting the application to inform them
+ when all work intended for them has been sent (and responded to).
+<DT><A HREF="./com/arjuna/wst/BusinessActivityTerminator.html#complete()"><B>complete()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html#complete()"><B>complete()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>
+<DD>The coordinator is informing the participant that all work it needs to
+ do within the scope of this business activity has been received.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#complete(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>complete(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Complete.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#complete()"><B>complete()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the complete event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#complete(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>complete(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the complete event.
+<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#complete(com.arjuna.webservices.wsarjtx.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>complete(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<DD>Complete.
+<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#complete()"><B>complete()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#complete()"><B>complete()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BAParticipantManager.html#completed(java.lang.String)"><B>completed(String)</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst">BAParticipantManager</A>
+<DD>The participant has completed.
+<DT><A HREF="./com/arjuna/wst/BAParticipantManager.html#completed()"><B>completed()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>
+<DD>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.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>completed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Completed.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>completed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the completed event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#completed()"><B>completed()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the completed event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>completed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the completed event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#completed()"><B>completed()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the completed event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#completed(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>completed(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Completed.
+<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#completed()"><B>completed()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#completed()"><B>completed()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>CompletionCoordinatorParticipant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CompletionCoordinatorProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Completion Coordinator processor.<DT><A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#CompletionCoordinatorProcessorImpl()"><B>CompletionCoordinatorProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>CompletionParticipant</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>The CompletionParticipant.<DT><A HREF="./com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>CompletionStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/CompletionStub.html#CompletionStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>CompletionStub(String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub">CompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>CompletionWithAckParticipant</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>The CompletionWithAckParticipant.<DT><A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html#contextDestroyed(javax.servlet.ServletContextEvent)"><B>contextDestroyed(ServletContextEvent)</B></A> - 
+Method in class com.arjuna.mw.wst.deploy.<A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy">WSTXInitialisation</A>
+<DD>The context is about to be destroyed.
+<DT><A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html#contextDestroyed(javax.servlet.ServletContextEvent)"><B>contextDestroyed(ServletContextEvent)</B></A> - 
+Method in class com.arjuna.wsc.messaging.deploy.<A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy">CoordinationInitialisation</A>
+<DD>The context is about to be destroyed.
+<DT><A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html#contextDestroyed(javax.servlet.ServletContextEvent)"><B>contextDestroyed(ServletContextEvent)</B></A> - 
+Method in class com.arjuna.wst.messaging.deploy.<A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy">TransactionInitialisation</A>
+<DD>The context is about to be destroyed.
+<DT><A HREF="./com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>ContextFactory</B></A> - Interface in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>ContextFactoryMapper</B></A> - Class in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>The context factory mapper.<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#ContextFactoryMapper()"><B>ContextFactoryMapper()</B></A> - 
+Constructor for class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Default constructor
+<DT><A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html#contextInitialized(javax.servlet.ServletContextEvent)"><B>contextInitialized(ServletContextEvent)</B></A> - 
+Method in class com.arjuna.mw.wst.deploy.<A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy">WSTXInitialisation</A>
+<DD>The context has been initialized.
+<DT><A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html#contextInitialized(javax.servlet.ServletContextEvent)"><B>contextInitialized(ServletContextEvent)</B></A> - 
+Method in class com.arjuna.wsc.messaging.deploy.<A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy">CoordinationInitialisation</A>
+<DD>The context has been initialized.
+<DT><A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html#contextInitialized(javax.servlet.ServletContextEvent)"><B>contextInitialized(ServletContextEvent)</B></A> - 
+Method in class com.arjuna.wst.messaging.deploy.<A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy">TransactionInitialisation</A>
+<DD>The context has been initialized.
+<DT><A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common"><B>CoordinationContextHelper</B></A> - Class in <A HREF="./com/arjuna/mw/wst/common/package-summary.html">com.arjuna.mw.wst.common</A><DD>Helper class for serialising Coordination Contexts into SOAP headers.<DT><A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html#CoordinationContextHelper()"><B>CoordinationContextHelper()</B></A> - 
+Constructor for class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy"><B>CoordinationInitialisation</B></A> - Class in <A HREF="./com/arjuna/wsc/messaging/deploy/package-summary.html">com.arjuna.wsc.messaging.deploy</A><DD>Initialise the coordination services.<DT><A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html#CoordinationInitialisation()"><B>CoordinationInitialisation()</B></A> - 
+Constructor for class com.arjuna.wsc.messaging.deploy.<A HREF="./com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy">CoordinationInitialisation</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/common/Environment.html#COORDINATOR_URL"><B>COORDINATOR_URL</B></A> - 
+Static variable in interface com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common">Environment</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorCompletionCoordinatorEngine</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A><DD>The coordinator completion coordinator state engine<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#CoordinatorCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>CoordinatorCompletionCoordinatorEngine(String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Construct the initial engine for the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#CoordinatorCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsba.State)"><B>CoordinatorCompletionCoordinatorEngine(String, EndpointReferenceType, State)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Construct the engine for the coordinator in a specified state.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorCompletionCoordinatorProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Coordinator Completion Coordinator processor.<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#CoordinatorCompletionCoordinatorProcessorImpl()"><B>CoordinatorCompletionCoordinatorProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorCompletionParticipantEngine</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A><DD>The coordinator completion participant state engine<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#CoordinatorCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant)"><B>CoordinatorCompletionParticipantEngine(String, EndpointReferenceType, BusinessAgreementWithCoordinatorCompletionParticipant)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Construct the initial engine for the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#CoordinatorCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant, com.arjuna.webservices.wsba.State)"><B>CoordinatorCompletionParticipantEngine(String, EndpointReferenceType, BusinessAgreementWithCoordinatorCompletionParticipant, State)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Construct the engine for the participant in a specified state.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorCompletionParticipantProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Coordinator Completion Participant processor.<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#CoordinatorCompletionParticipantProcessorImpl()"><B>CoordinatorCompletionParticipantProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorEngine</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A><DD>The coordinator state engine<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#CoordinatorEngine(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>CoordinatorEngine(String, boolean, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Construct the initial engine for the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#CoordinatorEngine(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsat.State)"><B>CoordinatorEngine(String, boolean, EndpointReferenceType, State)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Construct the engine for the coordinator in a specified state.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Coordinator processor.<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#CoordinatorProcessorImpl()"><B>CoordinatorProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/ContextFactory.html#create(java.lang.String, java.lang.Long, com.arjuna.webservices.wscoor.CoordinationContextType)"><B>create(String, Long, CoordinationContextType)</B></A> - 
+Method in interface com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>
+<DD>Creates a coordination context.
+<DT><A HREF="./com/arjuna/wsc/ActivationCoordinator.html#createCoordinationContext(java.lang.String, java.lang.String, java.lang.String, java.lang.Long, com.arjuna.webservices.wscoor.CoordinationContextType)"><B>createCoordinationContext(String, String, String, Long, CoordinationContextType)</B></A> - 
+Static method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc">ActivationCoordinator</A>
+<DD>Create the coordination context.
+<DT><A HREF="./com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html#createCoordinationContext(com.arjuna.webservices.wscoor.CreateCoordinationContextType, com.arjuna.webservices.wsaddr.AddressingContext)"><B>createCoordinationContext(CreateCoordinationContextType, AddressingContext)</B></A> - 
+Method in class com.arjuna.wsc.messaging.<A HREF="./com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">ActivationCoordinatorProcessorImpl</A>
+<DD>Create the coordination context.
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#currentTransaction()"><B>currentTransaction()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>The currentTransaction method returns the TxContext for the current
+ transaction, or null if there is none.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#currentTransaction()"><B>currentTransaction()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>The currentTransaction method returns the TxContext for the current
+ transaction, or null if there is none.
+</DL>
+<HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#deactivateCoordinator(com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents)"><B>deactivateCoordinator(CoordinatorCompletionCoordinatorInboundEvents)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Deactivate the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#deactivateCoordinator(com.arjuna.webservices.wsat.CoordinatorInboundEvents)"><B>deactivateCoordinator(CoordinatorInboundEvents)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Deactivate the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#deactivateCoordinator(com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents)"><B>deactivateCoordinator(ParticipantCompletionCoordinatorInboundEvents)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Deactivate the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#deactivateParticipant(com.arjuna.wst.CompletionCoordinatorParticipant)"><B>deactivateParticipant(CompletionCoordinatorParticipant)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A>
+<DD>Deactivate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents)"><B>deactivateParticipant(CoordinatorCompletionParticipantInboundEvents)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Deactivate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents)"><B>deactivateParticipant(ParticipantCompletionParticipantInboundEvents)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Deactivate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.webservices.wsat.ParticipantInboundEvents)"><B>deactivateParticipant(ParticipantInboundEvents)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>Deactivate the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#deactivateParticipant(com.arjuna.wst.BusinessActivityTerminator)"><B>deactivateParticipant(BusinessActivityTerminator)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<DD>Deactivate the participant.
+<DT><A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html#deserialise(javax.xml.soap.SOAPEnvelope, javax.xml.soap.SOAPHeaderElement)"><B>deserialise(SOAPEnvelope, SOAPHeaderElement)</B></A> - 
+Static method in class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A>
+<DD>Deserialise a coordination context from a SAAJ SOAP Header Element.
+<DT><A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html#deserialise(org.w3c.dom.Element)"><B>deserialise(Element)</B></A> - 
+Static method in class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A>
+<DD>Deserialise a coordination context from a DOM SOAP Header Element.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#destroy()"><B>destroy()</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>Destroy the handler.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#destroy()"><B>destroy()</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>Destroy the handler.
+<DT><A HREF="./com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>Durable2PCCoordinator</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>Allows a durable 2PC participant to rollback or send readonly
+ before the coordinator initiates the protocol.<DT><A HREF="./com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>Durable2PCParticipant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>The Durable2PCParticipant.<DT><A HREF="./com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>Durable2PCStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/Durable2PCStub.html#Durable2PCStub()"><B>Durable2PCStub()</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/Durable2PCStub.html#Durable2PCStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>Durable2PCStub(String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub">Durable2PCStub</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#earlyReadonly()"><B>earlyReadonly()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the early readonly event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#earlyRollback()"><B>earlyRollback()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the early rollback event.
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#enlistForBusinessAgreementWithCoordinatorCompletion(com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant, java.lang.String)"><B>enlistForBusinessAgreementWithCoordinatorCompletion(BusinessAgreementWithCoordinatorCompletionParticipant, String)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>Enlist a participant for the BusinessAgreementWithCoordinatorCompletion protocol.
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#enlistForBusinessAgreementWithParticipantCompletion(com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant, java.lang.String)"><B>enlistForBusinessAgreementWithParticipantCompletion(BusinessAgreementWithParticipantCompletionParticipant, String)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>Enlist a participant for the BusinessAgreement protocol.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#enlistForDurableTwoPhase(com.arjuna.wst.Durable2PCParticipant, java.lang.String)"><B>enlistForDurableTwoPhase(Durable2PCParticipant, String)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>Enlist the specified participant with current transaction such that it
+ will participate in the 2PC protocol; a unique identifier for the
+ participant is also required.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#enlistForVolatileTwoPhase(com.arjuna.wst.Volatile2PCParticipant, java.lang.String)"><B>enlistForVolatileTwoPhase(Volatile2PCParticipant, String)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>Enlist the specified participant with current transaction such that it
+ will participate in the Volatile 2PC protocol; a unique identifier for
+ the participant is also required.
+<DT><A HREF="./com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>Environment</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/common/package-summary.html">com.arjuna.mw.wst.common</A><DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/TxContext.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BAParticipantManager.html#error()"><B>error()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>
+<DD>An error has occurred during the execution of the protocol that the
+ participant wants to communicate to the coordinator.
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#error()"><B>error()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>
+<DD>If the participant enquired as to the status of the transaction it was
+ registered with and an error occurs (e.g., the transaction service is
+ unavailable) then this operation will be invoked.
+<DT><A HREF="./com/arjuna/wst/Participant.html#error()"><B>error()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>
+<DD>During recovery the participant can enquire as to the status of the
+ transaction it was registered with.
+<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#error()"><B>error()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#error()"><B>error()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#error()"><B>error()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#error()"><B>error()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#error()"><B>error()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#error()"><B>error()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BAParticipantManager.html#exit()"><B>exit()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>
+<DD>The participant has exited the business activity.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Exit.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the exit event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#exit()"><B>exit()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the exit event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the exit event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#exit()"><B>exit()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the exit event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#exit(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exit(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Exit.
+<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#exit()"><B>exit()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#exit()"><B>exit()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BAParticipantManager.html#exited(java.lang.String)"><B>exited(String)</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst">BAParticipantManager</A>
+<DD>The participant has exited.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exited(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Exited.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exited(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the exited event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exited(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the exited event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#exited(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>exited(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Exited.
+</DL>
+<HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/BAParticipantManager.html#fault()"><B>fault()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>
+<DD>Fault.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>fault(ExceptionType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Fault.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>fault(ExceptionType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#fault()"><B>fault()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>fault(ExceptionType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#fault()"><B>fault()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#fault(com.arjuna.webservices.wsba.ExceptionType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>fault(ExceptionType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Fault.
+<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#fault()"><B>fault()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#fault()"><B>fault()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BAParticipantManager.html#faulted(java.lang.String)"><B>faulted(String)</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst">BAParticipantManager</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>faulted(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Faulted.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>faulted(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the faulted event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>faulted(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the faulted event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#faulted(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>faulted(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Faulted.
+<DT><A HREF="./com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>FaultedException</B></A> - Exception in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Thrown if there is a fault during complete or compensation.<DT><A HREF="./com/arjuna/wst/FaultedException.html#FaultedException()"><B>FaultedException()</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/FaultedException.html#FaultedException(java.lang.String)"><B>FaultedException(String)</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">FaultedException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html#forget()"><B>forget()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#getBusinessActivityManager()"><B>getBusinessActivityManager()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>Get the business activity manager.
+<DT><A HREF="./com/arjuna/mw/wst/common/SOAPUtil.html#getChildElements(javax.xml.soap.SOAPElement)"><B>getChildElements(SOAPElement)</B></A> - 
+Static method in class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common">SOAPUtil</A>
+<DD>Get an iterator containing just child elements.
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#getContextFactory(java.lang.String)"><B>getContextFactory(String)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Get the context factory for the specified coordination type.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getCoordinator()"><B>getCoordinator()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Get the associated coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getCoordinator()"><B>getCoordinator()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Get the coordinator endpoint reference
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getCoordinator()"><B>getCoordinator()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Get the associated coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getCoordinator()"><B>getCoordinator()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Get the coordinator endpoint reference
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#getDefaultContextFactory()"><B>getDefaultContextFactory()</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Get the default coordination factory.
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#getFactory()"><B>getFactory()</B></A> - 
+Static method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Get the context factory mapper singleton.
+<DT><A HREF="./com/arjuna/wsc/RegistrarMapper.html#getFactory()"><B>getFactory()</B></A> - 
+Static method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A>
+<DD>Get the registrar mapper singleton.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#getHeaders()"><B>getHeaders()</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>Get the headers.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#getHeaders()"><B>getHeaders()</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>Gets the header blocks that can be processed by this Handler instance.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#getHeaders()"><B>getHeaders()</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>Get the headers.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#getHeaders()"><B>getHeaders()</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>Gets the header blocks that can be processed by this Handler instance.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getId()"><B>getId()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Get the coordinator id.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getId()"><B>getId()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Get the coordinator id.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#getId()"><B>getId()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Get the coordinator id.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getId()"><B>getId()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Get the coordinator id.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getId()"><B>getId()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Get the coordinator id.
+<DT><A HREF="./com/arjuna/wsc/messaging/MessageId.html#getMessageId()"><B>getMessageId()</B></A> - 
+Static method in class com.arjuna.wsc.messaging.<A HREF="./com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging">MessageId</A>
+<DD>Get the next message identifier.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getParticipant()"><B>getParticipant()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Get the participant endpoint reference
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getParticipant()"><B>getParticipant()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Get the associated participant.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#getParticipant()"><B>getParticipant()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Get the participant endpoint reference
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getParticipant()"><B>getParticipant()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Get the participant endpoint reference
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getParticipant()"><B>getParticipant()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Get the associated participant.
+<DT><A HREF="./com/arjuna/wsc/RegistrarMapper.html#getRegistrar(java.lang.String)"><B>getRegistrar(String)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A>
+<DD>Get the registrar for the specified protocol identifier.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Get Status.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Get Status.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the getStatus event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#getStatus()"><B>getStatus()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the get status event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the getStatus event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the getStatus event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#getStatus()"><B>getStatus()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the get status event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the getStatus event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Get Status.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#getStatus(com.arjuna.webservices.wsba.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>getStatus(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Get Status.
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#getSubordinateContextFactoryMapper()"><B>getSubordinateContextFactoryMapper()</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Get the subordinate coordination factory mapper.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>Get the transaction manager.
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#getUserBusinessActivity()"><B>getUserBusinessActivity()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>Get the user business activity.
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#getUserTransaction()"><B>getUserTransaction()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>Get the user transaction.
+<DT><A HREF="./com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>GlueIncomingContextInterceptor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/client/package-summary.html">com.arjuna.mw.wst.client</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.<DT><A HREF="./com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html#GlueIncomingContextInterceptor()"><B>GlueIncomingContextInterceptor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueIncomingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>GlueIncomingContextInterceptor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/service/package-summary.html">com.arjuna.mw.wst.service</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.<DT><A HREF="./com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html#GlueIncomingContextInterceptor()"><B>GlueIncomingContextInterceptor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueIncomingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>GlueOutgoingContextInterceptor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/client/package-summary.html">com.arjuna.mw.wst.client</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.<DT><A HREF="./com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html#GlueOutgoingContextInterceptor()"><B>GlueOutgoingContextInterceptor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueOutgoingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>GlueOutgoingContextInterceptor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/service/package-summary.html">com.arjuna.mw.wst.service</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages within WebMethods Glue.<DT><A HREF="./com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html#GlueOutgoingContextInterceptor()"><B>GlueOutgoingContextInterceptor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueOutgoingContextInterceptor</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_H_"><!-- --></A><H2>
+<B>H</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleFault(javax.xml.rpc.handler.MessageContext)"><B>handleFault(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>Handle the fault.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleFault(MessageContext)"><B>handleFault(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>Tidy up the Transaction/Thread association.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleFault(javax.xml.rpc.handler.MessageContext)"><B>handleFault(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>Handle the fault.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleFault(MessageContext)"><B>handleFault(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>Tidy up the Transaction/Thread association before faults are thrown back to the client.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleInbound(MessageContext)"><B>handleInbound(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>Tidy up the Transaction/Thread association before control is returned to the user.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleInbound(MessageContext)"><B>handleInbound(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>Process the tx context header that is attached to the received message.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleMessage(MessageContext)"><B>handleMessage(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>Process a message.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleMessage(MessageContext)"><B>handleMessage(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>Process a message.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#handleOutbound(MessageContext)"><B>handleOutbound(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>Process the tx thread context and attach serialized version as msg header
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#handleOutbound(MessageContext)"><B>handleOutbound(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>Tidy up the Transaction/Thread association before response is returned to the client.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleRequest(javax.xml.rpc.handler.MessageContext)"><B>handleRequest(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>Handle the request.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleRequest(javax.xml.rpc.handler.MessageContext)"><B>handleRequest(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>Handle the request.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#handleResponse(javax.xml.rpc.handler.MessageContext)"><B>handleResponse(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>Handle the response.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#handleResponse(javax.xml.rpc.handler.MessageContext)"><B>handleResponse(MessageContext)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>Handle the response.
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicCommitException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if a participant or transaction commit when the request was to
+ roll back.<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicCommitException.html#HeuristicCommitException()"><B>HeuristicCommitException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicCommitException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicCommitException.html#HeuristicCommitException(java.lang.String)"><B>HeuristicCommitException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicCommitException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicHazardException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the outcome of at least one participant is unknown.<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicHazardException.html#HeuristicHazardException()"><B>HeuristicHazardException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicHazardException.html#HeuristicHazardException(java.lang.String)"><B>HeuristicHazardException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicHazardException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicMixedException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if some of the participants commit while others rollback.<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicMixedException.html#HeuristicMixedException()"><B>HeuristicMixedException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicMixedException.html#HeuristicMixedException(java.lang.String)"><B>HeuristicMixedException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicMixedException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicRollbackException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the participants rolled back when the request was to commit.<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html#HeuristicRollbackException()"><B>HeuristicRollbackException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html#HeuristicRollbackException(java.lang.String)"><B>HeuristicRollbackException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">HeuristicRollbackException</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html#identifier()"><B>identifier()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources">BusinessAgreement</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#init(javax.xml.rpc.handler.HandlerInfo)"><B>init(HandlerInfo)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>Initialise the handler information.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#init(javax.xml.rpc.handler.HandlerInfo)"><B>init(HandlerInfo)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>Initialise the handler information.
+<DT><A HREF="./com/arjuna/wsc/ContextFactory.html#install(java.lang.String)"><B>install(String)</B></A> - 
+Method in interface com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>
+<DD>Called when a context factory is added to a context factory mapper.
+<DT><A HREF="./com/arjuna/wsc/Registrar.html#install(java.lang.String)"><B>install(String)</B></A> - 
+Method in interface com.arjuna.wsc.<A HREF="./com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A>
+<DD>Called when a registrar is added to a register mapper.
+<DT><A HREF="./com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)"><B>intercept(electric.soap.SOAPMessage, electric.util.Context)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueIncomingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)"><B>intercept(electric.soap.SOAPMessage, electric.util.Context)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client">GlueOutgoingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)"><B>intercept(electric.soap.SOAPMessage, electric.util.Context)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueIncomingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html#intercept(electric.soap.SOAPMessage, electric.util.Context)"><B>intercept(electric.soap.SOAPMessage, electric.util.Context)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service">GlueOutgoingContextInterceptor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>InvalidCreateParametersException</B></A> - Exception in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/InvalidCreateParametersException.html#InvalidCreateParametersException()"><B>InvalidCreateParametersException()</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/InvalidCreateParametersException.html#InvalidCreateParametersException(java.lang.String)"><B>InvalidCreateParametersException(String)</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">InvalidCreateParametersException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>InvalidProtocolException</B></A> - Exception in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/InvalidProtocolException.html#InvalidProtocolException()"><B>InvalidProtocolException()</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/InvalidProtocolException.html#InvalidProtocolException(java.lang.String)"><B>InvalidProtocolException(String)</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">InvalidProtocolException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>InvalidStateException</B></A> - Exception in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/InvalidStateException.html#InvalidStateException()"><B>InvalidStateException()</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/InvalidStateException.html#InvalidStateException(java.lang.String)"><B>InvalidStateException(String)</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">InvalidStateException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#isDurable()"><B>isDurable()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Is the participant durable?
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#isReadOnly()"><B>isReadOnly()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Was this a read only response?
+</DL>
+<HR>
+<A NAME="_J_"><!-- --></A><H2>
+<B>J</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>JaxRPCHeaderContextProcessor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/client/package-summary.html">com.arjuna.mw.wst.client</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxRPC.<DT><A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html#JaxRPCHeaderContextProcessor()"><B>JaxRPCHeaderContextProcessor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxRPCHeaderContextProcessor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>JaxRPCHeaderContextProcessor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/service/package-summary.html">com.arjuna.mw.wst.service</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxRPC.<DT><A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html#JaxRPCHeaderContextProcessor()"><B>JaxRPCHeaderContextProcessor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxRPCHeaderContextProcessor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>JaxWSHeaderContextProcessor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/client/package-summary.html">com.arjuna.mw.wst.client</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxWS.<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#JaxWSHeaderContextProcessor()"><B>JaxWSHeaderContextProcessor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>JaxWSHeaderContextProcessor</B></A> - Class in <A HREF="./com/arjuna/mw/wst/service/package-summary.html">com.arjuna.mw.wst.service</A><DD>The class is used to perform WS-Transaction context insertion
+ and extraction for application level SOAP messages using JaxWS.<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#JaxWSHeaderContextProcessor()"><B>JaxWSHeaderContextProcessor()</B></A> - 
+Constructor for class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_M_"><!-- --></A><H2>
+<B>M</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>MessageId</B></A> - Class in <A HREF="./com/arjuna/wsc/messaging/package-summary.html">com.arjuna.wsc.messaging</A><DD>A simple message id generator, used when UID is inaccessible.<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#MIXED_OUTCOME"><B>MIXED_OUTCOME</B></A> - 
+Static variable in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>NoActivityException</B></A> - Exception in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/NoActivityException.html#NoActivityException()"><B>NoActivityException()</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/NoActivityException.html#NoActivityException(java.lang.String)"><B>NoActivityException(String)</B></A> - 
+Constructor for exception com.arjuna.wsc.<A HREF="./com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">NoActivityException</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>OutcomeNotificationParticipant</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>The OutcomeNotificationParticipant.</DL>
+<HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>Participant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>The base Participant.<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantCompletionCoordinatorEngine</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A><DD>The participant completion coordinator state engine<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#ParticipantCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>ParticipantCompletionCoordinatorEngine(String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Construct the initial engine for the coordinator.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#ParticipantCompletionCoordinatorEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.webservices.wsba.State)"><B>ParticipantCompletionCoordinatorEngine(String, EndpointReferenceType, State)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Construct the engine for the coordinator in a specified state.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantCompletionCoordinatorProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Participant Completion Coordinator processor.<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#ParticipantCompletionCoordinatorProcessorImpl()"><B>ParticipantCompletionCoordinatorProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantCompletionParticipantEngine</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A><DD>The participant completion participant state engine<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#ParticipantCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant)"><B>ParticipantCompletionParticipantEngine(String, EndpointReferenceType, BusinessAgreementWithParticipantCompletionParticipant)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Construct the initial engine for the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#ParticipantCompletionParticipantEngine(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant, com.arjuna.webservices.wsba.State)"><B>ParticipantCompletionParticipantEngine(String, EndpointReferenceType, BusinessAgreementWithParticipantCompletionParticipant, State)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Construct the engine for the participant in a specified state.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantCompletionParticipantProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Participant Completion Participant processor.<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#ParticipantCompletionParticipantProcessorImpl()"><B>ParticipantCompletionParticipantProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantEngine</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A><DD>The participant state engine<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#ParticipantEngine(com.arjuna.wst.Participant, java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>ParticipantEngine(Participant, String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Construct the initial engine for the participant.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#ParticipantEngine(com.arjuna.wst.Participant, java.lang.String, com.arjuna.webservices.wsat.State, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>ParticipantEngine(Participant, String, State, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Construct the engine for the participant in a specified state.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Participant processor.<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#ParticipantProcessorImpl()"><B>ParticipantProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>ParticipantStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#ParticipantStub(java.lang.String, boolean, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>ParticipantStub(String, boolean, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>PersistableParticipant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>The interface for a persistable resource.<DT><A HREF="./com/arjuna/mw/wst/resources/PhaseZeroParticipant.html#phaseZero()"><B>phaseZero()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources">PhaseZeroParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PhaseZeroParticipant</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>The PhaseZeroParticipant.<DT><A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#prepare()"><B>prepare()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources">TwoPhaseParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#prepare()"><B>prepare()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the prepare event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#prepare(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>prepare(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the prepare event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#prepare(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>prepare(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>Prepare.
+<DT><A HREF="./com/arjuna/wst/Participant.html#prepare()"><B>prepare()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>
+<DD>Perform any work necessary to allow it to either commit or rollback
+ the work performed by the Web service under the scope of the
+ transaction.
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#prepare()"><B>prepare()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>Prepared</B></A> - Class in <A HREF="./com/arjuna/mw/wst/vote/package-summary.html">com.arjuna.mw.wst.vote</A><DD>Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.<DT><A HREF="./com/arjuna/mw/wst/vote/Prepared.html#Prepared()"><B>Prepared()</B></A> - 
+Constructor for class com.arjuna.mw.wst.vote.<A HREF="./com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote">Prepared</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#prepared(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>prepared(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Prepared.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#prepared(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>prepared(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the prepared event.
+<DT><A HREF="./com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>Prepared</B></A> - Class in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Prepared: it is prepared to commit or rollback depending on the final
+ transaction outcome, and it has made sufficient state updates persistent
+ to accomplish this.<DT><A HREF="./com/arjuna/wst/Prepared.html#Prepared()"><B>Prepared()</B></A> - 
+Constructor for class com.arjuna.wst.<A HREF="./com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst">Prepared</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/Durable2PCCoordinator.html#readonly(java.lang.String)"><B>readonly(String)</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst">Durable2PCCoordinator</A>
+<DD>The participant is read-only.
+<DT><A HREF="./com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>ReadOnly</B></A> - Class in <A HREF="./com/arjuna/mw/wst/vote/package-summary.html">com.arjuna.mw.wst.vote</A><DD>ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.<DT><A HREF="./com/arjuna/mw/wst/vote/ReadOnly.html#ReadOnly()"><B>ReadOnly()</B></A> - 
+Constructor for class com.arjuna.mw.wst.vote.<A HREF="./com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote">ReadOnly</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#readOnly(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>readOnly(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Read only.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#readOnly(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>readOnly(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the readOnly event.
+<DT><A HREF="./com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>ReadOnly</B></A> - Class in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.<DT><A HREF="./com/arjuna/wst/ReadOnly.html#ReadOnly()"><B>ReadOnly()</B></A> - 
+Constructor for class com.arjuna.wst.<A HREF="./com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst">ReadOnly</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#recovery()"><B>recovery()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the recovery event.
+<DT><A HREF="./com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html#register(com.arjuna.webservices.wscoor.RegisterType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>register(RegisterType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wsc.messaging.<A HREF="./com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">RegistrationCoordinatorProcessorImpl</A>
+<DD>Register the participant in the protocol.
+<DT><A HREF="./com/arjuna/wsc/Registrar.html#register(com.arjuna.webservices.wsaddr.EndpointReferenceType, java.lang.String, com.arjuna.webservices.wsarj.InstanceIdentifier)"><B>register(EndpointReferenceType, String, InstanceIdentifier)</B></A> - 
+Method in interface com.arjuna.wsc.<A HREF="./com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A>
+<DD>Registers the interest of participant in a particular protocol.
+<DT><A HREF="./com/arjuna/wsc/RegistrationCoordinator.html#register(com.arjuna.webservices.wscoor.CoordinationContextType, java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType, java.lang.String)"><B>register(CoordinationContextType, String, EndpointReferenceType, String)</B></A> - 
+Static method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc">RegistrationCoordinator</A>
+<DD>Register the participant in the protocol.
+<DT><A HREF="./com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>Registrar</B></A> - Interface in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>RegistrarMapper</B></A> - Class in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>The registrar mapper.<DT><A HREF="./com/arjuna/wsc/RegistrarMapper.html#RegistrarMapper()"><B>RegistrarMapper()</B></A> - 
+Constructor for class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A>
+<DD>Default constructor
+<DT><A HREF="./com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc"><B>RegistrationCoordinator</B></A> - Class in <A HREF="./com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A><DD>Wrapper around low level Registration Coordinator messaging.<DT><A HREF="./com/arjuna/wsc/RegistrationCoordinator.html#RegistrationCoordinator()"><B>RegistrationCoordinator()</B></A> - 
+Constructor for class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc">RegistrationCoordinator</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>RegistrationCoordinatorProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wsc/messaging/package-summary.html">com.arjuna.wsc.messaging</A><DD>The Registration Coordinator processor.<DT><A HREF="./com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html#RegistrationCoordinatorProcessorImpl()"><B>RegistrationCoordinatorProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wsc.messaging.<A HREF="./com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging">RegistrationCoordinatorProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#removeContextFactory(java.lang.String)"><B>removeContextFactory(String)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Remove the context factory for the specified coordination type.
+<DT><A HREF="./com/arjuna/wsc/RegistrarMapper.html#removeRegistrar(java.lang.String)"><B>removeRegistrar(String)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc">RegistrarMapper</A>
+<DD>Remove the registrar for the specified protocol identifier.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#replay()"><B>replay()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#replay(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>replay(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>Replay.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#replay(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>replay(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the replay event.
+<DT><A HREF="./com/arjuna/wst/PersistableParticipant.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><B>restoreState(InputObjectState)</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>
+<DD>Restore the state of the particpant from the specified input object stream.
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><B>restoreState(InputObjectState)</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><B>restoreState(InputObjectState)</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#restoreState(com.arjuna.ats.arjuna.state.InputObjectState)"><B>restoreState(InputObjectState)</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#resume(com.arjuna.mw.wst.TxContext)"><B>resume(TxContext)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>The resume method can be used to (re-)associate a thread with a 
+ transaction(s) via its TxContext.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#resume(com.arjuna.mw.wst.TxContext)"><B>resume(TxContext)</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>The resume method can be used to (re-)associate a thread with a 
+ transaction(s) via its TxContext.
+<DT><A HREF="./com/arjuna/mw/wst/Durable2PCCoordinator.html#rollback(java.lang.String)"><B>rollback(String)</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst">Durable2PCCoordinator</A>
+<DD>The participant has rolled back.
+<DT><A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html#rollback()"><B>rollback()</B></A> - 
+Method in interface com.arjuna.mw.wst.resources.<A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources">TwoPhaseParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#rollback()"><B>rollback()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>The rollback operation will terminate the transaction and return
+ normally if it succeeded, while throwing an appropriate exception if it
+ didn't.
+<DT><A HREF="./com/arjuna/wst/CompletionCoordinatorParticipant.html#rollback()"><B>rollback()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html#rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>rollback(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CompletionCoordinatorProcessorImpl</A>
+<DD>Rollback.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#rollback()"><B>rollback()</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the rollback event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>rollback(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the rollback event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#rollback(com.arjuna.webservices.wsat.NotificationType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>rollback(NotificationType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>Rollback.
+<DT><A HREF="./com/arjuna/wst/Participant.html#rollback()"><B>rollback()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>
+<DD>The participant should undo the work that it controls.
+<DT><A HREF="./com/arjuna/wst/stub/CompletionStub.html#rollback()"><B>rollback()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub">CompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#rollback()"><B>rollback()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/PersistableParticipant.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><B>saveState(OutputObjectState)</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>
+<DD>Save the state of the particpant to the specified input object stream.
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><B>saveState(OutputObjectState)</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><B>saveState(OutputObjectState)</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#saveState(com.arjuna.ats.arjuna.state.OutputObjectState)"><B>saveState(OutputObjectState)</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html#serialise(javax.xml.soap.SOAPEnvelope, javax.xml.soap.SOAPHeaderElement, com.arjuna.webservices.wscoor.CoordinationContextType)"><B>serialise(SOAPEnvelope, SOAPHeaderElement, CoordinationContextType)</B></A> - 
+Static method in class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A>
+<DD>Serialise a coordination context to a SAAJ SOAP Header Element.
+<DT><A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html#serialise(org.w3c.dom.Element, com.arjuna.webservices.wscoor.CoordinationContextType)"><B>serialise(Element, CoordinationContextType)</B></A> - 
+Static method in class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common">CoordinationContextHelper</A>
+<DD>Serialise a coordination context to a DOM SOAP Header Element.
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#setBusinessActivityManager(com.arjuna.mw.wst.BusinessActivityManager)"><B>setBusinessActivityManager(BusinessActivityManager)</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>Set the business activity manager.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#setCoordinator(com.arjuna.wst.BAParticipantManager)"><B>setCoordinator(BAParticipantManager)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Set the coordinator and register
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#setCoordinator(com.arjuna.wst.BAParticipantManager)"><B>setCoordinator(BAParticipantManager)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Set the coordinator and register
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#setDefaultContextFactory(com.arjuna.wsc.ContextFactory)"><B>setDefaultContextFactory(ContextFactory)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Set the default coordination factory.
+<DT><A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html#setHeaders(java.util.Set)"><B>setHeaders(Set)</B></A> - 
+Method in class com.arjuna.mw.wst.client.<A HREF="./com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client">JaxWSHeaderContextProcessor</A>
+<DD>Sets the header blocks that can be processed by this Handler instance.
+<DT><A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html#setHeaders(java.util.Set)"><B>setHeaders(Set)</B></A> - 
+Method in class com.arjuna.mw.wst.service.<A HREF="./com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service">JaxWSHeaderContextProcessor</A>
+<DD>Sets the header blocks that can be processed by this Handler instance.
+<DT><A HREF="./com/arjuna/wsc/ContextFactoryMapper.html#setSubordinateContextFactoryMapper(com.arjuna.wsc.ContextFactoryMapper)"><B>setSubordinateContextFactoryMapper(ContextFactoryMapper)</B></A> - 
+Method in class com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc">ContextFactoryMapper</A>
+<DD>Set a subordinate coordination factory mapper.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#setTransactionManager(com.arjuna.mw.wst.TransactionManager)"><B>setTransactionManager(TransactionManager)</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>Set the transaction manager.
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#setUserBusinessActivity(com.arjuna.mw.wst.UserBusinessActivity)"><B>setUserBusinessActivity(UserBusinessActivity)</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>Set the user business activity.
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#setUserTransaction(com.arjuna.mw.wst.UserTransaction)"><B>setUserTransaction(UserTransaction)</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>Set the user transaction.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>SOAP fault.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>SOAP Fault.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorProcessorImpl</A>
+<DD>SOAP Fault.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the soap fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the soap fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorEngine</A>
+<DD>Handle the soap fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the soap fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the soap fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantEngine</A>
+<DD>Handle the soap fault event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>SOAP fault.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>SOAP Fault.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html#soapFault(com.arjuna.webservices.SoapFault, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>soapFault(SoapFault, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantProcessorImpl</A>
+<DD>SOAP Fault.
+<DT><A HREF="./com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common"><B>SOAPUtil</B></A> - Class in <A HREF="./com/arjuna/mw/wst/common/package-summary.html">com.arjuna.mw.wst.common</A><DD>Utility class for SOAP.<DT><A HREF="./com/arjuna/mw/wst/common/SOAPUtil.html#SOAPUtil()"><B>SOAPUtil()</B></A> - 
+Constructor for class com.arjuna.mw.wst.common.<A HREF="./com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common">SOAPUtil</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#status()"><B>status()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionCoordinatorProcessorImpl</A>
+<DD>Status.
+<DT><A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">CoordinatorCompletionParticipantProcessorImpl</A>
+<DD>Status.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionCoordinatorEngine</A>
+<DD>Handle the status event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">CoordinatorCompletionParticipantEngine</A>
+<DD>Handle the status event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionCoordinatorEngine</A>
+<DD>Handle the status event.
+<DT><A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.engines.<A HREF="./com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines">ParticipantCompletionParticipantEngine</A>
+<DD>Handle the status event.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionCoordinatorProcessorImpl</A>
+<DD>Status.
+<DT><A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html#status(com.arjuna.webservices.wsba.StatusType, com.arjuna.webservices.wsaddr.AddressingContext, com.arjuna.webservices.wsarj.ArjunaContext)"><B>status(StatusType, AddressingContext, ArjunaContext)</B></A> - 
+Method in class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">ParticipantCompletionParticipantProcessorImpl</A>
+<DD>Status.
+<DT><A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>Status</B></A> - Class in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/Status.html#Status()"><B>Status()</B></A> - 
+Constructor for class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#status()"><B>status()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#status()"><B>status()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_ACTIVE"><B>STATUS_ACTIVE</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_CANCELING"><B>STATUS_CANCELING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_CANCELING_ACTIVE"><B>STATUS_CANCELING_ACTIVE</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_CANCELING_COMPLETING"><B>STATUS_CANCELING_COMPLETING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_CLOSING"><B>STATUS_CLOSING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_COMPENSATING"><B>STATUS_COMPENSATING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_COMPLETED"><B>STATUS_COMPLETED</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_COMPLETING"><B>STATUS_COMPLETING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_ENDED"><B>STATUS_ENDED</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_EXITING"><B>STATUS_EXITING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_FAULTING"><B>STATUS_FAULTING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_FAULTING_ACTIVE"><B>STATUS_FAULTING_ACTIVE</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Status.html#STATUS_FAULTING_COMPENSATING"><B>STATUS_FAULTING_COMPENSATING</B></A> - 
+Static variable in class com.arjuna.wst.<A HREF="./com/arjuna/wst/Status.html" title="class in com.arjuna.wst">Status</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html#suspend()"><B>suspend()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst">BusinessActivityManager</A>
+<DD>A thread of control may require periods of non-transactionality so that
+ it may perform work that is not associated with a specific transaction.
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#suspend()"><B>suspend()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>A thread of control may require periods of non-transactionality so that
+ it may perform work that is not associated with a specific transaction.
+<DT><A HREF="./com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>SystemCommunicationException</B></A> - Exception in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>Marker interface for exceptions e.g.<DT><A HREF="./com/arjuna/wst/stub/SystemCommunicationException.html#SystemCommunicationException()"><B>SystemCommunicationException()</B></A> - 
+Constructor for exception com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub">SystemCommunicationException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions"><B>SystemException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the transaction is unknown.<DT><A HREF="./com/arjuna/mw/wst/exceptions/SystemException.html#SystemException()"><B>SystemException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/SystemException.html#SystemException(java.lang.String)"><B>SystemException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">SystemException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>SystemException</B></A> - Exception in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Thrown if a general exception is encountered (one not supported by
+ any other exception.)<DT><A HREF="./com/arjuna/wst/SystemException.html#SystemException()"><B>SystemException()</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/SystemException.html#SystemException(java.lang.String)"><B>SystemException(String)</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>TerminatorParticipantProcessorImpl</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A><DD>The Terminator Participant processor.<DT><A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html#TerminatorParticipantProcessorImpl()"><B>TerminatorParticipantProcessorImpl()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.<A HREF="./com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging">TerminatorParticipantProcessorImpl</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#transactionIdentifier()"><B>transactionIdentifier()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#transactionIdentifier()"><B>transactionIdentifier()</B></A> - 
+Method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy"><B>TransactionInitialisation</B></A> - Class in <A HREF="./com/arjuna/wst/messaging/deploy/package-summary.html">com.arjuna.wst.messaging.deploy</A><DD>Initialise the transaction services.<DT><A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html#TransactionInitialisation()"><B>TransactionInitialisation()</B></A> - 
+Constructor for class com.arjuna.wst.messaging.deploy.<A HREF="./com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy">TransactionInitialisation</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>TransactionManager</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>This is the interface that the core exposes in order to allow different
+ types of participants to be enrolled.<DT><A HREF="./com/arjuna/mw/wst/TransactionManager.html#TransactionManager()"><B>TransactionManager()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst">TransactionManager</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManagerFactory.html#transactionManager()"><B>transactionManager()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst">TransactionManagerFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>TransactionManagerFactory</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/TransactionManagerFactory.html#TransactionManagerFactory()"><B>TransactionManagerFactory()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst">TransactionManagerFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>TransactionRolledBackException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the transaction rolls back rather than commits.<DT><A HREF="./com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html#TransactionRolledBackException()"><B>TransactionRolledBackException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions">TransactionRolledBackException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html#TransactionRolledBackException(java.lang.String)"><B>TransactionRolledBackException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions">TransactionRolledBackException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>TransactionRolledBackException</B></A> - Exception in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Thrown if the transaction rolls back rather than commits.<DT><A HREF="./com/arjuna/wst/TransactionRolledBackException.html#TransactionRolledBackException()"><B>TransactionRolledBackException()</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/TransactionRolledBackException.html#TransactionRolledBackException(java.lang.String)"><B>TransactionRolledBackException(String)</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">TransactionRolledBackException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>TwoPhaseParticipant</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A><DD>The TwoPhaseParticipant.<DT><A HREF="./com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>TxContext</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>This class represents a handle on a stack of transactions.</DL>
+<HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/wsc/ContextFactory.html#uninstall(java.lang.String)"><B>uninstall(String)</B></A> - 
+Method in interface com.arjuna.wsc.<A HREF="./com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc">ContextFactory</A>
+<DD>Called when a context factory is removed from a context factory mapper.
+<DT><A HREF="./com/arjuna/wsc/Registrar.html#uninstall(java.lang.String)"><B>uninstall(String)</B></A> - 
+Method in interface com.arjuna.wsc.<A HREF="./com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc">Registrar</A>
+<DD>Called when a registrar is removed from a register mapper.
+<DT><A HREF="./com/arjuna/wst/BAParticipantManager.html#unknown()"><B>unknown()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>
+<DD>An unknown error has occurred that the participant wants to communicate
+ to the coordinator.
+<DT><A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html#unknown()"><B>unknown()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>
+<DD>If the participant enquires as to the status of the transaction it was
+ registered with and that transaction is no longer available (has rolled
+ back) then this operation will be invoked by the coordination service.
+<DT><A HREF="./com/arjuna/wst/Participant.html#unknown()"><B>unknown()</B></A> - 
+Method in interface com.arjuna.wst.<A HREF="./com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>
+<DD>During recovery the participant can enquire as to the status of the
+ transaction it was registered with.
+<DT><A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html#unknown()"><B>unknown()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BACoordinatorCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html#unknown()"><B>unknown()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub">BAParticipantCompletionParticipantManagerStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html#unknown()"><B>unknown()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub">BusinessActivityTerminatorStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html#unknown()"><B>unknown()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithCoordinatorCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html#unknown()"><B>unknown()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub">BusinessAgreementWithParticipantCompletionStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/stub/ParticipantStub.html#unknown()"><B>unknown()</B></A> - 
+Method in class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub">ParticipantStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>UnknownParticipantException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the transaction is unknown.<DT><A HREF="./com/arjuna/mw/wst/exceptions/UnknownParticipantException.html#UnknownParticipantException()"><B>UnknownParticipantException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/UnknownParticipantException.html#UnknownParticipantException(java.lang.String)"><B>UnknownParticipantException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownParticipantException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>UnknownTransactionException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the transaction is unknown.<DT><A HREF="./com/arjuna/mw/wst/exceptions/UnknownTransactionException.html#UnknownTransactionException()"><B>UnknownTransactionException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/UnknownTransactionException.html#UnknownTransactionException(java.lang.String)"><B>UnknownTransactionException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">UnknownTransactionException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>UnknownTransactionException</B></A> - Exception in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Thrown if the transaction is unknown.<DT><A HREF="./com/arjuna/wst/UnknownTransactionException.html#UnknownTransactionException()"><B>UnknownTransactionException()</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/UnknownTransactionException.html#UnknownTransactionException(java.lang.String)"><B>UnknownTransactionException(String)</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">UnknownTransactionException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>UserBusinessActivity</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>This is the interface that allows BAs to be started and terminated.<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html#UserBusinessActivity()"><B>UserBusinessActivity()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst">UserBusinessActivity</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivityFactory.html#userBusinessActivity()"><B>userBusinessActivity()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst">UserBusinessActivityFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst"><B>UserBusinessActivityFactory</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/UserBusinessActivityFactory.html#UserBusinessActivityFactory()"><B>UserBusinessActivityFactory()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst">UserBusinessActivityFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>UserTransaction</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>This is the interface that allows transactions to be started and terminated.<DT><A HREF="./com/arjuna/mw/wst/UserTransaction.html#UserTransaction()"><B>UserTransaction()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst">UserTransaction</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserTransactionFactory.html#userTransaction()"><B>userTransaction()</B></A> - 
+Static method in class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst">UserTransactionFactory</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst"><B>UserTransactionFactory</B></A> - Class in <A HREF="./com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A><DD>&nbsp;<DT><A HREF="./com/arjuna/mw/wst/UserTransactionFactory.html#UserTransactionFactory()"><B>UserTransactionFactory()</B></A> - 
+Constructor for class com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst">UserTransactionFactory</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_V_"><!-- --></A><H2>
+<B>V</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/TxContext.html#valid()"><B>valid()</B></A> - 
+Method in interface com.arjuna.mw.wst.<A HREF="./com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst">TxContext</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>Volatile2PCParticipant</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>The Volatile2PCParticipant.<DT><A HREF="./com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub"><B>Volatile2PCStub</B></A> - Class in <A HREF="./com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A><DD>&nbsp;<DT><A HREF="./com/arjuna/wst/stub/Volatile2PCStub.html#Volatile2PCStub(java.lang.String, com.arjuna.webservices.wsaddr.EndpointReferenceType)"><B>Volatile2PCStub(String, EndpointReferenceType)</B></A> - 
+Constructor for class com.arjuna.wst.stub.<A HREF="./com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub">Volatile2PCStub</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote"><B>Vote</B></A> - Interface in <A HREF="./com/arjuna/mw/wst/vote/package-summary.html">com.arjuna.mw.wst.vote</A><DD>When asked to prepare, a 2PC participant returns one of three types of
+ vote:
+
+ ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.<DT><A HREF="./com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>Vote</B></A> - Interface in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>When asked to prepare, a 2PC participant returns one of three types of
+ vote:
+
+ ReadOnly: does not need to be informed of the transaction outcome as no
+ state updates were made.</DL>
+<HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions"><B>WrongStateException</B></A> - Exception in <A HREF="./com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A><DD>Thrown if the transaction is unknown.<DT><A HREF="./com/arjuna/mw/wst/exceptions/WrongStateException.html#WrongStateException()"><B>WrongStateException()</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/exceptions/WrongStateException.html#WrongStateException(java.lang.String)"><B>WrongStateException(String)</B></A> - 
+Constructor for exception com.arjuna.mw.wst.exceptions.<A HREF="./com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">WrongStateException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst"><B>WrongStateException</B></A> - Exception in <A HREF="./com/arjuna/wst/package-summary.html">com.arjuna.wst</A><DD>Thrown if the state of the transaction is incompatible with the
+ operation attempted.<DT><A HREF="./com/arjuna/wst/WrongStateException.html#WrongStateException()"><B>WrongStateException()</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/wst/WrongStateException.html#WrongStateException(java.lang.String)"><B>WrongStateException(String)</B></A> - 
+Constructor for exception com.arjuna.wst.<A HREF="./com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">WrongStateException</A>
+<DD>&nbsp;
+<DT><A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy"><B>WSTXInitialisation</B></A> - Class in <A HREF="./com/arjuna/mw/wst/deploy/package-summary.html">com.arjuna.mw.wst.deploy</A><DD>Initialise WSTX.<DT><A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html#WSTXInitialisation()"><B>WSTXInitialisation()</B></A> - 
+Constructor for class com.arjuna.mw.wst.deploy.<A HREF="./com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy">WSTXInitialisation</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> 
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/index.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/index.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/index.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Mon Dec 03 19:18:38 GMT 2007-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+        targetPage = targetPage.substring(1);
+    if (targetPage.indexOf(":") != -1)
+        targetPage = "undefined";
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-frame.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-frame.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-frame.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:37 GMT 2007 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TH>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/package-frame.html" target="packageFrame">com.arjuna.mw.wst</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/client/package-frame.html" target="packageFrame">com.arjuna.mw.wst.client</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/common/package-frame.html" target="packageFrame">com.arjuna.mw.wst.common</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/deploy/package-frame.html" target="packageFrame">com.arjuna.mw.wst.deploy</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/exceptions/package-frame.html" target="packageFrame">com.arjuna.mw.wst.exceptions</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/resources/package-frame.html" target="packageFrame">com.arjuna.mw.wst.resources</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/service/package-frame.html" target="packageFrame">com.arjuna.mw.wst.service</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/mw/wst/vote/package-frame.html" target="packageFrame">com.arjuna.mw.wst.vote</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wsc/package-frame.html" target="packageFrame">com.arjuna.wsc</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wsc/messaging/package-frame.html" target="packageFrame">com.arjuna.wsc.messaging</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wsc/messaging/deploy/package-frame.html" target="packageFrame">com.arjuna.wsc.messaging.deploy</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wst/package-frame.html" target="packageFrame">com.arjuna.wst</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wst/messaging/package-frame.html" target="packageFrame">com.arjuna.wst.messaging</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wst/messaging/deploy/package-frame.html" target="packageFrame">com.arjuna.wst.messaging.deploy</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wst/messaging/engines/package-frame.html" target="packageFrame">com.arjuna.wst.messaging.engines</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/arjuna/wst/stub/package-frame.html" target="packageFrame">com.arjuna.wst.stub</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-summary.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-summary.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-summary.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Overview";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Packages</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/package-summary.html">com.arjuna.mw.wst</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/client/package-summary.html">com.arjuna.mw.wst.client</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/common/package-summary.html">com.arjuna.mw.wst.common</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/deploy/package-summary.html">com.arjuna.mw.wst.deploy</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/exceptions/package-summary.html">com.arjuna.mw.wst.exceptions</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/resources/package-summary.html">com.arjuna.mw.wst.resources</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/service/package-summary.html">com.arjuna.mw.wst.service</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/mw/wst/vote/package-summary.html">com.arjuna.mw.wst.vote</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wsc/package-summary.html">com.arjuna.wsc</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wsc/messaging/package-summary.html">com.arjuna.wsc.messaging</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wsc/messaging/deploy/package-summary.html">com.arjuna.wsc.messaging.deploy</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wst/package-summary.html">com.arjuna.wst</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wst/messaging/package-summary.html">com.arjuna.wst.messaging</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wst/messaging/deploy/package-summary.html">com.arjuna.wst.messaging.deploy</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wst/messaging/engines/package-summary.html">com.arjuna.wst.messaging.engines</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/arjuna/wst/stub/package-summary.html">com.arjuna.wst.stub</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-tree.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-tree.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/overview-tree.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="com/arjuna/mw/wst/package-tree.html">com.arjuna.mw.wst</A>, <A HREF="com/arjuna/mw/wst/client/package-tree.html">com.arjuna.mw.wst.client</A>, <A HREF="com/arjuna/mw/wst/common/package-tree.html">com.arjuna.mw.wst.common</A>, <A HREF="com/arjuna/mw/wst/deploy/package-tree.html">com.arjuna.mw.wst.deploy</A>, <A HREF="com/arjuna/mw/wst/exceptions/package-tree.html">com.arjuna.mw.wst.exceptions</A>, <A HREF="com/arjuna/mw/wst/resources/package-tree.html">com.arjuna.mw.wst.resources</A>, <A HREF="com/arjuna/mw/wst/service/package-tree.html">com.arjuna.mw.wst.service</A>, <A HREF="com/arjuna/mw/wst/vote/package-tree.html">com.arjuna.mw.wst.vote</A>, <A HREF="com/arjuna/wsc/package-tree.html">com.arjuna.wsc</A>, <A HREF="com/arjuna/wsc/messaging/package-tree.html">com.arjuna.wsc.messaging</A>, <A HREF="com/arjuna/wsc/messaging/deploy/package-tree.html">com.arjuna.wsc.messaging.deploy</A>, <A HREF="com/arjuna/wst/package-tree.html">com.a!
 rjuna.wst</A>, <A HREF="com/arjuna/wst/messaging/package-tree.html">com.arjuna.wst.messaging</A>, <A HREF="com/arjuna/wst/messaging/deploy/package-tree.html">com.arjuna.wst.messaging.deploy</A>, <A HREF="com/arjuna/wst/messaging/engines/package-tree.html">com.arjuna.wst.messaging.engines</A>, <A HREF="com/arjuna/wst/stub/package-tree.html">com.arjuna.wst.stub</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Aborted.html" title="class in com.arjuna.wst"><B>Aborted</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/vote/Aborted.html" title="class in com.arjuna.mw.wst.vote"><B>Aborted</B></A> (implements com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A>)
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/ActivationCoordinator.html" title="class in com.arjuna.wsc"><B>ActivationCoordinator</B></A><LI TYPE="circle">com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wsc.messaging.<A HREF="com/arjuna/wsc/messaging/ActivationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>ActivationCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>BACoordinatorCompletionParticipantManagerStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStub.html" title="class in com.arjuna.wst.stub"><B>BAParticipantCompletionParticipantManagerStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst">BAParticipantManager</A>)
+<LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/BusinessActivityManager.html" title="class in com.arjuna.mw.wst"><B>BusinessActivityManager</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/BusinessActivityManagerFactory.html" title="class in com.arjuna.mw.wst"><B>BusinessActivityManagerFactory</B></A><LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/BusinessActivityTerminatorStub.html" title="class in com.arjuna.wst.stub"><B>BusinessActivityTerminatorStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst">BusinessActivityTerminator</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStub.html" title="class in com.arjuna.wst.stub"><B>BusinessAgreementWithCoordinatorCompletionStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithCoordinatorCompletionParticipant</A>, com.arjuna.wst.<A HREF="com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStub.html" title="class in com.arjuna.wst.stub"><B>BusinessAgreementWithParticipantCompletionStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst">BusinessAgreementWithParticipantCompletionParticipant</A>, com.arjuna.wst.<A HREF="com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Cancel.html" title="class in com.arjuna.wst"><B>Cancel</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/CompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CompletionCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/CompletionStub.html" title="class in com.arjuna.wst.stub"><B>CompletionStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst">CompletionCoordinatorParticipant</A>)
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/ContextFactoryMapper.html" title="class in com.arjuna.wsc"><B>ContextFactoryMapper</B></A><LI TYPE="circle">com.arjuna.mw.wst.common.<A HREF="com/arjuna/mw/wst/common/CoordinationContextHelper.html" title="class in com.arjuna.mw.wst.common"><B>CoordinationContextHelper</B></A><LI TYPE="circle">com.arjuna.wsc.messaging.deploy.<A HREF="com/arjuna/wsc/messaging/deploy/CoordinationInitialisation.html" title="class in com.arjuna.wsc.messaging.deploy"><B>CoordinationInitialisation</B></A> (implements javax.servlet.ServletContextListener)
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorCompletionCoordinatorEngine</B></A> (implements com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEvents)
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorCompletionCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorCompletionParticipantEngine</B></A> (implements com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEvents)
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorCompletionParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="com/arjuna/wst/messaging/engines/CoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>CoordinatorEngine</B></A> (implements com.arjuna.webservices.wsat.CoordinatorInboundEvents)
+<LI TYPE="circle">com.arjuna.webservices.wsat.processors.CoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/CoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>CoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="com/arjuna/mw/wst/client/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>GlueIncomingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="com/arjuna/mw/wst/service/GlueIncomingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>GlueIncomingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="com/arjuna/mw/wst/client/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.client"><B>GlueOutgoingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="com/arjuna/mw/wst/service/GlueOutgoingContextInterceptor.html" title="class in com.arjuna.mw.wst.service"><B>GlueOutgoingContextInterceptor</B></A><LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>JaxRPCHeaderContextProcessor</B></A> !
 (implements javax.xml.rpc.handler.Handler)
+<LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>JaxRPCHeaderContextProcessor</B></A> (implements javax.xml.rpc.handler.Handler)
+<LI TYPE="circle">com.arjuna.mw.wst.client.<A HREF="com/arjuna/mw/wst/client/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.client"><B>JaxWSHeaderContextProcessor</B></A><LI TYPE="circle">com.arjuna.mw.wst.service.<A HREF="com/arjuna/mw/wst/service/JaxWSHeaderContextProcessor.html" title="class in com.arjuna.mw.wst.service"><B>JaxWSHeaderContextProcessor</B></A><LI TYPE="circle">com.arjuna.wsc.messaging.<A HREF="com/arjuna/wsc/messaging/MessageId.html" title="class in com.arjuna.wsc.messaging"><B>MessageId</B></A><LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantCompletionCoordinatorEngine</B></A> (implements com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEvents)
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantCompletionCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantCompletionParticipantEngine</B></A> (implements com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEvents)
+<LI TYPE="circle">com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantCompletionParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.engines.<A HREF="com/arjuna/wst/messaging/engines/ParticipantEngine.html" title="class in com.arjuna.wst.messaging.engines"><B>ParticipantEngine</B></A> (implements com.arjuna.webservices.wsat.ParticipantInboundEvents)
+<LI TYPE="circle">com.arjuna.webservices.wsat.processors.ParticipantProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/ParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>ParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/ParticipantStub.html" title="class in com.arjuna.wst.stub"><B>ParticipantStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst">Participant</A>, com.arjuna.wst.<A HREF="com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst">PersistableParticipant</A>)
+<UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/Durable2PCStub.html" title="class in com.arjuna.wst.stub"><B>Durable2PCStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst">Durable2PCParticipant</A>)
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/Volatile2PCStub.html" title="class in com.arjuna.wst.stub"><B>Volatile2PCStub</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst">Volatile2PCParticipant</A>)
+</UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Prepared.html" title="class in com.arjuna.wst"><B>Prepared</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/vote/Prepared.html" title="class in com.arjuna.mw.wst.vote"><B>Prepared</B></A> (implements com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A>)
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/ReadOnly.html" title="class in com.arjuna.wst"><B>ReadOnly</B></A> (implements com.arjuna.wst.<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst">Vote</A>)
+<LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/vote/ReadOnly.html" title="class in com.arjuna.mw.wst.vote"><B>ReadOnly</B></A> (implements com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/vote/Vote.html" title="interface in com.arjuna.mw.wst.vote">Vote</A>)
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/RegistrarMapper.html" title="class in com.arjuna.wsc"><B>RegistrarMapper</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/RegistrationCoordinator.html" title="class in com.arjuna.wsc"><B>RegistrationCoordinator</B></A><LI TYPE="circle">com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wsc.messaging.<A HREF="com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorImpl.html" title="class in com.arjuna.wsc.messaging"><B>RegistrationCoordinatorProcessorImpl</B></A></UL>
+<LI TYPE="circle">com.arjuna.mw.wst.common.<A HREF="com/arjuna/mw/wst/common/SOAPUtil.html" title="class in com.arjuna.mw.wst.common"><B>SOAPUtil</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Status.html" title="class in com.arjuna.wst"><B>Status</B></A><LI TYPE="circle">com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor<UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.<A HREF="com/arjuna/wst/messaging/TerminatorParticipantProcessorImpl.html" title="class in com.arjuna.wst.messaging"><B>TerminatorParticipantProcessorImpl</B></A></UL>
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc"><B>AlreadyRegisteredException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst"><B>FaultedException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicCommitException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicHazardException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicMixedException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/HeuristicRollbac!
 kException.html" title="class in com.arjuna.mw.wst.exceptions"><B>HeuristicRollbackException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc"><B>InvalidCreateParametersException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc"><B>InvalidProtocolException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc"><B>InvalidStateException</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc"><B>NoActivityException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst"><B>SystemException</B></A><UL>
+<LI TYPE="circle">com.arjuna.wst.stub.<A HREF="com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub"><B>SystemCommunicationException</B></A></UL>
+<LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions"><B>SystemException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst"><B>TransactionRolledBackException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions"><B>TransactionRolledBackException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions"><B>UnknownParticipantException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst"><B>UnknownTransactionException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw!
 /wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions"><B>UnknownTransactionException</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst"><B>WrongStateException</B></A><LI TYPE="circle">com.arjuna.mw.wst.exceptions.<A HREF="com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions"><B>WrongStateException</B></A></UL>
+</UL>
+<LI TYPE="circle">com.arjuna.wst.messaging.deploy.<A HREF="com/arjuna/wst/messaging/deploy/TransactionInitialisation.html" title="class in com.arjuna.wst.messaging.deploy"><B>TransactionInitialisation</B></A> (implements javax.servlet.ServletContextListener)
+<LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/TransactionManager.html" title="class in com.arjuna.mw.wst"><B>TransactionManager</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/TransactionManagerFactory.html" title="class in com.arjuna.mw.wst"><B>TransactionManagerFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/UserBusinessActivity.html" title="class in com.arjuna.mw.wst"><B>UserBusinessActivity</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/UserBusinessActivityFactory.html" title="class in com.arjuna.mw.wst"><B>UserBusinessActivityFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/UserTransaction.html" title="class in com.arjuna.mw.wst"><B>UserTransaction</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/UserTransactionFactory.html" title="class in com.arjuna.mw.wst"><B>UserTransactionFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.de!
 ploy.<A HREF="com/arjuna/mw/wst/deploy/WSTXInitialisation.html" title="class in com.arjuna.mw.wst.deploy"><B>WSTXInitialisation</B></A> (implements javax.servlet.ServletContextListener)
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/BAParticipantManager.html" title="interface in com.arjuna.wst"><B>BAParticipantManager</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/BAParticipantManager.html" title="interface in com.arjuna.mw.wst"><B>BAParticipantManager</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/BusinessActivityTerminator.html" title="interface in com.arjuna.wst"><B>BusinessActivityTerminator</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/BusinessAgreement.html" title="interface in com.arjuna.mw.wst.resources"><B>BusinessAgreement</B></A><UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/BusinessAgreementWithComplete.html" title="interface in com.arjuna.mw.wst.resources"><B>BusinessAgreementWithComplete</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/BusinessAgreementWithParticipantCompletionParticipant.html" title="interface in com.arjuna.wst"><B>BusinessAgreementWithParticipantCompletionParticipant</B></A><UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/BusinessAgreementWithCoordinatorCompletionParticipant.html" title="interface in com.arjuna.wst"><B>BusinessAgreementWithCoordinatorCompletionParticipant</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/CompletionCoordinatorParticipant.html" title="interface in com.arjuna.wst"><B>CompletionCoordinatorParticipant</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/CompletionParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>CompletionParticipant</B></A><UL>
+<LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/CompletionWithAckParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>CompletionWithAckParticipant</B></A></UL>
+<LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/ContextFactory.html" title="interface in com.arjuna.wsc"><B>ContextFactory</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/Durable2PCCoordinator.html" title="interface in com.arjuna.mw.wst"><B>Durable2PCCoordinator</B></A><LI TYPE="circle">com.arjuna.mw.wst.common.<A HREF="com/arjuna/mw/wst/common/Environment.html" title="interface in com.arjuna.mw.wst.common"><B>Environment</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/OutcomeNotificationParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>OutcomeNotificationParticipant</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Participant.html" title="interface in com.arjuna.wst"><B>Participant</B></A><UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Durable2PCParticipant.html" title="interface in com.arjuna.wst"><B>Durable2PCParticipant</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Volatile2PCParticipant.html" title="interface in com.arjuna.wst"><B>Volatile2PCParticipant</B></A></UL>
+<LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/PersistableParticipant.html" title="interface in com.arjuna.wst"><B>PersistableParticipant</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/PhaseZeroParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>PhaseZeroParticipant</B></A><LI TYPE="circle">com.arjuna.wsc.<A HREF="com/arjuna/wsc/Registrar.html" title="interface in com.arjuna.wsc"><B>Registrar</B></A><LI TYPE="circle">com.arjuna.mw.wst.resources.<A HREF="com/arjuna/mw/wst/resources/TwoPhaseParticipant.html" title="interface in com.arjuna.mw.wst.resources"><B>TwoPhaseParticipant</B></A><LI TYPE="circle">com.arjuna.mw.wst.<A HREF="com/arjuna/mw/wst/TxContext.html" title="interface in com.arjuna.mw.wst"><B>TxContext</B></A><LI TYPE="circle">com.arjuna.wst.<A HREF="com/arjuna/wst/Vote.html" title="interface in com.arjuna.wst"><B>Vote</B></A><LI TYPE="circle">com.arjuna.mw.wst.vote.<A HREF="com/arjuna/mw/wst/v!
 ote/Vote.html" title="interface in com.arjuna.mw.wst.vote"><B>Vote</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/package-list
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/package-list	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/package-list	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,16 @@
+com.arjuna.mw.wst
+com.arjuna.mw.wst.client
+com.arjuna.mw.wst.common
+com.arjuna.mw.wst.deploy
+com.arjuna.mw.wst.exceptions
+com.arjuna.mw.wst.resources
+com.arjuna.mw.wst.service
+com.arjuna.mw.wst.vote
+com.arjuna.wsc
+com.arjuna.wsc.messaging
+com.arjuna.wsc.messaging.deploy
+com.arjuna.wst
+com.arjuna.wst.messaging
+com.arjuna.wst.messaging.deploy
+com.arjuna.wst.messaging.engines
+com.arjuna.wst.stub

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/resources/inherit.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/htdocs/resources/inherit.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/serialized-form.html
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/serialized-form.html	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/serialized-form.html	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_12) on Mon Dec 03 19:18:38 GMT 2007 -->
+<TITLE>
+Serialized Form
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Serialized Form";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Serialized Form</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.arjuna.mw.wst.exceptions</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.HeuristicCommitException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/HeuristicCommitException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.HeuristicCommitException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.HeuristicHazardException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/HeuristicHazardException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.HeuristicHazardException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.HeuristicMixedException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/HeuristicMixedException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.HeuristicMixedException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.HeuristicRollbackException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/HeuristicRollbackException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.HeuristicRollbackException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.SystemException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/SystemException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.SystemException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.TransactionRolledBackException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/TransactionRolledBackException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.TransactionRolledBackException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.UnknownParticipantException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/UnknownParticipantException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.UnknownParticipantException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.UnknownTransactionException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/UnknownTransactionException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.UnknownTransactionException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.mw.wst.exceptions.WrongStateException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/mw/wst/exceptions/WrongStateException.html" title="class in com.arjuna.mw.wst.exceptions">com.arjuna.mw.wst.exceptions.WrongStateException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.arjuna.wsc</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.arjuna.wsc.AlreadyRegisteredException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wsc/AlreadyRegisteredException.html" title="class in com.arjuna.wsc">com.arjuna.wsc.AlreadyRegisteredException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wsc.InvalidCreateParametersException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wsc/InvalidCreateParametersException.html" title="class in com.arjuna.wsc">com.arjuna.wsc.InvalidCreateParametersException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wsc.InvalidProtocolException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wsc/InvalidProtocolException.html" title="class in com.arjuna.wsc">com.arjuna.wsc.InvalidProtocolException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wsc.InvalidStateException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wsc/InvalidStateException.html" title="class in com.arjuna.wsc">com.arjuna.wsc.InvalidStateException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wsc.NoActivityException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wsc/NoActivityException.html" title="class in com.arjuna.wsc">com.arjuna.wsc.NoActivityException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.arjuna.wst</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.arjuna.wst.FaultedException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wst/FaultedException.html" title="class in com.arjuna.wst">com.arjuna.wst.FaultedException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wst.SystemException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">com.arjuna.wst.SystemException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wst.TransactionRolledBackException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wst/TransactionRolledBackException.html" title="class in com.arjuna.wst">com.arjuna.wst.TransactionRolledBackException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wst.UnknownTransactionException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wst/UnknownTransactionException.html" title="class in com.arjuna.wst">com.arjuna.wst.UnknownTransactionException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.arjuna.wst.WrongStateException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wst/WrongStateException.html" title="class in com.arjuna.wst">com.arjuna.wst.WrongStateException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.arjuna.wst.stub</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.arjuna.wst.stub.SystemCommunicationException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="com/arjuna/wst/stub/SystemCommunicationException.html" title="class in com.arjuna.wst.stub">com.arjuna.wst.stub.SystemCommunicationException</A> extends <A HREF="com/arjuna/wst/SystemException.html" title="class in com.arjuna.wst">SystemException</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>

Added: labs/jbosstm/workspace/adinn/XTSGF/htdocs/stylesheet.css
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/htdocs/stylesheet.css	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/htdocs/stylesheet.css	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
+.TableRowColor         { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+

Added: labs/jbosstm/workspace/adinn/XTSGF/sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/sar/META-INF/jboss-service.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/sar/META-INF/jboss-service.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id$ -->
+
+<server>
+
+   <mbean name="jboss.xts:service=XTSService" code="org.jboss.transactions.XTSService">
+       <depends>jboss.web:service=WebServer</depends>
+   </mbean>
+
+</server>

Added: labs/jbosstm/workspace/adinn/XTSGF/sar/WEB-INF/web.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/sar/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/sar/WEB-INF/web.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,35 @@
+<!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>
+
+    <servlet>
+    <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+    <servlet-class>com.arjuna.webservices.transport.http.HttpServiceMultiplexorServlet</servlet-class>
+    <!--
+      The BaseHttpURI and BaseHttpsURI parameters specify the default values
+      used to generate the service URIs without reference to an incoming
+      request.
+     -->
+    <init-param>
+        <param-name>BaseHttpURI</param-name>
+        <param-value>http://localhost:8080/jbossxts/soap/</param-value>
+    </init-param>
+    <!--
+    <init-param>
+        <param-name>BaseHttpsURI</param-name>
+        <param-value>https://localhost:8080/xts/soap/</param-value>
+    </init-param>
+    <init-param>
+        <param-name>LogPackets</param-name>
+        <param-value>true</param-value>
+    </init-param>
+    -->
+    <load-on-startup>1</load-on-startup>
+</servlet>
+
+    <!-- servlet mappings -->
+<servlet-mapping>
+    <servlet-name>HTTP SOAP Service Multiplexor Servlet</servlet-name>
+    <url-pattern>/soap/*</url-pattern>
+</servlet-mapping>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/sar/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/sar/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/sar/build.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,94 @@
+<!--
+  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.
+-->
+
+<project name="sar" default="sar" basedir=".">
+
+    <!-- ================================================================== -->
+
+    <!-- The properties to override are the following:                      -->
+    <!--    hostname (defaults to localhost)                                -->
+    <!--    port (defaults to 8080 for jboss)                               -->
+
+    <!--    deploy.dir The deployment directory for the ear                 -->
+    <!--    xts.home The installation directory for AXTS                   -->
+    <!-- ================================================================== -->
+
+    <!-- the directory in which XTS resides -->
+    <!-- devs: run 'ant jta; cd XTS; ant install' after svn checkout -->
+    <property name="xts.home" value="../xts-install"/>
+
+    <!-- the directory in which your app server resides (version 4.2.1 expected) -->
+    <property name="jbossas.home" value="/home/jhalli/IdeaProjects/jboss/jbossas421ga/build/output/jboss-4.2.1.GA"/>
+
+
+    <property name="lib.dir" location="${xts.home}/lib"/>
+    <property name="ext.dir" location="${lib.dir}/ext"/>
+
+    <property name="build.dir"         value="build"/>
+
+    <target name="init">
+        <delete dir="${build.dir}"/>
+        <mkdir dir="${build.dir}"/>
+    </target>
+
+    <!-- TODO are the xts engine and its WS stack conceptually separate deployments? at what level do they integrate? spi or jax-ws?-->
+    <target name="sar" depends="init">
+
+        <javac srcdir="src" destdir="${build.dir}">
+            <classpath>
+                <!-- logging -->
+                <pathelement location="${jbossas.home}/lib/jboss-common.jar"/>
+                <!-- mbean -->
+                <pathelement location="${jbossas.home}/lib/jboss-system.jar"/>
+                <pathelement location="${jbossas.home}/lib/jboss-jmx.jar"/>
+                <!-- XTS -->
+                <fileset dir="${lib.dir}" includes="*.jar"/>
+                <fileset dir="${lib.dir}/ext" includes="jbossjta.jar jbossts-common.jar"/>
+            </classpath>
+        </javac>
+
+        <!-- TODO: how to enforce startup ordering? -->
+
+        <jar jarfile="${build.dir}/jbossxts.war">
+            <fileset dir="." includes="WEB-INF/web.xml"/>
+        </jar>
+
+        <jar jarfile="${build.dir}/jbossxts.sar">
+            <fileset dir="${lib.dir}" includes="*.jar"/>
+
+            <fileset dir="." includes="META-INF/jboss-service.xml"/>
+            <fileset dir="${build.dir}" includes="**/*.class"/>
+
+            <fileset dir="${build.dir}" includes="jbossxts.war"/>
+
+            <!-- AS /lib supplies servlet.jar, jbossjta.jar, commons-logging.jar, jbossts-common.jar
+                saaj-api.jar, jaxrpc.jar.  stax is in jbossws.sar but not server /lib    -->
+            <fileset dir="${ext.dir}" includes="stax-api-1.0.jar wstx-asl-2.0.3.jar"/>
+
+            <fileset dir="." includes="jbossxts.xml"/>
+        </jar>
+    </target>
+
+    <target name="deploy" depends="sar">
+        <copy file="${build.dir}/jbossxts.sar" todir="${jbossas.home}/server/default/deploy"/>
+    </target>
+
+</project>

Added: labs/jbosstm/workspace/adinn/XTSGF/sar/jbossxts.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/sar/jbossxts.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/sar/jbossxts.xml	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,43 @@
+<!--
+  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.
+-->
+
+<xts-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.ArjunaContextImple"/>
+	    <property name="com.arjuna.mw.wscf.protocols.sagas.context"
+	    value="com.arjuna.mwlabs.wst.ba.context.ArjunaContextImple"/>
+	    <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"/>
+    </properties>
+</xts-config>
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSService.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,391 @@
+/*
+ * 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 Lesser General Public License, v. 2.1.
+ * 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 Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 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 org.jboss.transactions;
+
+import org.jboss.system.ServiceMBeanSupport;
+import org.jboss.logging.Logger;
+
+import com.arjuna.mw.wsas.utils.Configuration;
+import com.arjuna.mw.wst.deploy.WSTXInitialisation;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mw.wst.BusinessActivityManager;
+import com.arjuna.wsc.ContextFactoryMapper;
+import com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl;
+import com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl;
+import com.arjuna.mwlabs.wsc.ContextFactoryMapperImple;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.SoapClient;
+import com.arjuna.webservices.util.ClassLoaderHelper;
+import com.arjuna.webservices.wsba.policy.CoordinatorCompletionCoordinatorPolicy;
+import com.arjuna.webservices.wsba.policy.CoordinatorCompletionParticipantPolicy;
+import com.arjuna.webservices.wsba.policy.ParticipantCompletionCoordinatorPolicy;
+import com.arjuna.webservices.wsba.policy.ParticipantCompletionParticipantPolicy;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsat.policy.CompletionCoordinatorPolicy;
+import com.arjuna.webservices.wsat.policy.CompletionInitiatorPolicy;
+import com.arjuna.webservices.wsat.policy.CoordinatorPolicy;
+import com.arjuna.webservices.wsat.policy.ParticipantPolicy;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+import com.arjuna.webservices.wsarjtx.policy.TerminationParticipantPolicy;
+import com.arjuna.webservices.wsarjtx.policy.TerminationCoordinatorPolicy;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
+import com.arjuna.webservices.transport.http.HttpClient;
+import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
+import com.arjuna.webservices.wscoor.policy.ActivationCoordinatorPolicy;
+import com.arjuna.webservices.wscoor.policy.ActivationRequesterPolicy;
+import com.arjuna.webservices.wscoor.policy.RegistrationCoordinatorPolicy;
+import com.arjuna.webservices.wscoor.policy.RegistrationRequesterPolicy;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.wst.messaging.*;
+import com.arjuna.ats.arjuna.recovery.RecoveryManager;
+
+import java.io.InputStream;
+
+/**
+ * $Id$
+ */
+public class XTSService extends ServiceMBeanSupport implements XTSServiceMBean {
+
+    // TODO expose as bean properties
+    private int taskManagerMinWorkerCount = 0;
+    private int taskManagerMaxWorkerCount = 10;
+
+    // TODO: how to use a (per application) remote coordinator?
+    // does the http servlet param indicate its own location and the
+    // coordinatorURL indicate the coord??
+
+    // ./HashedActionStore/defaultStore/StateManager/BasicAction/AtomicAction/TwoPhaseCoordinator/TwoPhase/ACCoordinator/
+
+//    	    <property
+//	    name="com.arjuna.ats.arjuna.recovery.recoveryExtension1"
+//	    value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
+    // recovers /StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction
+    // not what we need.
+
+    // TODO: new recovery mod, inheriting from existing base version e.g. AtomicActionRecoveryModule - change typex
+
+    public XTSService() {}
+
+    protected void startService() throws Exception
+    {
+        getLog().info("JBossTS XTS Transaction Service - starting");
+
+        // read unified properties file (replaces wscf.xml and wstx.xml)
+        Configuration.initialise("/jbossxts.xml");
+
+        //// wscf.war:
+
+        WSCFInitialisation();  // com.arjuna.mw.wsc.deploy.WSCFInitialisation: Initialise WSCF
+
+        //// ws-c.war:
+
+        TaskManagerInitialisation(); // com.arjuna.services.framework.admin.TaskManagerInitialisation : initialise the Task Manager
+        ActivationCoordinatorInitialisation(); // com.arjuna.webservices.wscoor.server.ActivationCoordinatorInitialisation : Activate the Activation Coordinator service
+        ActivationRequesterInitialisation(); // com.arjuna.webservices.wscoor.server.ActivationRequesterInitialisation : Activate the Activation Requester service
+        RegistrationCoordinatorInitialisation(); // com.arjuna.webservices.wscoor.server.RegistrationCoordinatorInitialisation : Activate the Registration Coordinator service
+        RegistrationRequesterInitialisation(); // com.arjuna.webservices.wscoor.server.RegistrationRequesterInitialisation : Activate the Registration Requester service
+        CoordinationInitialisation(); // com.arjuna.wsc.messaging.deploy.CoordinationInitialisation : Initialise the coordination services.
+        HttpClientInitialisation(); // com.arjuna.webservices.transport.http.HttpClientInitialisation : initialise the HTTP clients.
+        // TODO: HTTP SOAP Service Multiplexor Servlet
+
+        //// ws-t.war:
+
+        TerminationParticipantInitialisation(); // com.arjuna.webservices.wsarjtx.server.TerminationParticipantInitialisation : Arjuna TX - Activate the Terminator Participant  service
+        TerminationCoordinatorInitialisation(); // com.arjuna.webservices.wsarjtx.server.TerminationCoordinatorInitialisation : Arjuna TX - Activate the Terminator Coordinator service
+
+        CompletionCoordinatorInitialisation(); // com.arjuna.webservices.wsat.server.CompletionCoordinatorInitialisation : WS-AT - Activate the Completion Coordinator service
+        CompletionInitiatorInitialisation(); // com.arjuna.webservices.wsat.server.CompletionInitiatorInitialisation : WS-AT - Activate the Completion Initiator service
+        CoordinatorInitialisation(); // com.arjuna.webservices.wsat.server.CoordinatorInitialisation : WS-AT: Activate the Coordinator service
+        ParticipantInitialisation(); // com.arjuna.webservices.wsat.server.ParticipantInitialisation : WS-AT - Activate the Participant service
+
+        CoordinatorCompletionCoordinatorInitialisation(); // com.arjuna.webservices.wsba.server.CoordinatorCompletionCoordinatorInitialisation : WS-BA - Activate the Coordinator Completion Coordinator service
+        CoordinatorCompletionParticipantInitialisation(); // com.arjuna.webservices.wsba.server.CoordinatorCompletionParticipantInitialisation : WS-BA - Activate the Coordinator Completion Participant service
+        ParticipantCompletionCoordinatorInitialisation(); // com.arjuna.webservices.wsba.server.ParticipantCompletionCoordinatorInitialisation : WS-BA - Activate the Participant Completion Coordinator service
+        ParticipantCompletionParticipantInitialisation(); // com.arjuna.webservices.wsba.server.ParticipantCompletionParticipantInitialisation : WS-BA - Activate the Participant Completion Participant service
+
+        TransactionInitialisation(); // com.arjuna.wst.messaging.deploy.TransactionInitialisation : WS-T - Initialise the transaction services.
+
+        //// wstx.war:
+
+        WSTXInitialisation(); // com.arjuna.mw.wst.deploy.WSTXInitialisation : Initialise WSTX
+
+        //ACCoordinatorRecoveryModule acCoordinatorRecoveryModule = new ACCoordinatorRecoveryModule();
+        // we assume the tx manager has started, hence initializing the recovery manager.
+        // to guarantee this our mbean should depend on the tx mgr mbean. (but does that g/tee start or just load?)
+        //RecoveryManager.manager().addModule(acCoordinatorRecoveryModule); // TODO thread safety.
+
+    }
+
+    protected void stopService() throws Exception
+    {
+        getLog().info("JBossTS XTS Transaction Service - stopping");
+
+        TaskManager.getManager().shutdown() ; // com.arjuna.services.framework.admin.TaskManagerInitialisation
+
+        // HttpClientInitialisation
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        soapRegistry.removeSoapClient("http") ;
+        soapRegistry.removeSoapClient("https") ;
+    }
+
+
+    ///////////////////////////////
+
+    private void WSCFInitialisation() throws Exception
+    {
+        //Configuration.initialise("/wscf.xml");
+
+        final ContextFactoryMapper wscfImpl = ContextFactoryMapper.getFactory() ;
+
+        wscfImpl.setSubordinateContextFactoryMapper(new ContextFactoryMapperImple());
+    }
+
+    private void TaskManagerInitialisation()
+    {
+        final TaskManager taskManager = TaskManager.getManager() ;
+        taskManager.setMinimumWorkerCount(taskManagerMinWorkerCount) ;
+        taskManager.setMaximumWorkerCount(taskManagerMaxWorkerCount) ;
+    }
+
+    private void ActivationCoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add Activation coordinator.
+        ActivationCoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(CoordinationConstants.SERVICE_ACTIVATION_COORDINATOR, handlerRegistry);
+    }
+
+    private void ActivationRequesterInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add Activation coordinator.
+        ActivationRequesterPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(CoordinationConstants.SERVICE_ACTIVATION_REQUESTER, handlerRegistry);
+    }
+
+    private void RegistrationCoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Registration coordinator.
+        RegistrationCoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(CoordinationConstants.SERVICE_REGISTRATION_COORDINATOR, handlerRegistry);
+    }
+
+    private void RegistrationRequesterInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add Registration coordinator.
+        RegistrationRequesterPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(CoordinationConstants.SERVICE_REGISTRATION_REQUESTER, handlerRegistry);
+    }
+
+    private void CoordinationInitialisation()
+    {
+        ActivationCoordinatorProcessor.setCoordinator(new ActivationCoordinatorProcessorImpl()) ;
+        RegistrationCoordinatorProcessor.setCoordinator(new RegistrationCoordinatorProcessorImpl()) ;
+    }
+
+    private void HttpClientInitialisation()
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        final SoapClient client = new HttpClient() ;
+        soapRegistry.registerSoapClient("http", client) ;
+        soapRegistry.registerSoapClient("https", client) ;
+    }
+
+    private void TerminationParticipantInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Terminator coordinator.
+        TerminationParticipantPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(ArjunaTXConstants.SERVICE_TERMINATION_PARTICIPANT, handlerRegistry);
+    }
+
+    private void TerminationCoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Terminator participant.
+        TerminationCoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(ArjunaTXConstants.SERVICE_TERMINATION_COORDINATOR, handlerRegistry);
+    }
+
+    private void CompletionCoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Completion coordinator.
+        CompletionCoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(AtomicTransactionConstants.SERVICE_COMPLETION_COORDINATOR, handlerRegistry);
+    }
+
+    private void CompletionInitiatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Completion initiator.
+        CompletionInitiatorPolicy.register(handlerRegistry);
+
+        addToSOAPRegistry(AtomicTransactionConstants.SERVICE_COMPLETION_INITIATOR, handlerRegistry);
+    }
+
+    private void CoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add coordinator.
+        CoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(AtomicTransactionConstants.SERVICE_COORDINATOR, handlerRegistry);
+    }
+
+    private void ParticipantInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Participant.
+        ParticipantPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(AtomicTransactionConstants.SERVICE_PARTICIPANT, handlerRegistry);
+    }
+
+    private void CoordinatorCompletionCoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Coordinator Completion coordinator.
+        CoordinatorCompletionCoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_COORDINATOR, handlerRegistry);
+    }
+
+    private void CoordinatorCompletionParticipantInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Coordinator Completion participant.
+        CoordinatorCompletionParticipantPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(BusinessActivityConstants.SERVICE_COORDINATOR_COMPLETION_PARTICIPANT, handlerRegistry);
+    }
+
+    private void ParticipantCompletionCoordinatorInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Participant Completion coordinator.
+        ParticipantCompletionCoordinatorPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_COORDINATOR, handlerRegistry);
+    }
+
+    private void ParticipantCompletionParticipantInitialisation()
+    {
+        final HandlerRegistry handlerRegistry = getHandlerRegistry();
+
+        // Add Participant Completion participant.
+        ParticipantCompletionParticipantPolicy.register(handlerRegistry) ;
+
+        addToSOAPRegistry(BusinessActivityConstants.SERVICE_PARTICIPANT_COMPLETION_PARTICIPANT, handlerRegistry);
+    }
+
+    private void TransactionInitialisation()
+    {
+        CompletionCoordinatorProcessor.setProcessor(new CompletionCoordinatorProcessorImpl()) ;
+        ParticipantProcessor.setProcessor(new ParticipantProcessorImpl()) ;
+        CoordinatorProcessor.setProcessor(new CoordinatorProcessorImpl()) ;
+        TerminationCoordinatorProcessor.setProcessor(new TerminatorParticipantProcessorImpl()) ;
+        CoordinatorCompletionParticipantProcessor.setProcessor(new CoordinatorCompletionParticipantProcessorImpl()) ;
+        ParticipantCompletionParticipantProcessor.setProcessor(new ParticipantCompletionParticipantProcessorImpl()) ;
+        CoordinatorCompletionCoordinatorProcessor.setProcessor(new CoordinatorCompletionCoordinatorProcessorImpl()) ;
+        ParticipantCompletionCoordinatorProcessor.setProcessor(new ParticipantCompletionCoordinatorProcessorImpl()) ;
+    }
+
+    private void WSTXInitialisation() throws Exception
+    {
+        // we don't know if the servlet is inited yet since its deploy is async,
+        // so play it safe and set the URL here too since UserTransactionImple needs it.
+        System.setProperty("com.arjuna.mw.wst.coordinatorURL", "http://localhost:8080/jbossxts/soap/ActivationCoordinator");
+
+        // wst.xml ignored. TODO: make these configurable again (mbean properties?):
+        UserTransaction.setUserTransaction(new com.arjuna.mwlabs.wst.at.remote.UserTransactionImple());
+        TransactionManager.setTransactionManager(new com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple());
+        UserBusinessActivity.setUserBusinessActivity(new com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityImple());
+        BusinessActivityManager.setBusinessActivityManager(new com.arjuna.mwlabs.wst.ba.remote.BusinessActivityManagerImple());
+
+        // TODO: should this really be after the above? At least one property from this file (coordinatorURL)
+        // would seem to be required at an earlier stage.
+        //Configuration.initialise("/wstx.xml");
+
+    }
+    ////
+
+    private HandlerRegistry getHandlerRegistry() {
+        final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        AddressingPolicy.register(handlerRegistry) ;
+        // Add Arjuna handlers
+        ArjunaPolicy.register(handlerRegistry) ;
+
+        return handlerRegistry;
+    }
+
+    private void addToSOAPRegistry(String serviceName, HandlerRegistry handlerRegistry)
+    {
+        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        soapRegistry.registerSoapService(serviceName, new SoapService(handlerRegistry)) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSServiceMBean.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSServiceMBean.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/sar/src/org/jboss/transactions/XTSServiceMBean.java	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,27 @@
+/*
+ * 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 Lesser General Public License, v. 2.1.
+ * 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 Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 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 org.jboss.transactions;
+
+/**
+ * $Id$
+ */
+public interface XTSServiceMBean  extends org.jboss.system.ServiceMBean {
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/third_party_licenses.txt
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/third_party_licenses.txt	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/third_party_licenses.txt	2007-12-03 19:46:30 UTC (rev 16990)
@@ -0,0 +1,2603 @@
+#
+# 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.
+#
+TERMS AND CONDITIONS FOR THIRD PARTY PRODUCTS THAT MAY ACCOMPANY ARJUNAMS
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE SOFTWARE THAT IS THE
+PARTICULAR THIRD PARTY PRODUCT AND DO NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY OTHER PRODUCTS TERMS
+ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+LICENSE TERMS FOR APACHE XERXES AND APACHE XALAN THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+
+The Apache Software LICENSE, Version 1.1
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE SOFTWARE THAT IS
+APACHE XERCES AND XALAN AND DO NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY OTHER PRODUCTS TERMS
+ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+For the Apache Xerces software:  Copyright (c) 1999-2000 The Apache Software Foundation.  All rights reserved.
+For the Apache Xalan software:  Copyright (c) 1999 The Apache Software Foundation.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without  modification, are permitted provided that the following conditions are
+met:
+
+1.	Redistributions of source code must retain the above copyright  notice, this list of conditions and the following disclaimer.
+
+2.	Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+3.	The end-user documentation included with the redistribution, if any, must include the following acknowledgment:
+
+"This product includes software developed by the Apache Software Foundation (http://www.apache.org/)."
+
+Alternately, this acknowledgment may appear in the software itself,   if and wherever such third-party acknowledgments normally
+appear.
+
+4.	The names "Xerces", "Xalan"  and "Apache Software Foundation" must not be used to endorse or promote products derived from
+this software without prior written permission. For written permission, please contact apache at apache.org.
+
+5.	Products derived from this software may not be called "Apache", "Velocity" nor may "Apache" appear in their name, without prior
+written permission of the Apache Software Foundation.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+LICENSE TERMS FOR SUN MICROSYSTEMS, INC. PROGRAMS THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE SOFTWARE THAT IS SUN
+MICROSYSTEMS, INC. SOFTWARE AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY OTHER PRODUCTS TERMS
+ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+I.	Binary Code License Agreement for JavaTM Secure Socket Extensions ("JSSE") (including jsse, jcert and jnet) and JavaMailTM
+1.2 ("JavaMail") (mail)
+
+1. LICENSE TO USE. Sun grants you a non-exclusive and non-transferable license for the internal use only of the JSSE and JavaMail
+software and documentation and any error corrections provided by Sun (collectively "Sun Software"), by the number of users and the
+class of computer hardware for which the corresponding fee has been paid.
+2. RESTRICTIONS. Sun Software is confidential and copyrighted. Title to Sun Software and all associated intellectual property rights is
+retained by Sun and/or its licensors. Except as specifically authorized in any Supplemental License Terms, you may not make copies of
+Sun Software, other than a single copy of Sun Software for archival purposes. Unless enforcement is prohibited by applicable law, you
+may not modify, decompile, or reverse engineer Sun Software. You acknowledge that Sun Software is not designed, licensed or
+intended for use in the design, construction, operation or maintenance of any nuclear facility. Sun disclaims any express or implied
+warranty of fitness for such uses. No right, title or interest in or to any trademark, service mark, logo or trade name of Sun or its
+licensors is granted under this Sun Agreement.
+3. LIMITED WARRANTY. Sun Software is provided "AS IS". Your exclusive remedy and Sun's entire liability under this limited
+warranty will be Sun's refund of the fee paid for Sun Software.
+4. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS SUN AGREEMENT, ALL EXPRESS OR IMPLIED
+CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT
+TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+5. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS
+LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL,
+INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING
+OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SUN SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES. In no event will Sun's liability to you, whether in contract, tort (including negligence), or
+otherwise, exceed the amount paid by you for Sun Software under this Sun Agreement. The foregoing limitations will apply even if the
+above stated warranty fails of its essential purpose.
+6. Termination. This Sun Agreement is effective until terminated. You may terminate this Sun Agreement at any time by destroying all
+copies of Sun Software. This Sun Agreement will terminate immediately without notice from Sun if you fail to comply with any
+provision of this Sun Agreement. Upon Termination, you must destroy all copies of Sun Software.
+7. Export Regulations. All Sun Software and technical data delivered under this Sun Agreement are subject to US export control laws
+and may be subject to export or import regulations in other countries. You agree to comply strictly with all such laws and regulations
+and acknowledge that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery
+to you.
+8. U.S. Government Restricted Rights. If Sun Software is being acquired by or on behalf of the U.S. Government or by a U.S.
+Government prime contractor or subcontractor (at any tier), then the Government's rights in Sun Software and accompanying
+documentation will be only as set forth in this Sun Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for
+Department of Defense (DOD) acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+9. Governing Law. Any action related to this Sun Agreement will be governed by California law and controlling U.S. federal law. No
+choice of law rules of any jurisdiction will apply.
+10. Severability. If any provision of this Sun Agreement is held to be unenforceable, this Sun Agreement will remain in effect with the
+provision omitted, unless omission would frustrate the intent of the parties, in which case this Sun Agreement will immediately
+terminate.
+11. Integration. This Sun Agreement is the entire agreement between you and Sun relating to its subject matter. It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or
+additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during
+the term of this Sun Agreement. No modification of this Sun Agreement will be binding, unless in writing and signed by an authorized
+representative of each party. For inquiries please contact: Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303
+
+II.	JAVATM DEVELOPMENT OPTIONAL PACKAGES JSSE,VERSION 1.0.2 SUPPLEMENTAL LICENSE TERMS
+These supplemental license terms ("JSSE Supplement") add to or modify the terms of the Sun Agreement (collectively, the "JSSE
+Agreement") solely for the JSSE Software. Capitalized terms not defined in this Supplement shall have the same meanings ascribed to
+them in the Sun Agreement. These Supplement terms shall supersede any inconsistent or conflicting terms in the Sun Agreement, or in
+any license contained within the JSSE Software.
+1. License to Distribute. Sun grants you a non-exclusive, non-transferable, royalty-free, limited license to (a) use the binary form of the
+JSSE Software for the sole purpose of designing, developing and testing your JavaTM applets and applications intended to run on a
+compatible Java environment (the "Programs"), provided that the Programs add significant and primary functionality to the JSSE
+Software, and (b) reproduce and distribute the binary form of the JSSE Software through multiple tiers of distribution provided that you:
+(i) distribute the JSSE Software complete and unmodified; (ii) do not distribute additional software intended to supersede any
+component(s) of the JSSE Software; (iii) do not remove or alter any proprietary legends or notices contained in or on the JSSE Software;
+and (iv) only distribute the JSSE Software pursuant to a license agreement that protects Sun's interests consistent with the terms
+contained in this Agreement, and provides that Sun is a third party beneficiary to such license agreement. If you distribute the JSSE
+Software pursuant to this paragraph, you must include the following statement as part of product documentation (whether hard copy or
+electronic), as a part of a copyright page or proprietary rights notice page, in an "About" box or in any other form reasonably designed to
+make the statement visible to users of the JSSE Software: "This product includes code licensed from RSA Data Security".
+2. Requirements. In exchange for the licenses granted in Paragraph II.1 above, you agree: a. not to create, or authorize your licensees to
+create, additional classes, interfaces or subpackages that are contained in the "java," "javax" or "sun" packages, or similarly named
+package, as specified by Sun in any naming convention; b. that, in the event that you create an API(s) which: (i) extends the
+functionality of a Java platform; and (ii) is distributed to third party software developers for the purpose of developing software which
+invokes such additional API, you must promptly and broadly publish an accurate specification for such API for free use by all
+developers; and c. to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts
+and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or
+results from the use or distribution of any and all Programs and/or JSSE Software.
+3. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the Java trademark and all Java-related
+trademarks, service marks, logos and other brand designations including the Coffee Cup logo and Duke logo ("Java Marks"), and you
+agree to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks.
+Any use you make of the Java Marks inures to Sun's benefit.
+4. Source Code. JSSE Software may contain source code that is provided solely for reference purposes pursuant to the terms of this
+JSSE Agreement.
+
+III.		JAVAMAIL, VERSION 1.2 SUPPLEMENTAL LICENSE TERMS
+These supplemental license terms ("JavaMail Supplemental Terms") add to or modify the terms of the Sun Agreement solely for the
+JavaMail software (collectively, the " JavaMail Agreement"). Capitalized terms not defined in these JavaMail Supplemental Terms shall
+have the same meanings ascribed to them in the Sun Agreement. These JavaMail Supplemental Terms shall supersede any inconsistent
+or conflicting terms in the Agreement, or in any license contained within the JavaMail Software.
+1. JavaMail Software Internal Use and Development License Grant. Subject to the terms and conditions of this JavaMail
+Agreement, including, but not limited to Section 3 (JavaTM Technology Restrictions) of these JavaMail Supplemental Terms, Sun grants
+you a non-exclusive, non-transferable, limited license to reproduce internally and use internally the binary form of the JavaMail
+Software, complete and unmodified, for the sole purpose of designing, developing and testing your Java applets and applications
+("Programs").
+2. License to Distribute JavaMail Software. Subject to the terms and conditions of this Agreement, including, but not limited to
+Section 3 (Java TM Technology Restrictions) of these JavaMail Supplemental Terms, Sun grants you a non-exclusive, non-transferable,
+limited license to reproduce and distribute the JavaMail Software in binary code form only, provided that (i) you distribute the JavaMail
+Software complete and unmodified and only bundled as part of, and for the sole purpose of running, your Java applets or applications
+("Programs"), (ii) the Programs add significant and primary functionality to the JavaMail Software, (iii) you do not distribute additional
+software intended to replace any component(s) of the JavaMail Software, (iv) you do not remove or alter any proprietary legends or
+notices contained in the JavaMail Software, (v) you only distribute the JavaMail Software subject to a license agreement that protects
+Sun's interests consistent with the terms contained in this JavaMail Agreement, and (vi) you agree to defend and indemnify Sun and its
+licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in
+connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs
+and/or JavaMail Software.
+3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the
+"java" package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the
+addition to or modification of the classes in the JPI. In the event that you create an additional class and associated API(s) which (i)
+extends the functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing
+additional software which invokes such additional API, you must promptly publish broadly an accurate specification for such API for
+free use by all developers. You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that
+are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.
+4. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI,
+FORTE, STAROFFICE, STARPORTAL and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE,
+STARPORTAL and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to
+comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use
+you make of the Sun Marks inures to Sun's benefit.
+5. Source Code. JavaMail Software may contain source code that is provided solely for reference purposes pursuant to the terms of this
+JavaMail Agreement. Source code may not be redistributed unless expressly provided for in this JavaMail Agreement.
+6. Termination for Infringement. Either party may terminate this JavaMail Agreement immediately should any JavaMail Software
+become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right.
+For inquiries please contact: Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303
+
+ IV.  Binary Code License Agreement for Java � API for SML Processing (jaxp) Sun Microsystems, Inc.
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes.  Unless enforcement is prohibited by applicable law, you may not modify, decompile,
+or reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.   U.S. Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+V.  Supplemental License Terms for Java � API for XML Parsing (jaxp), Version 1.1
+
+These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively,
+the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the
+Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained
+within the Software.
+
+1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to
+Section 3 (Java(TM) Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited
+license to reproduce internally and use internally the binary form of the Software, complete and unmodified, for the sole purpose of
+designing, developing and testing your Java applets and applications ("Programs").
+
+2. License to Distribute Software.  In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of
+these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to Section 3 (Java Technology
+Restrictions), Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the Software in binary form,
+provided that you (i) distribute the Software complete and unmodified and only bundled as part of your Programs, (ii) do not distribute
+additional software intended to replace any component(s) of the Software, (iii) do not remove or alter any proprietary legends or notices
+contained in the Software, (iv) only distribute the Software subject to a license agreement that protects Sun's interests consistent with the
+terms contained in this Agreement, and (v) agree to defend and indemnify Sun and its licensors from and against any damages, costs,
+liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any
+third party that arises or results from the use or distribution of any and all Programs and/or Software.
+
+3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java"
+package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or
+modification of the classes in the JPI.  In the event that you create an additional class and associated API(s) which (i) extends the
+functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software
+which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers.
+You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that are in any way identified as
+"java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.
+
+4. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE,
+STAROFFICE, STARPORTAL and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE, STARPORTAL
+and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to comply with the Sun
+Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks
+inures to Sun's benefit.
+
+5. Source Code. Software may contain source code that is provided for reference purposes pursuant to the terms of this Agreement. Source
+code may not be redistributed unless expressly provided for in this Agreement. Portions of this download are governed by the Apache Source
+Code License and are identified in the Readme file. A copy of the Apache License is supplied with the Apache Source Code.
+
+6. Termination for Infringement.  Either party may terminate this Agreement immediately should any Software become, or in either party's
+opinion be likely to become, the subject of a claim of infringement of any intellectual property right.
+
+For inquiries please contact: Sun Microsystems, Inc.  901 San Antonio Road, Palo Alto, California 94303
+(Form last modified 11-03-2000.)
+
+VI.  Binary Code License Agreement for Java � Authentication and Activation Service (jaas)
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted.  Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or
+reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3.  LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the  foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at
+Sun's option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+7.  Export Regulations.  All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.  U.S.  Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S.  Government or by a U.S.  Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) ac- quisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability.  If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+For inquiries please contact:  Sun Microsystems,
+Inc.  901 San Antonio Road, Palo Alto, California
+94303
+
+VII.  Supplemental License for Java � Authentication and Authorization Service (jaas)
+SUPPLEMENTAL LICENSE TERMS
+
+
+These supplemental license terms ("Supplement") add to or modify the terms of the Binary Code License Agreement (collectively, the
+"Agreement"). Capitalized terms not defined in this Supplement shall have the same meanings ascribed to them in the Agreement.  These
+Supplement terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained within the Software.
+
+1.  License to Distribute.  Subject to the terms and conditions of this Agreement, including but not limited to Section 2 (Requirements), Sun
+grants you a non-exclusive, non-transferable, royalty-free, limited license to (a) use the binary form of the Software for the sole purpose
+of designing, developing and testing your JavaTM applets and applications intended to run on a compatible Java environment (the
+"Programs"), and (b) reproduce and distribute the binary form of the Software provided that you:  (i) distribute the Software complete and
+unmodified and only bundled as part of the Programs; (ii) do not distribute additional software intended to supersede any component(s) of the
+Software; (iii) do not remove or alter any proprietary legends or notices contained in or on the Software; and (iv) only distribute the Software
+pursuant to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement.
+
+2.  Requirements.  In exchange for the licenses granted in Paragraph 1 above, you agree:
+
+a.  not to create, or authorize your licensees to create, additional classes, interfaces or subpackages that are contained in the "java," "javax" or
+"sun" packages, or similarly named package, as specified by Sun in any naming convention;
+
+b.  that, in the event that you create an API(s) which:  (i) extends the functionality of a Java platform; and (ii) is distributed to third party
+software developers for the purpose of developing software which invokes such additional API, you must promptly and broadly publish an
+accurate specification for such API for free use by all developers; and
+
+c.  to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses
+(including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or
+distribution of any and all Programs and/or Software.
+
+3.  Trademarks and Logos.  You acknowledge and agree as between you and Sun that Sun owns the Java trademark and all Java-related
+trademarks, service marks, logos and other brand designations including the Coffee Cup logo and Duke logo ("Java Marks"), and you agree
+to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks.
+Any use you make of the Java Marks inures to Sun's benefit.
+
+4.  Source Code.  Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement.
+
+
+VIII.  Binary Code License Agreement Terms for JavaHelp� 1.1.2_01 (including jhall)
+
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes.  Unless enforcement is prohibited by applicable law, you may not modify, decompile,
+or reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+
+7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.   U.S. Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+IX.  Supplemental License Terms for JavaHelp� 1.1.2_01 (including jhall)
+
+These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively,
+the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the
+Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained
+within the Software.
+
+1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to
+Section 3 (Java(TM) Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited
+license to reproduce internally and use internally the binary form of the Software complete and unmodified for the sole purpose of designing,
+developing and testing your Java applets and applications intended to run on the Java platform ("Programs").
+").
+
+2. License to Distribute Redistributables.  In addition to the license granted in Section 1 (Software Internal Use and Development License
+Grant) of these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to Section 3 (Java
+Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce and
+distribute those files specifically identified as redistributable in the Software "README" file ("Redistributables") provided that: (i) you
+distribute the Redistributables complete and unmodified (unless otherwise specified in the applicable README file), and only bundled as
+part of your Programs, (ii) you do not distribute additional software intended to supersede any component(s) of the Redistributables, (iii) you
+do not remove or alter any proprietary legends or notices contained in or on the Redistributables, (iv) you only distribute the Redistributables
+pursuant to a license agreement that protects Sun's interests consistent with the terms contained in the Agreement, and (v) you agree to
+defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including
+attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of
+any and all Programs and/or Software.
+
+3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java"
+package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or
+modification of the classes in the JPI.  In the event that you create an additional class and associated API(s) which (i) extends the
+functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software
+which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers.
+You may not create, or authorize your licensees to create, additional classes, interfaces, or subpackages that are in any way identified as
+"java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.
+
+4.  Java Runtime Availability.  Refer to the appropriate version of the Java Runtime Environment binary code license (currently located at
+http://www.java.sun.com/jdk/index.html) for the availability of runtime code which may be distributed with Java applets and applications.
+
+5. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE,
+and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET-related trademarks, service marks, logos and other
+brand designations ("Sun Marks"), and you agree to comply with the Sun Trademark and Logo Usage Requirements currently located at
+http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks inures to Sun's benefit.
+
+6. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement.
+Source code may not be redistributed unless expressly provided for in this Agreement.
+
+7.  Termination for Infringement.  Either party may terminate this Agreement immediately should any Software become, or in either party's
+opinion be likely to become, the subject of a claim of infringement of any intellectual property right.
+
+
+
+For inquiries please contact: Sun Microsystems, Inc.  901 San Antonio Road, Palo Alto, California 94303
+(LFI#90701/Form ID#011801)
+
+X.	Binary Code License Agreement for JavaBeans � Activation Framework 1.0.1 (activation)
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes.  Unless enforcement is prohibited by applicable law, you may not modify, decompile,
+or reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.   U.S. Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+XI.  Supplemental License Terms for JavaBeans � Activation Framework, Version 1.0.1 (activation)
+
+These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively,
+the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the
+Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained
+within the Software.
+
+1. Software Internal Use and Development License Grant.  Subject to the terms and conditions of this Agreement, including, but not limited
+to Section 3 (Java(TM) Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited
+license to reproduce internally and use internally the binary form of the Software, complete and unmodified, for the sole purpose of
+designing, developing and testing your Java applets and applications ("Programs").
+
+2. License to Distribute Software.  In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of
+these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to, Section 3 (Java Technology
+Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the
+Software in binary code form only, provided that you (i) distribute the Software complete and unmodified and only bundled as part of your
+Programs, (ii) do not distribute additional software intended to replace any component(s) of the Software, (iii) do not remove or alter any
+proprietary legends or notices contained in the Software, (iv) only distribute the Software subject to a license agreement that protects Sun's
+interests consistent with the terms contained in this Agreement, and (v) agree to defend and indemnify Sun and its licensors from and against
+any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit
+or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software.
+
+3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java"
+package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or
+modification of the classes in the JPI.  In the event that you create an additional class and associated API(s) which (i) extends the
+functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software
+which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers.
+You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that are in any way identified as
+"java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.
+
+4. No Support. Sun is under no obligation to support the Software or to provide you with updates or error corrections. You acknowledge that
+the Software may have defects or deficiencies which cannot or will not be corrected by Sun.
+
+5. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE,
+and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET-related trademarks, service marks, logos and other
+brand designations ("Sun Marks"), and you agree to comply with the Sun Trademark and Logo Usage Requirements currently located at
+http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks inures to Sun's benefit.
+
+6. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement.
+Source code may not be redistributed unless expressly provided for in this Agreement.
+
+7. Termination for Infringement.  Either party may terminate this Agreement immediately should any Software become, or in either party's
+opinion be likely to become, the subject of a claim of infringement of any intellectual property right.
+
+For inquiries please contact: Sun Microsystems, Inc.  901 San Antonio Road, Palo Alto, California 94303
+(LFI#90622/Form ID#011801)
+
+XII.  Binary Code License Agreement for Java � Cryptography Extension (jce)
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and  non-transferable license for the internal use only of the
+accompanying software and documentation and any error corrections provided by Sun (collectively "Software"), by
+the number of users and the class of computer hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes.  Unless enforcement is prohibited by applicable law, you may not modify, decompile,
+or reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+7.  Export Regulations.  All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.  U.S. Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+For inquiries please contact: Sun Microsystems, Inc.  901
+San Antonio Road, Palo Alto, California 94303
+
+XII.  Supplemental License Terms for Java(TM) Development Optional Packages Java (TM) Cryptography Extension, Version 1.2.1
+(jce)
+
+SUPPLEMENTAL LICENSE TERMS
+
+These supplemental license terms ("Supplement") add to or modify the terms of the Binary Code License Agreement (collectively, the
+"Agreement"). Capitalized terms not defined in this Supplement shall have the same meanings ascribed to them in the Agreement. These
+Supplement terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained within the Software.
+
+1. License to Distribute. Sun grants to you a non-exclusive, non-transferable, royalty-free, limited license to (a) use the binary form of the
+Software for the sole purpose of designing, developing and testing your Java(TM) applets and applications intended to run on a compatible
+Java environment (the "Programs"), provided that the Programs add significant and primary functionality to the Software, and (b) reproduce
+and distribute the binary form of the Software provided that you: (i) distribute the Software complete and unmodified; (ii) do not distribute
+additional software intended to supersede any component(s) of the Software; (iii) do not remove or alter any proprietary legends or notices
+contained in or on the Software; and (iv) only distribute the Software pursuant to a license agreement that protects Sun's interests
+consistent with the terms contained in this Agreement, and provides that Sun is a third party beneficiary to such license agreement.
+
+2. Requirements. In exchange for the licenses granted in Paragraph 1 above, you agree:
+
+a. not to create, or authorize your licensees to create, additional classes, interfaces or subpackages that are contained in the "java," "javax" or
+"sun" packages, or similarly named package, as specified by Sun in any naming convention;
+
+b. that, in the event that you create an API(s) which: (i) extends the functionality of a Java platform; and (ii) is distributed to third party
+software developers for the purpose of developing software which invokes such additional API, you must promptly and broadly publish an
+accurate specification for such API for free use by all developers; and
+
+c. to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses
+(including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or
+distribution of any and all Programs and/or Software.
+
+3. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the Java trademark and all Java-related
+trademarks, service marks, logos and other brand designations including the Coffee Cup logo and Duke logo ("Java Marks"), and you agree
+to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you
+make of the Java Marks inures to Sun's benefit.
+
+4. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement.
+
+XIV.  Binary Code License Agreement for Java(TM) Servlet API Class Files 2.2b (servlet)
+
+
+1. LICENSE TO USE. Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+
+
+2. RESTRICTIONS Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors. Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or
+reverse engineer Software. You acknowledge that Software is not designed, licensed or intended for use in the design, construction, operation
+or maintenance of any nuclear facility. Sun disclaims any express or implied warranty of fitness for such uses. No right, title or interest in or
+to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+
+
+3. LIMITED WARRANTY. Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use. Except
+for the foregoing, Software is provided "AS IS". Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+
+
+4. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+
+
+5. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES. In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement. The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+
+
+6. Termination. This Agreement is effective until terminated. You may terminate this Agreement at any time by destroying all copies of
+Software. This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+
+
+7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries. You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+
+
+8. U.S. Government Restricted Rights. If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime
+contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set forth
+in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions) and
+with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+
+
+9. Governing Law. Any action related to this Agreement will be governed by California law and controlling U.S. federal law. No choice of
+law rules of any jurisdiction will apply.
+
+
+
+10. Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+
+
+11. Integration. This Agreement is the entire agreement between you and Sun relating to its subject matter. It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+
+
+For inquiries please contact: Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303
+
+XV.  Supplemental License Terms for Java(TM) Servlet API Class Files 2.2b (servlet)
+These supplemental license terms ("Supplement") add to or modify the terms of the Binary Code License Agreement (collectively, the
+"Agreement"). Capitalized terms not defined in this Supplement shall have the same meanings ascribed to them in the Agreement. These
+Supplement terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained within the Software.
+
+
+
+1. License to Develop. Subject to the terms and conditions of this Agreement, including but not limited to the terms and conditions contained
+in this Supplement, Sun grants you a non-exclusive, non-transferable, limited license to reproduce and use internally the binary form of the
+Software for the purpose of designing, developing and testing your JavaTM applets and applications intended to run on a compatible Java
+platform (the "Program(s)").
+
+
+
+2. License to Distribute. Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the binary code form of
+the Software to third party end users, through multiple tiers of distribution, provided that you: (i) distribute the Software complete and
+unmodified in its original Java Archive file, and only bundled as a part of your Program that incorporates the Software; (ii) do not distribute
+additional software intended to replace any component(s) of the Software; (iii) do not remove or alter any proprietary legends or notices
+contained in or on the Software; (iv) only distribute the Program pursuant to a license agreement that protects Sun's interest consistent with
+the terms contained in the Agreement and provided that Sun is a third party beneficiary to such license agreement; (v) do not create, or
+authorize your licensees to create, additional classes, interfaces, or subpackages that are contained in the "java", "javax" or "sun" packages or
+similar packages as specified by Sun in any naming convention; and (vi) agree to defend and indemnify Sun and its licensors from and
+against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim,
+lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs.
+
+
+
+3. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the Java trademark and all Java-related
+trademarks, service marks, logos and other brand designations including the Coffee Cup logo and Duke logo ("Java Marks"), and you agree
+to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you
+make of the Java Marks inures to Sun's benefit.
+
+
+XVI.  Sun Community Source License for JMX Instrumentation Reference Implementation 1.0 (jmxri)
+SUN COMMUNITY SOURCE LICENSE
+
+I.  DEFINITIONS.
+
+"Community Code" means Reference Code, Contributed Code, and any combination thereof.
+
+"Community Member" means You, Original Contributor and any other party that has entered into and has in effect a version of this License
+"(or who is similarly authorized and obligated by Sun)" for the Technology with Original Contributor.
+
+"Contributed Code" means Error Corrections, Shared Modifications and any other code other than Reference Code made available to all
+Community Members in accordance with this License.
+
+"Contributed Code Specifications" means the functional, interface and operational specifications and documentation for Contributed Code.
+
+"Contributor" means any Community Member who makes available Contributed Code.
+
+"Covered Code" means any and all code (including Modifications) implementing all or any portion of the Technology Specifications.
+
+"Error Correction(s)" mean Modifications which correct any failure of Community Code to conform to any aspect of the Technology
+Specifications.
+
+"Interfaces" means classes or other programming code or specifications designed for use with the Technology comprising a means or link for
+invoking functionality, operations or protocols and which are additional to or extend the interfaces designated in the Technology
+Specifications.
+
+"Modifications" means any (i) change or addition to Covered Code, or (ii) new source or object code implementing any portion of the
+Technology Specifications, but (iii) excluding any incorporated Reference Code.
+
+"Original Contributor" means Sun Microsystems, Inc., its affiliates, successors and assigns.
+
+"Reference Code" means source code for the Technology designated by Original Contributor at the Technology Site from time to time.
+
+"Research Use" means research, evaluation, development, educational or personal and individual use, excluding use or distribution for direct
+or indirect commercial (including strategic) gain or advantage.
+
+"Shared Modifications" means those Modifications which Community Members elect to share with other Community Members.
+
+"Technology Specifications" means the functional, interface and operational specifications and documentation for the Technology designated
+by Original Contributor at the Technology Site from time to time.
+
+"Technology" means the technology described in and contemplated by the Technology Specifications and which You have received pursuant
+to this License.
+
+"Technology Site" means the website designated by Original Contributor for accessing Community Code and Technology Specifications.
+
+"You" means the individual executing this license or the legal entity or entities represented by the individual executing this license.  "Your" is
+the possessive of "You."
+
+II.  PURPOSE.
+
+Original Contributor is licensing the Reference Code and Technology Specifications and is permitting implementation of Technology under
+and subject to this Sun Community Source License (the "License") to promote research, education, innovation and product development
+using the Technology.
+
+COMMERCIAL USE AND DISTRIBUTION OF TECHNOLOGY IS PERMITTEDONLY UNDER OPTIONAL SUPPLEMENTS TO
+THIS LICENSE.
+
+III.  RESEARCH USE RIGHTS.
+
+A.  From Original Contributor.  Subject to and conditioned upon Your full compliance with the terms and conditions of this License,
+including Sections IV (Restrictions and Community Responsibilities) and V.E.7 (International Use), Original Contributor:
+
+1.  grants to You a non-exclusive, worldwide and royalty-free license to the extent of Original Contributor's copyrights and trade secret rights
+in and covering the Reference Code and Technology Specifications to do the following for Your Research Use only:  a) Reproduce, prepare
+derivative works of, display and perform the Reference Code, in whole or in part, alone or as part of Covered Code; b) Reproduce, prepare
+derivative works of and display the Technology Specifications; c) Distribute source or object code copies of Reference Code, in whole or in
+part, alone or as part Covered Code, to other Community Members or to students; and d) Distribute object code copies of Reference
+Code, in whole or in part, alone or as part of Covered Code to third parties.
+
+2.  will not, during the term of Your License, bring against You any claim alleging that Your using, making, having made, importing or
+distributing Community Code for Your Research Use, insofar as permitted under Section III.A.1 of this License, necessarily infringes any
+patent now owned or hereafter acquired by Original Contributor whose claims cover subject matter contained in or embodied by the
+Reference Code or which would necessarily be infringed by the use or distribution of any and all implementations of the Technology
+Specifications.
+
+3.  grants to You a non-exclusive, worldwide and royalty-free license, to the extent of its intellectual property rights therein, to use (a)
+Original Contributor's class, interface and package names only insofar as necessary to accurately reference or invoke Your Modifications for
+Research Use, and (b) any associated software tools, documents and information provided by Original Contributor at the Technology Site for
+use in exercising the above license rights.
+
+B.  Contributed Code.  Subject to and conditioned upon compliance with the terms and conditions of this License, including Sections IV
+(Restrictions and Community Responsibilities) and V.E.7 (International Use), each Contributor:
+
+1.  grants to each Community Member a non-exclusive, worldwide and royalty-free license to the extent of such Contributor's copyrights
+[and trade secret rights?]  in and covering its Contributed Code, to reproduce, modify, display and distribute Contributed Code, in whole or in
+part, in source code and object code form, to the same extent as permitted under such Community Member's License with Original
+Contributor (including all supplements thereto).
+
+2.  will not, during the term of the Community Member's  License, bring against any Community Member any claim alleging that using,
+making, having made, importing or distributing Contributed Code as permitted under this License (including any supplements) infringes any
+patents or patent applications now owned or hereafter acquired by such Contributor which patents or patent applications are infringed by
+using, making, having made, selling, offering for sale, importing or otherwise transferring the Contributed Code ("Contributor Patents").
+This covenant shall apply to the combination of the Contributed Code with other Covered Code if, at the time the Contributed Code is
+posted by Contributor, such addition of the Contributed Code causes such combination to be covered by the Contributor Patents.  The
+covenant shall not apply to any other combinations which include the Contributed Code or to the use or distribution of modified Contributed
+Code where the modifications made by the Community Member add to the functions performed by the Contributed Code in question and
+where, in the absence of such modifications, there would be no infringement of a Contributor Patent.
+
+3.  grants to Original Contributor, in addition to the rights set forth in Sections III.B.1 and III.B.2, the right to sublicense all such rights in
+Contributed Code, in whole or in part, as part of Reference Code or other technologies based in whole or in part on Reference Code or
+Technology and to copy, distribute, modify and prepare derivative works of Contributed Code Specifications, in whole or in part, in
+connection with the exercise of such rights.
+
+C.  Subcontracting.  You may provide Covered Code to a contractor for the sole purpose of providing development services exclusively to
+You consistent with Your rights under this License.  Such Contractor must be a Community Member or have executed an agreement with
+You that is consistent with Your rights and obligations under this License and that assigns exclusive rights in work product to You.  You
+agree that such work product is to be treated as Covered Code.
+
+D.  No Implied Licenses.  Neither party is granted any right or license other than the licenses and covenants expressly set out herein.  Other
+than the licenses and covenants expressly set out herein, Original Contributor retains all right, title and interest in Reference Code and
+Technology Specifications and You retain all right, title and interest in Your Modifications and associated specifications.  Except as
+expressly permitted herein, You may not otherwise use any package, class or interface naming conventions that appear to originate from
+Original Contributor.
+
+IV.  RESTRICTIONS AND COMMUNITY RESPONSIBILITIES.
+
+As a condition to Your license and other rights and immunities, You must comply with the restrictions and responsibilities set forth below, as
+modified or supplemented, if at all, in Attachment B, Additional Research Use Terms and Conditions.
+
+A.  Source Code Availability.  You must provide source code and any specifications for Your Error Corrections to Original Contributor as
+soon as practicable.  You may provide other Contributed Code to Original Contributor at any time, in Your discretion.  Original Contributor
+may, in its discretion, post Your Contributed Code and Contributed Code Specifications on the Technology Site.  You may post Your
+Contributed Code and/or Contributed Code Specifications on another website of Your choice; provided, source code of Community Code and
+Technology Specifications may be provided to Community Members only and only following certification of Community Member status as
+required under Section IV.D.
+
+B.  Notices.  You must reproduce without alteration copyright and other proprietary notices in any Covered Code that You distribute.  The
+statement Use and Distribution is subject to the Sun Community Source License available at http://sun.com/software/communitysource must
+appear prominently in Your Modifications and, in all cases, in the same file as all Your copyright and other proprietary notices.
+
+C.  Modifications.  You must include a diff file with Your Contributed Code that identifies and details the changes or additions You made,
+the version of Reference Code or Contributed Code You used and the date of such changes or additions.  In addition, You must provide any
+Contributed Code Specifications for Your Contributed Code.  Your Modifications are Covered Code and You expressly agree that
+use and distribution, in whole or in part, of Your Modifications shall only be done in accordance with and subject to this License.
+
+D.  Distribution Requirements.  You may distribute object code of Covered Code to third parties for Research Use only pursuant to a license
+of Your choice which is consistent with this License.  You may distribute source code of Covered Code and the Technology Specifications
+for Research Use only to (i) Community Members from whom You have first obtained a certification of status in the form set forth in
+Attachment A-1, and (ii) students from whom You have first obtained an executed acknowledgment in the form set forth in Attachment A-2.
+You must keep a copy of each such certificate and acknowledgment You obtain and provide a copy to Original Contributor, if requested.  E.
+Extensions.
+
+1.  You may create and add Interfaces but, unless expressly permitted at the Technology Site, You may not incorporate any Reference Code
+in Your Interfaces.  If You choose to disclose or permit disclosure of Your Interfaces to even a single third party for the purposes of enabling
+such third party to independently develop and distribute (directly or indirectly) technology which invokes such Interfaces, You
+must then make the Interfaces open by (a) promptly following completion thereof, publishing to the industry, on a non-confidential basis and
+free of all copyright restrictions, a reasonably detailed, current and accurate specification for the Interfaces, and (b) as soon as reasonably
+possible, but in no event more than thirty (30) days following publication of Your specification, making available on reasonable terms and
+without discrimination, a reasonably complete and practicable test suite and methodology adequate to create and test implementations of
+the Interfaces by a reasonably skilled technologist.
+
+2.  You shall not assert any intellectual property rights You may have covering Your Interfaces which would necessarily be infringed by the
+creation, use or distribution of all reasonable independent implementations of Your specification of such Interfaces by a Community
+Member or Original Contributor.  Nothing herein is intended  to prevent You from enforcing any of Your intellectual property rights
+covering Your specific implementation of Your Interfaces or functionality using such Interfaces other than as specifically set forth in this
+Section IV.E.2.
+
+V.  GOVERNANCE.
+
+A.  License Versions.
+
+Only Original Contributor may promulgate new versions of this License.  Once You have accepted Reference Code, Technology
+Specifications, Contributed Code and/or Contributed Code Specifications under a version of this License, You may always continue to use
+such version of Reference Code, Technology Specifications, Contributed Code and/or Contributed Code Specifications under that version of
+the License.  New code and specifications which You may subsequently choose to accept will be subject to any new License in effect at the
+time of Your acceptance of such code and specifications.
+
+B.  Disclaimer Of Warranties.
+
+1.  COVERED CODE AND ALL TECHNOLOGY SPECIFICATIONS AND CONTRIBUTED CODESPECIFICATIONS ARE
+PROVIDED AS IS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT ANY COVERED CODE OR SPECIFICATIONS ARE FREE OF DEFECTS, MERCHANTABLE,
+FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING OF THIRD PARTY RIGHTS. YOU AGREE THAT YOU BEAR THE
+ENTIRE RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF ANY AND ALL COVERED CODE OR
+TECHNOLOGY SPECIFICATIONS OR CONTRIBUTED CODE SPECIFICATIONS UNDER THIS LICENSE.  NO USE OF ANY
+COVERED CODE OR TECHNOLOGY SPECIFICATIONS OR CONTRIBUTED CODE SPECIFICATIONS IS AUTHORIZED EXCEPT
+SUBJECT TO AND IN CONSIDERATION FOR THIS DISCLAIMER.
+
+2.  You understand that, although each Community Member grants the licenses set forth in the License and this Supplement, no assurances
+are provided by any Community Member that Covered Code or any specifications do not infringe the intellectual property rights of any third
+party.
+
+3.  You acknowledge that Reference Code and Technology Specifications are neither designed nor intended for use in the design,
+construction, operation or maintenance of any nuclear facility.
+
+C.  Limitation Of Liability.
+
+1.  Infringement.  Each Community Member disclaims any liability to all other Community Members for claims brought
+by any third party based on infringement of intellectual property rights.  Original Contributor represents that, to its knowledge, it has
+sufficient copyrights to allow You to use and distribute the Reference Code as herein permitted (including as permitted in any Supplement
+hereto) and You represent that, to Your knowledge, You have sufficient copyrights to allow each Community Member and Original
+Contributor to use and distribute Your Shared Modifications and Error Corrections as contemplated herein permitted (including as permitted
+in any Supplements to the License). You agree to notify Original Contributor should You become aware of any potential or actual
+infringement of the Technology or any of Original Contributors intellectual property rights in the Technology, Reference Code or
+Technology Specifications.
+
+2.  Suspension.  If any portion of, or functionality implemented by, the Reference Code, Technology or Technology Specifications becomes
+the subject of a claim or threatened claim of infringement ("Affected Materials"), Original Contributor may, in its unrestricted discretion,
+suspend Your rights to use and distribute the Affected Materials under this License.  Such suspension of rights will be effective immediately
+upon Original Contributor's posting of notice of suspension on the Technology Site.  Original Contributor has no obligation to lift the
+suspension of rights relative to the Affected Materials until a final, non-appealable determination is made by a court or governmental agency
+of competent jurisdiction that Original Contributor is legally able, without the payment of a fee or royalty, to reinstate Your rights to the
+Affected Materials to the full extent contemplated hereunder.  Upon such determination, Original Contributor will lift the suspension
+by posting a notice to such effect on the Technology Site. Nothing herein shall be construed to prevent You, at Your option and expense, and
+subject to applicable law and the restrictions and responsibilities set forth in this License and any Supplements, from replacing Reference
+Code in Affected Materials with non-infringing code or independently negotiating, without compromising or prejudicing Original
+Contributors position, to obtain the rights necessary to use Affected Materials as herein permitted.
+
+3.  Disclaimer.  ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR ALL CLAIMS RELATING TO THIS LICENSE OR ANY
+SUPPLEMENT HERETO, WHETHER FOR BREACH OR TORT, IS LIMITED TO THE GREATER OF ONE THOUSAND DOLLARS
+(US$1000.00) OR THE FULL AMOUNT PAID BY YOU FOR THE MATERIALS GIVING RISE TO THE CLAIM, IF ANY.  IN NO
+EVENT WILL ORIGINAL CONTRIBUTOR BE LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING OUT OF THIS LICENSE (INCLUDING, WITHOUT
+LIMITATION, LOSS OF PROFITS, USE, DATA OR ECONOMIC ADVANTAGE OF ANY SORT), HOWEVER IT ARISES AND ON
+ANY THEORY OF LIABILITY WHETHER OR NOT ORIGINAL CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE AND NOTWITHSTANDING FAILURE OF THE ESSENTIAL PURPOSE OF ANY REMEDY.
+
+D.  Termination.
+
+You may terminate this License at any time by notifying Original Contributor in writing.
+
+All Your rights will terminate under this License if You fail to comply with any of the material terms or conditions of this License and do not
+cure such failure in a reasonable period of time after becoming aware of such noncompliance.
+
+If You institute patent litigation against a Community Member with respect to a patent applicable to Community Code, then any patent
+licenses or covenants granted by such Community Member to You under this License shall terminate as of the date such litigation is filed.  In
+addition, if You institute patent litigation against any Community Member or Original Contributor alleging that Reference Code,
+Technology or Technology Specifications infringe Your patent(s), then the rights granted to You under Section III.A above will terminate.
+
+Upon termination, You must discontinue all uses and distribution of Community Code, except that You may continue to use, reproduce,
+prepare derivative works of, display and perform Your Modifications, so long as the license grants and covenants of this license are not
+required to do so, for purposes other than to implement functionality designated in any portion of the Technology Specifications.  Properly
+granted sublicenses to third parties will survive termination.  Provisions which, by their nature, should remain in effect following termination
+survive.
+
+E.  Miscellaneous.
+
+1.  Trademark.  You agree to comply with Original Contributors Trademark & Logo Usage Requirements, as modified from time to time,
+available at the Technology Site.  Except as expressly provided in this License, You are granted no rights in or to any Sun, Jini, Jiro or Java
+trademarks now or hereafter used or licensed by Original Contributor (the Sun Trademarks).  You agree not to (a) challenge Original
+Contributors ownership or use of Sun Trademarks; (b) attempt to register any Sun Trademarks, or any mark or logo substantially similar
+thereto; or (c) incorporate any Sun Trademarks into You own trademarks, product names, service marks, company names or domain names.
+
+2.  Integration and Assignment.  Original Contributor may assign this Research Use License to another by written notification to the other
+party.  This License represents the complete agreement of the parties concerning the subject matter hereof.
+
+3.  Severability.  If any provision of this License is held unenforceable, such provision shall be reformed to the extent necessary to make it
+enforceable unless to do so would defeat the intent of the parties.
+
+4.  Governing Law.  This License is governed by the laws of the United States and the State of California, as applied to contracts entered into
+and performed in California between California residents.  The United Nations Convention on Contracts for the International Sale of Goods
+shall not apply.  Nor shall any law or regulation which provides that a contract be construed against the drafter.
+
+5.  Dispute Resolution.  a) Any dispute arising out of or relating to this License shall be finally settled by arbitration as set forth in this
+Section, except that either party may bring an action in a court of competent jurisdiction (which jurisdiction shall be exclusive), relative to
+any dispute relating to such party's  intellectual property rights.  Arbitration will be administered (i) by the American Arbitration Association
+(AAA), (ii) in accordance with the rules of the United Nations Commission on International Trade Law (UNCITRAL) (the Rules) in effect at
+the time of arbitration, modified as set forth herein, and (iii) the arbitrator will apply the governing laws required under Section V.E.4 above.
+Judgment upon the award rendered by the arbitrator may be entered in any court having jurisdiction to enforce such award.  The arbitrator
+may not award damages in excess of or of a different type than those permitted by this License and any such award is void.
+
+b) All proceedings will be in English and conducted by a single arbitrator selected in accordance with the Rules who is fluent in English,
+familiar with technology matters pertinent in the dispute and either a retired judge or practicing attorney having at least ten (10) years
+litigation experience.  Venue for arbitration will be in San Francisco, California, unless the parties agree otherwise. Each party will be
+required to produce documents relied upon in the arbitration and to respond to no more than twenty-five single question interrogatories.  All
+awards are payable in US dollars and may include for the prevailing party (i) pre-judgment interest, (ii) reasonable attorneys
+fees incurred in connection with the arbitration, and (iii) reasonable costs and expenses incurred in enforcing the award.
+
+6.  U.S.  Government.  If this Software is being acquired by or on behalf of the U.S.  Government or by a U.S. Government prime contractor
+or subcontractor (at any tier), then the Government's rights in this Software and accompanying documentation shall be only as set forth in
+this license; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense acquisitions) and with 48 CFR
+2.101 and 12.212 (for non-DoD acquisitions).
+
+7.  International Use.  (a) Covered Code is subject to US export control laws and may be subject to export or import regulations in other
+countries.  Each party shall comply fully with all such laws and regulations and acknowledges its responsibility to obtain such licenses to
+export, re-export or import as may be required.  You must pass through these obligations to all Your licensees.  (b) You may not distribute
+Reference Code or Technology Specifications into countries other than those listed on the Technology Site by Original Contributor, from
+time to time.
+
+IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY,
+YOU REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO
+THE LICENSE.
+
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF OR THAT OF A
+COMPANY, YOU MUST BE OF MAJORITY AGE AND OTHERWISE COMPETENT
+TO ENTER INTO CONTRACTS.
+
+
+ATTACHMENT A-1 COMMUNITY MEMBER CERTIFICATE
+
+You certify that You are a Licensee in good standing under the Sun Community Source License for the ____________ Technology (fill in
+applicable Technology and Version) (License) and that You agree to use and distribute code, documentation and information You may obtain
+pursuant to this certification only in accordance with the terms and subject to the conditions of the License.
+
+Add to the end of the foregoing, as appropriate:
+
+For written documents:
+
+
+Signature:____________________
+
+Printed Name and Title:_____________________
+
+Company _____________________
+
+For web downloads add buttons with the following:
+
+Agreed and Accepted Reject and Exit
+
+ATTACHMENT A-2 STUDENT ACKNOWLEDGEMENT
+
+You acknowledge that this software and related documentation has been obtained by your educational institution subject to the Sun
+Community Source License (the License).  You have been provided with access to the software and documentation for use only in
+connection with your course work as a matriculated student of your educational institution. Commercial use of the software and
+documentation is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIALS OF SUN MICROSYSTEMS, INC.
+PROTECTED BY VARIOUS INTELLECTUAL PROPERTY RIGHTS.  YOUR USE OF THE SOFTWARE AND DOCUMENTATION IS
+LIMITED.
+
+- - - - - - - - - Add to the end of the foregoing, as
+appropriate:
+
+For written documents:
+
+
+Signature:____________________
+
+Printed Name :_____________________
+
+For web downloads add buttons with the following:
+
+Agreed and Accepted Reject and Exit
+
+ATTACHMENT B (ADDITIONAL TERMS/RESPONSIBILITIES):  NONE
+
+- v10.2, 01/25/00 (SH) COMMERCIAL USE SUPPLEMENT TO SUN
+COMMUNITY SOURCE CODE LICENSE GENERAL TERMS
+
+I.  PURPOSE AND EFFECT.
+
+This Commercial Use Supplement General Terms (CUSupp) is required for Commercial Use of Covered Code and, once signed by You and
+Original Contributor, is operative for all Technologies specified in all Technology Specific Attachment(s) hereto.  The rights and
+responsibilities set forth in this CUSupp are additional to those in Your License.
+
+II.  DEFINITIONS.
+
+"Commercial Use" means uses and distributions of Covered Code for any direct or indirect commercial or strategic gain or advantage.
+
+"Compliant Implementation" means Covered Code that fully implements the Technology Specifications and complies with all Test
+Requirements.
+
+"Compliance Materials" means the test programs, guides, documentation and other materials identified in the Technology-Specific
+Attachment(s) for use in establishing that Covered Code is a Compliant Implementation.
+
+"Technology-Specific Attachment(s)" means an attachment or attachments to this CUsupp which contains terms and conditions specific to
+the Technology therein identified as well as the specifics of the Compliance Materials and requirements for such Technology.
+
+III.  COMMERCIAL USE RIGHTS.
+
+A.  Subject to and conditioned upon Your compliance with the terms and conditions of Your Research Use license and the additional terms
+and conditions set forth in this CUSupp and associated Technology-Specific Attachnment(s), including the provisions of Section IV, Original
+Contributor hereby adds to those rights enumerated under Section III.A.1 of the Research Use license the rights to:
+
+e) use the Compliance Materials to determine whether Covered Code constitutes a Compliant Implementation; f) use, reproduce, display,
+perform and distribute internally source and object code copies of Compliant Implementations for Commercial Use; g) reproduce and
+distribute to third parties and Community Members through multiple tiers of distribution object code copies of Compliant Implementations
+for Commercial Use; and h) reproduce and distribute a copy of the Technology Specifications (which may be reformatted, but
+must remain substantively unchanged) with Compliant Implementations for Commercial Use.
+
+B.  In addition, Original Contributors covenant under Section III.A.2 is hereby expanded to include Your using, making, having made,
+selling, importing and distributing Compliant Implementations for Commercial Use insofar as permitted above.
+
+IV.  ADDITIONAL REQUIREMENTS AND COMMUNITY RESPONSIBILITIES.
+
+As a condition to the Commercial Use rights granted above, You must comply with the following restrictions and community responsibilities
+(in addition to those in the License):
+
+F.  Compliance Materials.  Depending on the Technology licensed, Your access to and use of the Compliance Materials may be subject to
+additional requirements such as entering into a support agreement and trademark license.  Such additional requirements, if any, are as set out
+in the Technology-Specific Attachment.  You agree to comply fully with all such applicable requirements.
+
+G.  Compatibility.  Only Compliant Implementations may be used and distributed for Commercial Use.
+
+H.  Commericial Distribution Requirement.  You may distribute object code copies for Commercial Use as herein contemplated under a
+license agreement of Your choice which is consistent with Your rights and obligations under the License and this CUSupp.  You may provide
+warranties, indemnities and/or other additional terms and conditions in Your license agreements, provided that it is clear that such
+additional terms and conditions are offered by You only and You agree to hold each Community Member harmless and indemnify them
+against any liability arising in connection with such terms and conditions.  You will pay all damages, costs and fees awarded by a court or
+arbitrator having jurisdiction over the matter or any settlement amount negotiated by You and attributable to such claim.
+
+I.  Defense.  Original Contributor will have the right, but not the obligation, to defend You, at Original Contributor's expense, in connection
+with a claim that Your Commercial Use of Reference Code is an infringement of a third party's intellectual property rights, in which case
+You agree to cooperate with Original Contributor and Original Contributor will pay all damages costs and fees awarded by a court or
+tribunal of competent jurisdiction, or such settlement amount negotiated by Original Contributor and attributable to such claim.
+
+J.  Notices.  All notices required by the License and this Supplement must be in writing and delivered by means evidenced by delivery receipt
+and will be effective upon receipt at the addresses specified below.
+
+K.  Relationship.  The relationship created is that of licensor and licensee only.  You hereby waive the benefit of any law or regulation
+dealing with the establishment and regulation of franchises or agencies.
+
+Agreed:
+
+You Original Contributor
+
+________________________ Sun Microsystems, Inc.
+
+By:_____________________ By:__________________
+
+Title:__________________ Title:_________________
+
+Date:____________________ Date:________________
+
+
+TECHNOLOGY SPECIFIC ATTACHMENT TO THE SUN COMMUNITY SOURCE
+LICENSE
+
+JMX AGENT VERSION 1.0
+
+
+1.  Effect.  This Technology Specific Attachment to the Commercial Use Supplement applies to the JMX Agent, version 1.0, as described on
+the Technology Site.  The rights and responsibilities set forth in this Technology Specific Attachment are additional to those in Your License
+and the CUSupp.
+
+
+2.  Term.  Upon execution of the CUSupp by You and Original Contributor, this Commercial Use license shall have an initial term of five
+years and shall automatically renew for additional one year terms unless either party provides notice to the other no less than 180 days prior
+to an anniversary date.
+
+
+3.  Additional Requirements and Responsibilities.  In addition to the requirements and responsibilities specified in the License and CUSupp,
+and as a condition to exercising the rights granted therein, You agree to the following additional requirements and responsibilities:
+
+
+a) Distribution of Object Code.  Object code versions of Compliant Implementations distributed for Commercial Use must include a
+description of the specific configurations You used to achieve compliance with the Compliance Materials.  Such description must include the
+system configuration, applicable operating system and version, and all other required software services and installations, and
+which must be installed for end users to operate such Compliant Implementations.  This information must be publicly available and freely
+and readily accessible to potential end users prior to licensing or purchase of such Compliant Implementations.
+
+
+b) Branding.  You may not claim that You are distributing a JMX Agent Compliant Implementation unless and until You provide your test
+results as required pursuant to Section 7.d) below.
+
+
+c) Field of Use:_____________________________
+
+
+4.  Support Programs.
+
+
+a) Support to You.  Technical support is not provided to You by Original Contributor under this License.  You may obtain one or more
+support programs from Original Contributor relating to the Technology which are described on the Technology Site.
+
+
+b) Customer Support.  You are responsible for providing technical and maintenance support services to Your customers for Your products
+and services incorporating the Compliant Implementation.
+
+
+
+
+5.  Compliance Materials; Use Restrictions.
+
+
+Compliance Materials:  JMX Agent Compatibility Kit, version
+1.0
+
+
+a) The license set forth in Section III.A.1.e of the CUSupp for the Compliance Materials is effective only upon execution of a separate
+support agreement between You and Original Contributor (subject to an annual fee) as described on the Technology Site.  The Compliance
+Materials for the Technology may be accessed at the Technology Site only upon execution of the support agreement.
+
+
+b) You are not authorized to create derivative works of the Compliance Materials or use the Compliance Materials to test any implementation
+of the Technology Specifications that are not Covered Code.  You must not publish your test results or make claims of comparative
+compatibility with respect to other implementations of the Technology Specifications.  In consideration for the license grant in Section
+III.A.1.e of the CUSupp, You agree not to develop Your own tests which are intended to validate conformance with the Technology
+Specifications.
+
+
+6.  Requirements for Determining Compliance.
+
+
+a) Definitions.
+
+
+"Added Value" means code which:  (i) has a principal purpose which is substantially different from that of the stand-alone Technology; (ii)
+represents a significant functional and value enhancement to the Technology; (iii) operates in conjunction with the Technology; and (iv) is
+not marketed as a technology which replaces or substitutes for the Technology.
+
+
+"Java Classes" means the specific class libraries associated with the Technology to which this Technology Specific Attachment applies as set
+forth on the Technology Site.
+
+
+"Java Runtime Interpreter" means the program(s) which implement the Java virtual machine for the Technology as defined in the Technology
+Specification.
+
+
+"Platform Dependent Part" means those Reference Code files of the Technology which are not in a "share" directory or subdirectory thereof.
+
+
+"Shared Part" means those Reference Code files of the Technology which are identified as "shared" (or words of similar meaning) or which
+are in any "share" directory or subdirectory thereof, except those files specifically designated by Original Contributor as modifiable.
+
+
+"User's Guide" means the users guide for the Compliance Materials which Sun makes available to You to provide direction in how to use the
+Compliance Materials and properly interpret the results, as may be revised by Sun from time to time.
+
+
+b) Development Restrictions.
+
+A Compliant Implementation:
+
+i) must include Added Value;
+
+ii) must fully comply with the Technology Specifications for     the Technology to which this Technology Specific     Attachment applies;
+
+iii) must include the Shared Part, complete and unmodified;
+
+iv) must not modify the functional behavior of the Java     Runtime Interpreter or the Java Classes;
+
+v) must not modify, subset or superset the interfaces of the    Java Runtime Interpreter or the Java Classes;
+
+vi) must not subset or superset the Java Classes; and
+
+vii) must not modify or extend the required public class or      public interface declarations whose names begin with
+     "java", "javax", "jini", "net.jini", "sun.hotjava",      "COM.sun" or their equivalents in any subsequent naming      convention.
+
+
+c) Compatibility Testing.  Successful compatibility testing must be completed by You, or at Original Contributor's option, a third party
+designated by Original Contributor, to conduct such tests, in accordance with the User's Guide, and using the most current version of the
+applicable Compliance Materials available from Original Contributor one hundred twenty (120) days (two hundred forty [240] days in the
+case of silicon mplementations) prior to each release of a Compliant Implementation by You for Commercial Use.  In the event that You
+elect to use a version of Reference Code that is newer than that which is required under this Section 6.c, then You agree to pass the version of
+the Compliance Materials that corresponds to such newer version of Reference Code.
+
+
+d) Test Results.  You agree to provide to Original Contributor or the third party test facility if applicable, Your test results that demonstrate
+that Covered Code is a Compliant Implementation, and that Original Contributor may publish or otherwise distribute such test results.
+
+
+
+Agreed:
+
+
+You Original Contributor
+
+
+________________________ Sun Microsystems, Inc.
+
+
+By:_____________________ By:________________________
+
+
+Title:___________________ Title:_____________________
+
+
+Date:____________________ Date:______________________
+
+
+TECHNOLOGY SPECIFIC ATTACHMENT TO THE SUN COMMUNITY SOURCE LICENSE
+
+JMX INSTRUMENTATION VERSION 1.0
+
+
+1.  Effect.  This Technology Specific Attachment to the Commercial Use Supplement applies to the JMX Instrumentation, version 1.0, as
+described on the Technology Site.  The rights and responsibilities set forth in this Technology Specific Attachment are additional to those in
+Your License and the CUSupp.
+
+
+2.  Term.  Upon execution of the CUSupp by You and Original Contributor, this Commercial Use license shall have an
+initial term of five years and shall automatically renew for additional one year terms unless either party provides notice to the other no less
+than 180 days prior to an anniversary date.
+
+
+3.  Additional Requirements and Responsibilities.  In addition to the requirements and responsibilities specified in the License and CUSupp,
+and as a condition to exercising the rights granted therein, You agree to the following additional requirements and responsibilities:
+
+
+a) Distribution of Object Code.
+
+Object code versions of Compliant Implementations distributed for Commercial Use:
+
+i. must be integrated and distributed with the hardware    and/or software that are instrumented (i.e., made   manageable) with the
+Technology, or must be configured to    instrument an already deployed hardware and/or software    resource; and
+ii.must not be distributed without the Compliance Materials,    or must not be distributed without notice to the end    users that the
+Compliance Materials can be freely    downloaded from the Technology Site.
+
+
+b) Field of Use:_____________________________
+
+
+4.  Support Programs.
+
+
+a) Support to You.  Technical support is not provided to You by Original Contributor under this License.  You may obtain one or more
+support programs from Original Contributor relating to the Technology which are described on the Technology Site.
+
+
+b) Customer Support.  You are responsible for providing technical and maintenance support services to Your customers for Your products
+and services incorporating the Compliant Implementation.
+
+
+5.  Royalties and Payments.
+
+
+Royalty per Unit $:  None.
+
+
+6.  Compliance Materials; Use Restrictions.
+
+
+Compliance Materials:  JMX Instrumentation Conformance Test Tool, version 1.0
+
+
+You are not authorized to create derivative works of the Compliance Materials or use the Compliance Materials to test any implementation of
+the Technology Specifications that are not Covered Code.  You must not publish your test results or make claims of comparative
+compatibility with respect to other implementations of the Technology Specifications.  In consideration for the license grant in Section
+III.A.1.e of the CUSupp, You agree not to develop Your own tests which are intended to validate conformance with the Technology
+Specifications.
+
+7.  Requirements for Determining Compliance.
+
+
+a) Definitions.
+
+
+"Added Value" means code which:  (i) has a principal purpose which is substantially different from that of the stand-alone Technology; (ii)
+represents a significant functional and value enhancement to the Technology; (iii) operates in conjunction with the Technology; and (iv) is
+not marketed as a technology which replaces or substitutes for the Technology.
+
+
+"Java Classes" means the specific class libraries associated with the Technology to which this Technology Specific Attachment applies as set
+forth on the Technology Site.
+
+
+"Java Runtime Interpreter" means the program(s) which implement the Java virtual machine for the Technology as defined in the Technology
+Specification.
+
+
+"Platform Dependent Part" means those Reference Code files of the Technology which are not in a "share" directory or subdirectory thereof.
+
+
+"Shared Part" means those Reference Code files of the Technology which are identified as "shared" (or words of similar meaning) or which
+are in any "share" directory or subdirectory thereof, except those files specifically designated by Original Contributor as modifiable.
+
+
+"User's Guide" means the users guide for the Compliance Materials which Sun makes available to You to provide direction in how to use the
+Compliance Materials and properly interpret the results, as may be revised by Sun from time to time.
+
+
+b) Development Restrictions.
+
+A Compliant Implementation:
+
+i) must include Added Value;
+
+ii) must fully comply with the Technology Specifications for    the Technology to which this Technology Specific    Attachment applies;
+
+iii) must include the Shared Part, complete and unmodified;
+
+iv) must not modify the functional behavior of the Java     Runtime Interpreter or the Java Classes;
+
+v) must not modify, subset or superset the interfaces of the    Java Runtime Interpreter or the Java Classes;
+
+vi) must not subset or superset the Java Classes;
+
+vii) must not modify or extend the required public class or     public interface declarations whose names begin with
+     "java", "javax", "jini", "net.jini", "sun.hotjava",      "COM.sun" or their equivalents in any subsequent naming      convention;
+
+viii) must be integrated and distributed with the hardware       and/or software that are instrumented (i.e., made       manageable) with the
+Technology, or must be configured       to instrument an already deployed hardware and/or       software resource; and
+
+ix) must be configured to run only in conjunction with an     implementation of the JMX Agent Technology version 1.0     from Sun or a third
+party that meets Sun's compatibility     requirements, in binary form and as specified in the     User's Guide.
+
+
+c) Compatibility Testing.  Successful compatibility testing must be completed by You, or at Original Contributor's option, a third party
+designated by Original Contributor, to conduct such tests, in accordance with the User's Guide, and using the most current version of the
+applicable Compliance Materials available from Original Contributor one hundred twenty (120) days (two hundred forty [240] days in the
+case of silicon implementations) prior to each release of a Compliant Implementation by You for Commercial Use.  In the event that You
+elect to use a version of Reference Code that is newer than that which is required under this Section 7.c, then You agree to pass the version of
+the Compliance Materials that corresponds to such newer version of Reference Code.
+
+
+d) Test Results.  You agree to provide to Original Contributor or the third party test facility if applicable, Your test results that demonstrate
+that Covered Code is a Compliant Implementation, and that Original Contributor may publish or otherwise distribute such test results.
+
+
+Agreed:
+
+
+You Original Contributor
+
+
+________________________ Sun Microsystems, Inc.
+
+
+By:_____________________ By:____________________
+
+
+Title:___________________ Title:_________________
+
+
+Date:____________________ Date:__________________
+
+ XVII.  Binary Code License Agreement for Java Naming and Directory Interface �  version 1.2.1 (jndi and providerutil) and any of
+the following :
+LDAP service provider version 1.2.3,
+NIS service provider version 1.2.1,
+RMI Registry service provider version 1.2.1,
+FS Context service provider version 1.2 beta 3 release,
+COS Naming service provider version 1.2.1,
+or Demo
+
+
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes.  Unless enforcement is prohibited by applicable law, you may not modify, decompile,
+or reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.   U.S. Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+
+XVIII.  Supplemental License Terms for Java Naming and Directory Interface � version 1.2.1 (jndi and providerutil) and any of the
+following :
+LDAP service provider version 1.2.3,
+NIS service provider version 1.2.1,
+RMI Registry service provider version 1.2.1,
+FS Context service provider version 1.2 beta 3 release,
+COS Naming service provider version 1.2.1,
+or Demo
+
+These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively,
+the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the
+Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained
+within the Software.
+
+1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to
+Section 3 (Java(TM) Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited
+license to reproduce internally and use internally the binary form of the Software for the sole purpose of designing, developing and testing
+your Java applets and applications ("Programs").
+
+2. License to Distribute Software.  In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of
+these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to Section 3 (Java Technology
+Restrictions), Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the Software in binary form only,
+provided that you (i) distribute the Software complete and unmodified and only bundled as part of your Programs, (ii) do not distribute
+additional software intended to replace any component(s) of the Software, (iii) do not remove or alter any proprietary legends or notices
+contained in the Software, (iv) only distribute the Software subject to a license agreement that protects Sun's interests consistent with the
+terms contained in this Agreement, and (v) agree to defend and indemnify Sun and its licensors from and against any damages, costs,
+liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any
+third party that arises or results from the use or distribution of any and all Programs and/or Software.
+
+3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java"
+package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or
+modification of the classes in the JPI.  In the event that you create an additional class and associated API(s) which (i) extends the
+functionality of the Java Platform, and (ii) is exposed to third party software developers for the purpose of developing additional software
+which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers.
+You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that are in any way identified as
+"java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.
+
+4. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE,
+STAROFFICE, STARPORTAL and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE, STARPORTAL
+and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to comply with the Sun
+Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks
+inures to Sun's benefit.
+
+5. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement.
+Source code may not be redistributed unless expressly provided for in this Agreement.
+
+6. Termination for Infringement. Either party may terminate this Agreement immediately should any Software become, or in either party's
+opinion be likely to become, the subject of a claim of infringement of any intellectual property right.
+
+For inquiries please contact: Sun Microsystems, Inc.  901 San Antonio Road, Palo Alto, California 94303
+
+XIX.  Binary Code License Agreement for Java(TM) Transaction Service (JTS) API -- Javadoc 1.0.1
+
+Sun Microsystems, Inc.
+Binary Code License Agreement
+
+
+1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software
+and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer
+hardware for which the corresponding fee has been paid.
+
+2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by
+Sun and/or its licensors.  Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other
+than a single copy of Software for archival purposes.  Unless enforcement is prohibited by applicable law, you may not modify, decompile,
+or reverse engineer Software.  You acknowledge that Software is not designed, licensed or intended for use in the design, construction,
+operation or maintenance of any nuclear facility.  Sun disclaims any express or implied warranty of fitness for such uses.  No right, title or
+interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
+
+3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of
+the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use.  Except
+for the foregoing, Software is provided "AS IS".  Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's
+option to replace Software media or refund the fee paid for Software.
+
+4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE
+DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
+BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
+PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED
+TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.  In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by
+you for Software under this Agreement.  The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.
+
+6.  Termination.  This Agreement is effective until terminated.  You may terminate this Agreement at any time by destroying all copies of
+Software.  This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement.
+Upon Termination, you must destroy all copies of Software.
+
+7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be
+subject to export or import regulations in other countries.  You agree to comply strictly with all such laws and regulations and acknowledge
+that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.
+
+8.   U.S. Government Restricted Rights.  If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government
+prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set
+forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions)
+and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).
+
+9.  Governing Law.  Any action related to this Agreement will be governed by California law and controlling U.S. federal law.  No choice of
+law rules of any jurisdiction will apply.
+
+10.  Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision
+omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
+
+11.  Integration.  This Agreement is the entire agreement between you and Sun relating to its subject matter.  It supersedes all prior or
+contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional
+terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this
+Agreement.  No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.
+
+XX.  Supplemental License Terms for  JAVA(TM) INTERFACE CLASSES JAVA MESSAGE SERVICE (JMS), VERSION 1.0.2
+
+These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively,
+the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the
+Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained
+within the Software.
+
+1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to
+Section 3 (Java(TM) Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited
+license to reproduce internally and use internally the binary form of the Software, complete and unmodified, for the sole purpose of
+designing, developing and testing your Java applets and applications ("Programs").
+
+2. License to Distribute Software.  In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of
+these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to Section 3 (Java Technology
+Restrictions), Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the Software in binary form only,
+provided that you (i) distribute the Software complete and unmodified and only bundled as part of your Programs, (ii) do not distribute
+additional software intended to replace any component(s) of the Software, (iii) do not remove or alter any proprietary legends or notices
+contained in the Software, (iv) only distribute the Software subject to a license agreement that protects Sun's interests consistent with the
+terms contained in this Agreement, and (v) agree to defend and indemnify Sun and its licensors from and against any damages, costs,
+liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any
+third party that arises or results from the use or distribution of any and all Programs and/or Software.
+
+3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java"
+package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or
+modification of the classes in the JPI.  In the event that you create an additional class and associated API(s) which (i) extends the
+functionality of the Java Platform, and (ii) is exposed to third party software developers for the purpose of developing additional software
+which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers.
+You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that are in any way identified as
+"java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.
+
+4. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE,
+STAROFFICE, STARPORTAL and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE, STARPORTAL
+and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to comply with the Sun
+Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks
+inures to Sun's benefit.
+
+5. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement.
+Source code may not be redistributed unless expressly provided for in this Agreement.
+
+6.  Termination for Infringement.  Either party may terminate this Agreement immediately should any Software become, or in either party's
+opinion be likely to become, the subject of a claim of infringement of any intellectual property right.
+
+For inquiries please contact: Sun Microsystems, Inc.  901 San Antonio Road, Palo Alto, California 94303
+(Form ID#011801)
+
+
+
+LICENSE TERMS FOR JUNIT THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+Common Public License Version 0.5
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE SOFTWARE THAT IS JUNIT
+AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY OTHER PRODUCTS TERMS ASSOCIATED WITH OTHER
+ELEMENTS OF THE SOFTWARE..
+1. DEFINITIONS
+"Contribution" means:
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+i) changes to the Program, and
+ii) additions to the Program;
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed
+in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+"Contributor" means any person or entity that distributes the Program.
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution
+alone or when combined with the Program.
+"Program" means the Contributions distributed in accordance with this Agreement.
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+2. GRANT OF RIGHTS
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free
+copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent
+license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor,
+if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program
+if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be
+covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No
+hardware per se is licensed hereunder.
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are
+provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity.
+Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes
+sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is
+required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the
+Program.
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the
+copyright license set forth in this Agreement.
+3. REQUIREMENTS
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+a) it complies with the terms and conditions of this Agreement; and
+b) its license agreement:
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or
+conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular
+purpose;
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and
+consequential damages, such as lost profits;
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party;
+and
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software exchange.
+When the Program is made available in source code form:
+a) it must be made available under this Agreement; and
+b) a copy of this Agreement must be included with each copy of the Program.
+Contributors may not remove or alter any copyright notices contained within the Program.
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to
+identify the originator of the Contribution.
+4. COMMERCIAL DISTRIBUTION
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other
+Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial
+Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply
+to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor
+must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and
+cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor
+to pay any damages as a result, the Commercial Contributor must pay those damages.
+5. NO WARRANTY
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
+WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+6. DISCLAIMER OF LIABILITY
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE
+ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+7. GENERAL
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the
+remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.
+If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or
+counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of
+the date such litigation is filed. In addition, If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement
+and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this
+Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's
+obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial
+Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of
+the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to
+the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may
+elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b)
+above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by
+implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No
+party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.
+
+LICENSE TERMS FOR ORACLE JDBC DRIVERS THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE
+SOFTWARE THAT IS Oracle JDBC Drivers Classes12 SOFTWARE AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY
+THIRD PARTY PRODUCTS TERMS ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+
+I.  Customer shall have the free of charge, nonexclusive, nontransferable right to use the Oracle JDBC Drivers Classes12 Software
+accompanying the Total e Syndication Software (the "Programs") in the operating environment identified by Oracle for a single user (one
+person) on a single computer.  Customer may use the Programs solely for its own internal data processing operations.   For the purposes
+under this Section I, Customer may make one copy of each licensed Program for backup. Customer has no right to distribut the Programs.
+Customer acknowledges that Oracle is an intended third party beneficiary of all applicable license terms to the extent permitted by applicable
+law.
+
+II.  All titles, trademarks, and copyright and restricted rights notices shall be reproduced in any copy of the Programs. All copies are subject
+to the terms of this License Agreement.  No other copies shall be made without Oracle's prior written consent. Customer shall not: (a) remove
+any product identification, copyright notices, or other notices or proprietary restrictions from Programs; (b) use Programs for commercial
+timesharing, rental, or service bureau use; (c) transfer, sell, assign or otherwise convey Programs to another party without Oracle's prior
+written consent, except as specified herein; (d) cause or permit reverse engineering, disassembly, or decompilation of Programs; or (e)
+disclose results of any benchmark tests of any Program to any third party without Oracle's prior written approval.
+
+III. Programs are the confidential and proprietary products of Oracle and are protected by copyright and other intellectual property laws.
+Customer acquires only the right to use Programs and does not acquire any rights, express or implied, in Programs other than those specified
+in this License Agreement.  Oracle shall at all times retain all rights, title, interest, including intellectual property rights, in Programs and
+media.
+
+IV.  DISCLAIMER OF WARRANTY:  THE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  ARJUNA
+AND ORACLE FURTHER DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION,
+ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+V.  LIMITATION OF LIABILITY: IN NO EVENT SHALL ORACLE OR ARJUNA BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE,
+DATA OR DATA USE, INCURRED BY CUSTOMER OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR
+TORT, EVEN IF ORACLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+VI.  Customer may terminate this license at any time by destroying all copies of the Programs.  ARJUNA and/or Oracle shall have the right at its
+discretion to terminate Customer's right to use the Programs at any time if Customer fails to comply with any of the terms or conditions of
+this License Agreement.  Upon such termination, Customer must destroy all copies of the Programs. The Disclaimer of Warranty and
+Limitation of Liability Sections above shall survive termination of this License Agreement.
+
+VIII.  Neither Oracle nor ARJUNA is obligated to provide technical support, phone support, or updates to Customer for Programs.
+
+IX.  Programs delivered to the U.S. Defense Dept. are delivered with Restricted Rights and the following applies:  "Restricted Rights Legend:
+Use, duplication or disclosure by Government is subject to restrictions as currently set forth in subparagraph (c)(1)(ii) of DFARS 252-227-
+7013, Rights in Technical Data and Computer Software (October 1988).  Oracle Corp. 500 Oracle Pkwy., Redwood City, CA, 94065.
+Programs delivered to a US Government Agency not within the Defense, Dept. are delivered with "Restricted Rights" as defined in FAR
+52.227-14,  Rights in Data - General, including Alternate III (June 1987)."
+
+X.  Customer shall comply fully with all  laws and regulations of the United States and other countries ("Export Laws") to assure that neither
+the Programs, nor any direct products thereof are (1) exported, directly or indirectly, in violation of Export Laws, or (2) are used for any
+purpose prohibited by Export Laws, including, without limitation, nuclear, chemical, or biological weapons proliferation.
+
+XI.  This License Agreement and all related actions thereto shall be governed by California law.  ARJUNA and/or Oracle may audit Customer's use
+of the Programs.  If any provision of this License Agreement is held to be invalid or unenforceable, the remaining provisions of this License
+Agreement will remain in full force.
+
+LICENSE TERMS FOR LRMP/INRIS THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE  SOFTWARE THAT IS
+LRMP/INRIA SOFTWARE AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY THIRD PARTY PRODUCTS TERMS
+ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+
+LRMP/INRIA
+COPYRIGHT 1997/1998 BY: MASSACHUSETTS INSTITUTE OF TECHNOLOGY (MIT), INRIA
+
+This W3C software is being provided by the copyright holders under the following license. By obtaining, using and/or copying this software,
+you agree that you have read, understood, and will comply with the following terms and conditions:
+
+Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee or royalty is hereby
+granted, provided that the full text of this NOTICE appears on ALL copies of the software and documentation or portions thereof, including
+modifications, that you make.
+
+THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES,
+EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO
+REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
+THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
+OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific,
+written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.
+
+LICENSE TERMS FOR JYACC SOFTWARE THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE
+SOFTWARE THAT IS JYACC SOFTWARE AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY THIRD PARTY
+PRODUCTS TERMS ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+
+JYACC.JAR
+CUP Parser Generator Copyright Notice, License, and Disclaimer
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
+Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice and warranty
+disclaimer appear in supporting documentation, and that the names of the authors or their employers not be used in advertising or publicity
+pertaining to distribution of the software without specific, written prior permission.
+
+The authors and their employers disclaim all warranties with regard to this software, including all implied warranties of merchantability and
+fitness. In no event shall the authors or their employers be liable for any special, indirect or consequential damages or any damages
+whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in
+connection with the use or performance of this software.
+
+
+LICENSE TERMS FOR JLEX SOFTWARE THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE
+SOFTWARE THAT IS JLEX SOFTWARE AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY THIRD PARTY PRODUCTS
+TERMS ASSOCIATED WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+
+JLex:
+A lexical analyzer generator for Java(TM)
+
+Elliot Berk
+Department of Computer Science, Princeton University
+
+Version 1.2, May 5, 1997
+
+Manual revision October 29, 1997
+
+Last updated September 6, 2000 for JLex 1.2.5
+
+(latest version can be obtained from http://www.cs.princeton.edu/~appel/modern/java/JLex/ )
+
+--------------------------------------------------------------------------------
+6.1 Credits
+The treatment of lexical analyzer generators given in Alan Holub's Compiler Design in C (Prentice-Hall, 1990) provided a starting point for
+my implementation.
+
+Discussions with Professor Andrew Appel of the Princeton University Computer Science Department provided guidance in the design of
+JLex.
+
+Java is a trademark of Sun Microsystems Incorporated.
+
+
+
+
+
+--------------------------------------------------------------------------------
+
+
+
+6.2 Copyright
+JLex COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
+
+Copyright 1996 by Elliot Joel Berk.
+
+Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice and warranty
+disclaimer appear in supporting documentation, and that the name of Elliot Joel Berk not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+Elliot Joel Berk disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no
+event shall Elliot Joel Berk be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use,
+data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or
+performance of this software.
+
+
+
+--------------------------------------------------------------------------------
+
+
+Frank Flannery
+Wed Jul 24 00:27:39 EDT 1996
+
+
+LICENSE TERMS FOR GNU SOFTWARE THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
+
+
+THE TERMS AND CONDITIONS APPEARING BELOW APPLY ONLY TO THAT PORTION OF THE  SOFTWARE THAT IS GNU
+SOFTWARE AND DOES NOT OVERRIDE ANY ARJUNA SOFTWARE OR ANY THIRD PARTY PRODUCTS TERMS ASSOCIATED
+WITH OTHER ELEMENTS OF THE SOFTWARE.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+Preamble
+The licenses for most software are designed to take away your freedom to share and change it. By
+contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+This license, the Lesser General Public License, applies to some specially designated software packages--
+typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it
+too, but we suggest you first think carefully about whether this license or the ordinary General Public
+License is the better strategy to use in any particular case, based on the explanations below.
+When we speak of free software, we are referring to freedom of use, not price. Our General Public
+Licenses are designed to make sure that you have the freedom to distribute copies of free software (and
+charge for this service if you wish); that you receive source code or can get it if you want it; that you can
+change the software and use pieces of it in new free programs; and that you are informed that you can do
+these things.
+To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to
+ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you
+distribute copies of the library or if you modify it.
+For example, if you distribute copies of the library, whether gratis or for a fee, you must give the
+recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide complete object files to the recipients, so
+that they can relink them with the library after making changes to the library and recompiling it. And you
+must show them these terms so they know their rights.
+We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this
+license, which gives you legal permission to copy, distribute and/or modify the library.
+To protect each distributor, we want to make it very clear that there is no warranty for the free library.
+Also, if the library is modified by someone else and passed on, the recipients should know that what they
+have is not the original version, so that the original author's reputation will not be affected by problems
+that might be introduced by others.
+Finally, software patents pose a constant threat to the existence of any free program. We wish to make
+sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive
+license from a patent holder. Therefore, we insist that any patent license obtained for a version of the
+library must be consistent with the full freedom of use specified in this license.
+Most GNU software, including some libraries, is covered by the ordinary GNU General Public License.
+This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite
+different from the ordinary General Public License. We use this license for certain libraries in order to
+permit linking those libraries into non-free programs.
+When a program is linked with a library, whether statically or using a shared library, the combination of
+the two is legally speaking a combined work, a derivative of the original library. The ordinary General
+Public License therefore permits such linking only if the entire combination fits its criteria of freedom.
+The Lesser General Public License permits more lax criteria for linking other code with the library.
+We call this license the "Lesser" General Public License because it does Less to protect the user's freedom
+than the ordinary General Public License. It also provides other free software developers Less of an
+advantage over competing non-free programs. These disadvantages are the reason we use the ordinary
+General Public License for many libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+For example, on rare occasions, there may be a special need to encourage the widest possible use of a
+certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed
+to use the library. A more frequent case is that a free library does the same job as widely used non-free
+libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the
+Lesser General Public License.
+In other cases, permission to use a particular library in non-free programs enables a greater number of
+people to use a large body of free software. For example, permission to use the GNU C Library in non-
+free programs enables many more people to use the whole GNU operating system, as well as its variant,
+the GNU/Linux operating system.
+Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that
+the user of a program that is linked with the Library has the freedom and the wherewithal to run that
+program using a modified version of the Library.
+The precise terms and conditions for copying, distribution and modification follow. Pay close attention to
+the difference between a "work based on the library" and a "work that uses the library". The former
+contains code derived from the library, whereas the latter must be combined with the library in order to
+run.
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION
+AND MODIFICATION
+0. This License Agreement applies to any software library or other program which contains a notice
+placed by the copyright holder or other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".
+A "library" means a collection of software functions and/or data prepared so as to be conveniently linked
+with application programs (which use some of those functions and data) to form executables.
+The "Library", below, refers to any such software library or work which has been distributed under these
+terms. A "work based on the Library" means either the Library or any derivative work under copyright
+law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications
+and/or translated straightforwardly into another language. (Hereinafter, translation is included without
+limitation in the term "modification".)
+"Source code" for a work means the preferred form of the work for making modifications to it. For a
+library, complete source code means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and installation of the library.
+Activities other than copying, distribution and modification are not covered by this License; they are
+outside its scope. The act of running a program using the Library is not restricted, and output from such a
+program is covered only if its contents constitute a work based on the Library (independent of the use of
+the Library in a tool for writing it). Whether that is true depends on what the Library does and what the
+program that uses the Library does.
+1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in
+any medium, provided that you conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the
+absence of any warranty; and distribute a copy of this License along with the Library.
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer
+warranty protection in exchange for a fee.
+2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on
+the Library, and copy and distribute such modifications or work under the terms of Section 1 above,
+provided that you also meet all of these conditions:
+?	a) The modified work must itself be a software library.
+?	b) You must cause the files modified to carry prominent notices stating that you changed the files
+and the date of any change.
+?	c) You must cause the whole of the work to be licensed at no charge to all third parties under the
+terms of this License.
+?	d) If a facility in the modified Library refers to a function or a table of data to be supplied by an
+application program that uses the facility, other than as an argument passed when the facility is
+invoked, then you must make a good faith effort to ensure that, in the event an application does
+not supply such function or table, the facility still operates, and performs whatever part of its
+purpose remains meaningful.
+(For example, a function in a library to compute square roots has a purpose that is entirely well-
+defined independent of the application. Therefore, Subsection 2d requires that any application-
+supplied function or table used by this function must be optional: if the application does not
+supply it, the square root function must still compute square roots.)
+These requirements apply to the modified work as a whole. If identifiable sections of that work are
+not derived from the Library, and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part of a whole which is a
+work based on the Library, the distribution of the whole must be on the terms of this License,
+whose permissions for other licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+Thus, it is not the intent of this section to claim rights or contest your rights to work written
+entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or
+collective works based on the Library.
+In addition, mere aggregation of another work not based on the Library with the Library (or with a
+work based on the Library) on a volume of a storage or distribution medium does not bring the
+other work under the scope of this License.
+3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to
+a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they
+refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer
+version than version 2 of the ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in these notices.
+Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General
+Public License applies to all subsequent copies and derivative works made from that copy.
+This option is useful when you wish to copy part of the code of the Library into a program that is not a
+library.
+4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object
+code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with
+the complete corresponding machine-readable source code, which must be distributed under the terms of
+Sections 1 and 2 above on a medium customarily used for software interchange.
+If distribution of object code is made by offering access to copy from a designated place, then offering
+equivalent access to copy the source code from the same place satisfies the requirement to distribute the
+source code, even though third parties are not compelled to copy the source along with the object code.
+5. A program that contains no derivative of any portion of the Library, but is designed to work with the
+Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in
+isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
+However, linking a "work that uses the Library" with the Library creates an executable that is a derivative
+of the Library (because it contains portions of the Library), rather than a "work that uses the library". The
+executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
+When a "work that uses the Library" uses material from a header file that is part of the Library, the object
+code for the work may be a derivative work of the Library even though the source code is not. Whether
+this is true is especially significant if the work can be linked without the Library, or if the work is itself a
+library. The threshold for this to be true is not precisely defined by law.
+If such an object file uses only numerical parameters, data structure layouts and accessors, and small
+macros and small inline functions (ten lines or less in length), then the use of the object file is
+unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code
+plus portions of the Library will still fall under Section 6.)
+Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work
+under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or
+not they are linked directly with the Library itself.
+6. As an exception to the Sections above, you may also combine or link a "work that uses the Library"
+with the Library to produce a work containing portions of the Library, and distribute that work under
+terms of your choice, provided that the terms permit modification of the work for the customer's own use
+and reverse engineering for debugging such modifications.
+You must give prominent notice with each copy of the work that the Library is used in it and that the
+Library and its use are covered by this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the copyright notice for the Library among
+them, as well as a reference directing the user to the copy of this License. Also, you must do one of these
+things:
+?	a) Accompany the work with the complete corresponding machine-readable source code for the
+Library including whatever changes were used in the work (which must be distributed under
+Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the
+complete machine-readable "work that uses the Library", as object code and/or source code, so
+that the user can modify the Library and then relink to produce a modified executable containing
+the modified Library. (It is understood that the user who changes the contents of definitions files
+in the Library will not necessarily be able to recompile the application to use the modified
+definitions.)
+?	b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is
+one that (1) uses at run time a copy of the library already present on the user's computer system,
+rather than copying library functions into the executable, and (2) will operate properly with a
+modified version of the library, if the user installs one, as long as the modified version is interface-
+compatible with the version that the work was made with.
+?	c) Accompany the work with a written offer, valid for at least three years, to give the same user
+the materials specified in Subsection 6a, above, for a charge no more than the cost of performing
+this distribution.
+?	d) If distribution of the work is made by offering access to copy from a designated place, offer
+equivalent access to copy the above specified materials from the same place.
+?	e) Verify that the user has already received a copy of these materials or that you have already sent
+this user a copy.
+For an executable, the required form of the "work that uses the Library" must include any data and utility
+programs needed for reproducing the executable from it. However, as a special exception, the materials to
+be distributed need not include anything that is normally distributed (in either source or binary form) with
+the major components (compiler, kernel, and so on) of the operating system on which the executable runs,
+unless that component itself accompanies the executable.
+It may happen that this requirement contradicts the license restrictions of other proprietary libraries that
+do not normally accompany the operating system. Such a contradiction means you cannot use both them
+and the Library together in an executable that you distribute.
+7. You may place library facilities that are a work based on the Library side-by-side in a single library
+together with other library facilities not covered by this License, and distribute such a combined library,
+provided that the separate distribution of the work based on the Library and of the other library facilities is
+otherwise permitted, and provided that you do these two things:
+?	a) Accompany the combined library with a copy of the same work based on the Library,
+uncombined with any other library facilities. This must be distributed under the terms of the
+Sections above.
+?	b) Give prominent notice with the combined library of the fact that part of it is a work based on
+the Library, and explaining where to find the accompanying uncombined form of the same work.
+8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided
+under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library
+is void, and will automatically terminate your rights under this License. However, parties who have
+received copies, or rights, from you under this License will not have their licenses terminated so long as
+such parties remain in full compliance.
+9. You are not required to accept this License, since you have not signed it. However, nothing else grants
+you permission to modify or distribute the Library or its derivative works. These actions are prohibited by
+law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work
+based on the Library), you indicate your acceptance of this License to do so, and all its terms and
+conditions for copying, distributing or modifying the Library or works based on it.
+10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically
+receives a license from the original licensor to copy, distribute, link with or modify the Library subject to
+these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the
+rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
+11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason
+(not limited to patent issues), conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of
+this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License
+and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For
+example, if a patent license would not permit royalty-free redistribution of the Library by all those who
+receive copies directly or indirectly through you, then the only way you could satisfy both it and this
+License would be to refrain entirely from distribution of the Library.
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the
+balance of the section is intended to apply, and the section as a whole is intended to apply in other
+circumstances.
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or
+to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the
+free software distribution system which is implemented by public license practices. Many people have
+made generous contributions to the wide range of software distributed through that system in reliance on
+consistent application of that system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that choice.
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this
+License.
+12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by
+copyrighted interfaces, the original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries, so that distribution is permitted
+only in or among countries not thus excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public
+License from time to time. Such new versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+Each version is given a distinguishing version number. If the Library specifies a version number of this
+License which applies to it and "any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by the Free Software Foundation. If the
+Library does not specify a license version number, you may choose any version ever published by the
+Free Software Foundation.
+14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions
+are incompatible with these, write to the author to ask for permission. For software which is copyrighted
+by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions
+for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our
+free software and of promoting the sharing and reuse of software generally.
+NO WARRANTY
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
+LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT
+LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE
+WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+END OF TERMS AND CONDITIONS
+How to Apply These Terms to Your New Libraries
+If you develop a new library, and you want it to be of the greatest possible use to the public, we
+recommend making it free software that everyone can redistribute and change. You can do so by
+permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General
+Public License).
+To apply these terms, attach the following notices to the library. It is safest to attach them to the start of
+each source file to most effectively convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+one line to give the library's name and an idea of what it does.
+Copyright (C) year  name of author
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed 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.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+Also add information on how to contact you by electronic and paper mail.
+You should also get your employer (if you work as a programmer) or your school, if any, to sign a
+"copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:
+Yoyodyne, Inc., hereby disclaims all copyright interest in
+the library `Frob' (a library for tweaking knobs) written
+by James Random Hacker.
+
+signature of Ty Coon, 1 April 1990
+Ty Coon, President of Vice
+That's all there is to it!
+
+--------------------------------------------------------------------------------------------------------------
+
+JAX-WS API (ext/jaxws-2_1-mrel2-api.jar from http://jcp.org/aboutJava/communityprocess/mrel/jsr224/index2.html)
+is released under the CDDL 1.0 and GPL v2, as follows:
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+   1.1. Contributor. means each individual or entity that creates or contributes to the creation of Modifications.
+
+   1.2. Contributor Version. means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
+
+   1.3. Covered Software. means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
+
+   1.4. Executable. means the Covered Software in any form other than Source Code.
+
+   1.5. Initial Developer. means the individual or entity that first makes Original Software available under this License.
+
+   1.6. Larger Work. means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
+
+   1.7. License. means this document.
+
+   1.8. Licensable. means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
+
+   1.9. Modifications. means the Source Code and Executable form of any of the following:
+
+        A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
+
+        B. Any new file that contains any part of the Original Software or previous Modification; or
+
+        C. Any new file that is contributed or otherwise made available under the terms of this License.
+
+   1.10. Original Software. means the Source Code and Executable form of computer software code that is originally released under this License.
+
+   1.11. Patent Claims. means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
+
+   1.12. Source Code. means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
+
+   1.13. You. (or .Your.) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, .You. includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, .control. means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+      2.1. The Initial Developer Grant.
+
+      Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+         (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
+
+         (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+      3.1. Availability of Source Code.
+      Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
+
+      3.2. Modifications.
+      The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
+
+      3.3. Required Notices.
+      You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
+
+      3.4. Application of Additional Terms.
+      You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients. rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
+
+      3.5. Distribution of Executable Versions.
+      You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient.s rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
+
+      3.6. Larger Works.
+      You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+      4.1. New Versions.
+      Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
+
+      4.2. Effect of New Versions.
+      You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
+
+      4.3. Modified Versions.
+      When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+   COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+      6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
+
+      6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as .Participant.) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to!
  a written agreement with Participant.
+
+      6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+   The Covered Software is a .commercial item,. as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as that term is defined at 48 C.F.R. º 252.227-7014(a)(1)) and .commercial computer software documentation. as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
+
+9. MISCELLANEOUS.
+
+   This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction.s conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys. fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a con!
 tract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+   As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
+
+   NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
+
+   The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.
+
+
+The GNU General Public License (GPL) Version 2, June 1991
+
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+   a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+
+   b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+
+   c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+   a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+   b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+   c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
+
+   One line to give the program's name and a brief idea of what it does.
+
+   Copyright (C)
+
+   This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+
+   This program is distributed 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. See the GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
+
+   Gnomovision version 69, Copyright (C) year name of author
+   Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
+
+   Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+   signature of Ty Coon, 1 April 1989
+   Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
+
+
+"CLASSPATH" EXCEPTION TO THE GPL VERSION 2
+
+Certain source files distributed by Sun Microsystems, Inc. are subject to the following clarification and special exception to the GPL Version 2, but only where Sun has expressly included in the particular source file's header the words
+
+"Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the License file that accompanied this code."
+
+Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License Version 2 cover the whole combination.
+
+As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.? An independent module is a module which is not derived from or based on this library.? If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so.? If you do not wish to do so, delete this exception statement from your version.
\ No newline at end of file




More information about the jboss-svn-commits mailing list