Author: dasarath
Date: Mon Jan  2 11:21:39 2006
New Revision: 365405

URL: http://svn.apache.org/viewcvs?rev=365405&view=rev
Log: (empty)

Added:
    webservices/kandula/branches/Kandula_1/src/samples/interopibm/
    
webservices/kandula/branches/Kandula_1/src/samples/interopibm/InteropService.wsdl
    webservices/kandula/branches/Kandula_1/src/samples/interopibm/build/
    webservices/kandula/branches/Kandula_1/src/samples/interopibm/build.xml
    
webservices/kandula/branches/Kandula_1/src/samples/interopibm/client-config.wsdd
    webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/
    
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InitiatorApp.java
    
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InteropServiceSoapBindingImpl.java
    
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/ManInTheMiddle.java
    
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/SetCoordCtxHandler.java

Added: 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/InteropService.wsdl
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/InteropService.wsdl?rev=365405&view=auto
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/InteropService.wsdl
 (added)
+++ 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/InteropService.wsdl
 Mon Jan  2 11:21:39 2006
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
targetNamespace="http://localhost:8989/wstx/services/InteropService"; 
xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:apachesoap="http://xml.apache.org/xml-soap"; 
xmlns:impl="http://localhost:8989/wstx/services/InteropService"; 
xmlns:intf="http://localhost:8989/wstx/services/InteropService"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:tns1="http://fabrikam123.com"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";><wsdl:types><schema 
targetNamespace="http://fabrikam123.com"; 
xmlns="http://www.w3.org/2001/XMLSchema";><element name="Commit" 
type="xsd:string"/><element name="Rollback" type="xsd:string"/><element 
name="Phase2Rollback" type="xsd:string"/><element name="Readonly" 
type="xsd:string"/><element name="VolatileAndDurable" 
type="xsd:string"/><element name="EarlyReadonly" type="xsd:string"/><element 
name="EarlyAborted" type="xsd:string"/><element n
 ame="ReplayAbort" type="xsd:string"/><element name="ReplayCommit" 
type="xsd:string"/><element name="RetryPreparedCommit" 
type="xsd:string"/><element name="RetryPreparedAbort" 
type="xsd:string"/><element name="RetryCommit" type="xsd:string"/><element 
name="RetryReplay" type="xsd:string"/><element name="PreparedAfterTimeout" 
type="xsd:string"/><element name="LostCommitted" type="xsd:string"/><element 
name="ParticipantClosed" type="xsd:string"/><element 
name="ParticipantCompensated" type="xsd:string"/><element 
name="ParticipantCanceled" type="xsd:string"/><element name="ParticipantExit" 
type="xsd:string"/><element name="ParticipantFault" type="xsd:string"/><element 
name="ParticipantCompensationFault" type="xsd:string"/><element 
name="CompletionCommit" type="xsd:string"/><element name="CompletionRollback" 
type="xsd:string"/><element name="InvalidProtocol" 
type="xsd:string"/></schema><schema 
targetNamespace="http://localhost:8989/wstx/services/InteropService"; 
xmlns="http://www.w3
 .org/2001/XMLSchema"><element name="CommitReturn" type="xsd:string"/><element 
name="RollbackReturn" type="xsd:string"/><element name="Phase2RollbackReturn" 
type="xsd:string"/><element name="ReadonlyReturn" type="xsd:string"/><element 
name="VolatileAndDurableReturn" type="xsd:string"/><element 
name="EarlyReadonlyReturn" type="xsd:string"/><element 
name="EarlyAbortedReturn" type="xsd:string"/><element name="ReplayAbortReturn" 
type="xsd:string"/><element name="ReplayCommitReturn" 
type="xsd:string"/><element name="RetryPreparedCommitReturn" 
type="xsd:string"/><element name="RetryPreparedAbortReturn" 
type="xsd:string"/><element name="RetryCommitReturn" 
type="xsd:string"/><element name="RetryReplayReturn" 
type="xsd:string"/><element name="PreparedAfterTimeoutReturn" 
type="xsd:string"/><element name="LostCommittedReturn" 
type="xsd:string"/><element name="ParticipantClosedReturn" 
type="xsd:string"/><element name="ParticipantCompensatedReturn" 
type="xsd:string"/><element name="Partic
 ipantCanceledReturn" type="xsd:string"/><element name="ParticipantExitReturn" 
type="xsd:string"/><element name="ParticipantFaultReturn" 
type="xsd:string"/><element name="ParticipantCompensationFaultReturn" 
type="xsd:string"/><element name="CompletionCommitReturn" 
type="xsd:string"/><element name="CompletionRollbackReturn" 
type="xsd:string"/><element name="InvalidProtocolReturn" 
type="xsd:string"/></schema></wsdl:types><wsdl:message 
name="RetryReplayRequest"><wsdl:part element="tns1:RetryReplay" 
name="part"/></wsdl:message><wsdl:message 
name="CompletionCommitRequest"><wsdl:part element="tns1:CompletionCommit" 
name="part"/></wsdl:message><wsdl:message name="EarlyAbortedRequest"><wsdl:part 
element="tns1:EarlyAborted" name="part"/></wsdl:message><wsdl:message 
name="ReadonlyResponse"><wsdl:part element="impl:ReadonlyReturn" 
name="ReadonlyReturn"/></wsdl:message><wsdl:message 
name="EarlyReadonlyRequest"><wsdl:part element="tns1:EarlyReadonly" 
name="part"/></wsdl:message><wsdl:mess
 age name="CommitResponse"><wsdl:part element="impl:CommitReturn" 
name="CommitReturn"/></wsdl:message><wsdl:message 
name="RetryPreparedAbortResponse"><wsdl:part 
element="impl:RetryPreparedAbortReturn" 
name="RetryPreparedAbortReturn"/></wsdl:message><wsdl:message 
name="RetryCommitRequest"><wsdl:part element="tns1:RetryCommit" 
name="part"/></wsdl:message><wsdl:message name="RetryReplayResponse"><wsdl:part 
element="impl:RetryReplayReturn" 
name="RetryReplayReturn"/></wsdl:message><wsdl:message 
name="RetryCommitResponse"><wsdl:part element="impl:RetryCommitReturn" 
name="RetryCommitReturn"/></wsdl:message><wsdl:message 
name="CompletionRollbackRequest"><wsdl:part element="tns1:CompletionRollback" 
name="part"/></wsdl:message><wsdl:message 
name="PreparedAfterTimeoutResponse"><wsdl:part 
element="impl:PreparedAfterTimeoutReturn" 
name="PreparedAfterTimeoutReturn"/></wsdl:message><wsdl:message 
name="VolatileAndDurableResponse"><wsdl:part 
element="impl:VolatileAndDurableReturn" name="Volat
 ileAndDurableReturn"/></wsdl:message><wsdl:message 
name="ParticipantExitRequest"><wsdl:part element="tns1:ParticipantExit" 
name="part"/></wsdl:message><wsdl:message 
name="ParticipantCanceledResponse"><wsdl:part 
element="impl:ParticipantCanceledReturn" 
name="ParticipantCanceledReturn"/></wsdl:message><wsdl:message 
name="CompletionCommitResponse"><wsdl:part 
element="impl:CompletionCommitReturn" 
name="CompletionCommitReturn"/></wsdl:message><wsdl:message 
name="EarlyReadonlyResponse"><wsdl:part element="impl:EarlyReadonlyReturn" 
name="EarlyReadonlyReturn"/></wsdl:message><wsdl:message 
name="RetryPreparedCommitResponse"><wsdl:part 
element="impl:RetryPreparedCommitReturn" 
name="RetryPreparedCommitReturn"/></wsdl:message><wsdl:message 
name="ParticipantCanceledRequest"><wsdl:part element="tns1:ParticipantCanceled" 
name="part"/></wsdl:message><wsdl:message 
name="InvalidProtocolRequest"><wsdl:part element="tns1:InvalidProtocol" 
name="part"/></wsdl:message><wsdl:message name="Participa
 ntFaultResponse"><wsdl:part element="impl:ParticipantFaultReturn" 
name="ParticipantFaultReturn"/></wsdl:message><wsdl:message 
name="ParticipantCompensatedResponse"><wsdl:part 
element="impl:ParticipantCompensatedReturn" 
name="ParticipantCompensatedReturn"/></wsdl:message><wsdl:message 
name="PreparedAfterTimeoutRequest"><wsdl:part 
element="tns1:PreparedAfterTimeout" name="part"/></wsdl:message><wsdl:message 
name="ReplayCommitRequest"><wsdl:part element="tns1:ReplayCommit" 
name="part"/></wsdl:message><wsdl:message 
name="VolatileAndDurableRequest"><wsdl:part element="tns1:VolatileAndDurable" 
name="part"/></wsdl:message><wsdl:message 
name="ReplayCommitResponse"><wsdl:part element="impl:ReplayCommitReturn" 
name="ReplayCommitReturn"/></wsdl:message><wsdl:message 
name="ParticipantCompensationFaultResponse"><wsdl:part 
element="impl:ParticipantCompensationFaultReturn" 
name="ParticipantCompensationFaultReturn"/></wsdl:message><wsdl:message 
name="ParticipantCompensatedRequest"><wsdl:par
 t element="tns1:ParticipantCompensated" 
name="part"/></wsdl:message><wsdl:message 
name="LostCommittedRequest"><wsdl:part element="tns1:LostCommitted" 
name="part"/></wsdl:message><wsdl:message name="ReplayAbortRequest"><wsdl:part 
element="tns1:ReplayAbort" name="part"/></wsdl:message><wsdl:message 
name="ParticipantCompensationFaultRequest"><wsdl:part 
element="tns1:ParticipantCompensationFault" 
name="part"/></wsdl:message><wsdl:message 
name="ParticipantExitResponse"><wsdl:part element="impl:ParticipantExitReturn" 
name="ParticipantExitReturn"/></wsdl:message><wsdl:message 
name="CommitRequest"><wsdl:part element="tns1:Commit" 
name="part"/></wsdl:message><wsdl:message 
name="InvalidProtocolResponse"><wsdl:part element="impl:InvalidProtocolReturn" 
name="InvalidProtocolReturn"/></wsdl:message><wsdl:message 
name="ReplayAbortResponse"><wsdl:part element="impl:ReplayAbortReturn" 
name="ReplayAbortReturn"/></wsdl:message><wsdl:message 
name="RetryPreparedAbortRequest"><wsdl:part element="
 tns1:RetryPreparedAbort" name="part"/></wsdl:message><wsdl:message 
name="EarlyAbortedResponse"><wsdl:part element="impl:EarlyAbortedReturn" 
name="EarlyAbortedReturn"/></wsdl:message><wsdl:message 
name="RollbackResponse"><wsdl:part element="impl:RollbackReturn" 
name="RollbackReturn"/></wsdl:message><wsdl:message 
name="RollbackRequest"><wsdl:part element="tns1:Rollback" 
name="part"/></wsdl:message><wsdl:message 
name="ParticipantFaultRequest"><wsdl:part element="tns1:ParticipantFault" 
name="part"/></wsdl:message><wsdl:message 
name="Phase2RollbackResponse"><wsdl:part element="impl:Phase2RollbackReturn" 
name="Phase2RollbackReturn"/></wsdl:message><wsdl:message 
name="CompletionRollbackResponse"><wsdl:part 
element="impl:CompletionRollbackReturn" 
name="CompletionRollbackReturn"/></wsdl:message><wsdl:message 
name="LostCommittedResponse"><wsdl:part element="impl:LostCommittedReturn" 
name="LostCommittedReturn"/></wsdl:message><wsdl:message 
name="ParticipantClosedResponse"><wsdl:part el
 ement="impl:ParticipantClosedReturn" 
name="ParticipantClosedReturn"/></wsdl:message><wsdl:message 
name="ReadonlyRequest"><wsdl:part element="tns1:Readonly" 
name="part"/></wsdl:message><wsdl:message 
name="ParticipantClosedRequest"><wsdl:part element="tns1:ParticipantClosed" 
name="part"/></wsdl:message><wsdl:message 
name="Phase2RollbackRequest"><wsdl:part element="tns1:Phase2Rollback" 
name="part"/></wsdl:message><wsdl:message 
name="RetryPreparedCommitRequest"><wsdl:part element="tns1:RetryPreparedCommit" 
name="part"/></wsdl:message><wsdl:portType 
name="InteropService"><wsdl:operation name="Commit"><wsdl:input 
message="impl:CommitRequest" name="CommitRequest"/><wsdl:output 
message="impl:CommitResponse" 
name="CommitResponse"/></wsdl:operation><wsdl:operation 
name="Rollback"><wsdl:input message="impl:RollbackRequest" 
name="RollbackRequest"/><wsdl:output message="impl:RollbackResponse" 
name="RollbackResponse"/></wsdl:operation><wsdl:operation 
name="Phase2Rollback"><wsdl:input mess
 age="impl:Phase2RollbackRequest" name="Phase2RollbackRequest"/><wsdl:output 
message="impl:Phase2RollbackResponse" 
name="Phase2RollbackResponse"/></wsdl:operation><wsdl:operation 
name="Readonly"><wsdl:input message="impl:ReadonlyRequest" 
name="ReadonlyRequest"/><wsdl:output message="impl:ReadonlyResponse" 
name="ReadonlyResponse"/></wsdl:operation><wsdl:operation 
name="VolatileAndDurable"><wsdl:input message="impl:VolatileAndDurableRequest" 
name="VolatileAndDurableRequest"/><wsdl:output 
message="impl:VolatileAndDurableResponse" 
name="VolatileAndDurableResponse"/></wsdl:operation><wsdl:operation 
name="EarlyReadonly"><wsdl:input message="impl:EarlyReadonlyRequest" 
name="EarlyReadonlyRequest"/><wsdl:output message="impl:EarlyReadonlyResponse" 
name="EarlyReadonlyResponse"/></wsdl:operation><wsdl:operation 
name="EarlyAborted"><wsdl:input message="impl:EarlyAbortedRequest" 
name="EarlyAbortedRequest"/><wsdl:output message="impl:EarlyAbortedResponse" 
name="EarlyAbortedResponse"/></wsd
 l:operation><wsdl:operation name="ReplayAbort"><wsdl:input 
message="impl:ReplayAbortRequest" name="ReplayAbortRequest"/><wsdl:output 
message="impl:ReplayAbortResponse" 
name="ReplayAbortResponse"/></wsdl:operation><wsdl:operation 
name="ReplayCommit"><wsdl:input message="impl:ReplayCommitRequest" 
name="ReplayCommitRequest"/><wsdl:output message="impl:ReplayCommitResponse" 
name="ReplayCommitResponse"/></wsdl:operation><wsdl:operation 
name="RetryPreparedCommit"><wsdl:input 
message="impl:RetryPreparedCommitRequest" 
name="RetryPreparedCommitRequest"/><wsdl:output 
message="impl:RetryPreparedCommitResponse" 
name="RetryPreparedCommitResponse"/></wsdl:operation><wsdl:operation 
name="RetryPreparedAbort"><wsdl:input message="impl:RetryPreparedAbortRequest" 
name="RetryPreparedAbortRequest"/><wsdl:output 
message="impl:RetryPreparedAbortResponse" 
name="RetryPreparedAbortResponse"/></wsdl:operation><wsdl:operation 
name="RetryCommit"><wsdl:input message="impl:RetryCommitRequest" name="RetryC
 ommitRequest"/><wsdl:output message="impl:RetryCommitResponse" 
name="RetryCommitResponse"/></wsdl:operation><wsdl:operation 
name="RetryReplay"><wsdl:input message="impl:RetryReplayRequest" 
name="RetryReplayRequest"/><wsdl:output message="impl:RetryReplayResponse" 
name="RetryReplayResponse"/></wsdl:operation><wsdl:operation 
name="PreparedAfterTimeout"><wsdl:input 
message="impl:PreparedAfterTimeoutRequest" 
name="PreparedAfterTimeoutRequest"/><wsdl:output 
message="impl:PreparedAfterTimeoutResponse" 
name="PreparedAfterTimeoutResponse"/></wsdl:operation><wsdl:operation 
name="LostCommitted"><wsdl:input message="impl:LostCommittedRequest" 
name="LostCommittedRequest"/><wsdl:output message="impl:LostCommittedResponse" 
name="LostCommittedResponse"/></wsdl:operation><wsdl:operation 
name="ParticipantClosed"><wsdl:input message="impl:ParticipantClosedRequest" 
name="ParticipantClosedRequest"/><wsdl:output 
message="impl:ParticipantClosedResponse" 
name="ParticipantClosedResponse"/></wsdl:op
 eration><wsdl:operation name="ParticipantCompensated"><wsdl:input 
message="impl:ParticipantCompensatedRequest" 
name="ParticipantCompensatedRequest"/><wsdl:output 
message="impl:ParticipantCompensatedResponse" 
name="ParticipantCompensatedResponse"/></wsdl:operation><wsdl:operation 
name="ParticipantCanceled"><wsdl:input 
message="impl:ParticipantCanceledRequest" 
name="ParticipantCanceledRequest"/><wsdl:output 
message="impl:ParticipantCanceledResponse" 
name="ParticipantCanceledResponse"/></wsdl:operation><wsdl:operation 
name="ParticipantExit"><wsdl:input message="impl:ParticipantExitRequest" 
name="ParticipantExitRequest"/><wsdl:output 
message="impl:ParticipantExitResponse" 
name="ParticipantExitResponse"/></wsdl:operation><wsdl:operation 
name="ParticipantFault"><wsdl:input message="impl:ParticipantFaultRequest" 
name="ParticipantFaultRequest"/><wsdl:output 
message="impl:ParticipantFaultResponse" 
name="ParticipantFaultResponse"/></wsdl:operation><wsdl:operation 
name="ParticipantComp
 ensationFault"><wsdl:input message="impl:ParticipantCompensationFaultRequest" 
name="ParticipantCompensationFaultRequest"/><wsdl:output 
message="impl:ParticipantCompensationFaultResponse" 
name="ParticipantCompensationFaultResponse"/></wsdl:operation><wsdl:operation 
name="CompletionCommit"><wsdl:input message="impl:CompletionCommitRequest" 
name="CompletionCommitRequest"/><wsdl:output 
message="impl:CompletionCommitResponse" 
name="CompletionCommitResponse"/></wsdl:operation><wsdl:operation 
name="CompletionRollback"><wsdl:input message="impl:CompletionRollbackRequest" 
name="CompletionRollbackRequest"/><wsdl:output 
message="impl:CompletionRollbackResponse" 
name="CompletionRollbackResponse"/></wsdl:operation><wsdl:operation 
name="InvalidProtocol"><wsdl:input message="impl:InvalidProtocolRequest" 
name="InvalidProtocolRequest"/><wsdl:output 
message="impl:InvalidProtocolResponse" 
name="InvalidProtocolResponse"/></wsdl:operation></wsdl:portType><wsdl:binding 
name="InteropServiceSoapBin
 ding" type="impl:InteropService"><wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation 
name="Commit"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="CommitRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="literal"/></wsdl:input><wsdl:output name="CommitResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="Rollback"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="RollbackRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="literal"/></wsdl:input><wsdl:output name="RollbackResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="Phase2Rollback"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="Phase2RollbackRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="liter
 al"/></wsdl:input><wsdl:output name="Phase2RollbackResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="Readonly"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="ReadonlyRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="literal"/></wsdl:input><wsdl:output name="ReadonlyResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="VolatileAndDurable"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="VolatileAndDurableRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="VolatileAndDurableResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="EarlyReadonly"><wsdlsoap:operation soapAction="urn:foo"/
 ><wsdl:input name="EarlyReadonlyRequest"><wsdlsoap:body 
 >namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
 >name="EarlyReadonlyResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
 >name="EarlyAborted"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
 >name="EarlyAbortedRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
 >use="literal"/></wsdl:input><wsdl:output 
 >name="EarlyAbortedResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
 >name="ReplayAbort"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
 >name="ReplayAbortRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
 >use="literal"/></wsdl:input><wsdl:output 
 >name="ReplayAbortResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></ws
 dl:operation><wsdl:operation name="ReplayCommit"><wsdlsoap:operation 
soapAction="urn:foo"/><wsdl:input name="ReplayCommitRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="ReplayCommitResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="RetryPreparedCommit"><wsdlsoap:operation 
soapAction="urn:foo"/><wsdl:input 
name="RetryPreparedCommitRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="RetryPreparedCommitResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="RetryPreparedAbort"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="RetryPreparedAbortRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="RetryPrep
 aredAbortResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="RetryCommit"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="RetryCommitRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="literal"/></wsdl:input><wsdl:output 
name="RetryCommitResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="RetryReplay"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="RetryReplayRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="literal"/></wsdl:input><wsdl:output 
name="RetryReplayResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="PreparedAfterTimeout"><wsdlsoap:operation 
soapAction="urn:foo"/><wsdl:input name="PreparedAfterTimeoutRequest"
 ><wsdlsoap:body namespace="http://fabrikam123.com"; 
 >use="literal"/></wsdl:input><wsdl:output 
 >name="PreparedAfterTimeoutResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
 >name="LostCommitted"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
 >name="LostCommittedRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
 >use="literal"/></wsdl:input><wsdl:output 
 >name="LostCommittedResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
 >name="ParticipantClosed"><wsdlsoap:operation 
 >soapAction="urn:foo"/><wsdl:input 
 >name="ParticipantClosedRequest"><wsdlsoap:body 
 >namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
 >name="ParticipantClosedResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation
 ><wsdl:operation name="ParticipantCompensated"><wsdlsoap:operation 
 >soapAction="urn:foo"/><wsdl:input 
 >name="ParticipantCompensatedRequest"><wsdlsoap:body 
 >namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
 >name="ParticipantCompensatedResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
 >name="ParticipantCanceled"><wsdlsoap:operation 
 >soapAction="urn:foo"/><wsdl:input 
 >name="ParticipantCanceledRequest"><wsdlsoap:body 
 >namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
 >name="ParticipantCanceledResponse"><wsdlsoap:body 
 >namespace="http://localhost:8989/wstx/services/InteropService"; 
 >use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
 >name="ParticipantExit"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
 >name="ParticipantExitRequest"><wsdlsoap:body 
 >namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
 >nam
 e="ParticipantExitResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="ParticipantFault"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="ParticipantFaultRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="ParticipantFaultResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="ParticipantCompensationFault"><wsdlsoap:operation 
soapAction="urn:foo"/><wsdl:input 
name="ParticipantCompensationFaultRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="ParticipantCompensationFaultResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="CompletionCommit"><wsdlsoap:operati
 on soapAction="urn:foo"/><wsdl:input 
name="CompletionCommitRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="CompletionCommitResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="CompletionRollback"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="CompletionRollbackRequest"><wsdlsoap:body 
namespace="http://fabrikam123.com"; use="literal"/></wsdl:input><wsdl:output 
name="CompletionRollbackResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wstx/services/InteropService"; 
use="literal"/></wsdl:output></wsdl:operation><wsdl:operation 
name="InvalidProtocol"><wsdlsoap:operation soapAction="urn:foo"/><wsdl:input 
name="InvalidProtocolRequest"><wsdlsoap:body namespace="http://fabrikam123.com"; 
use="literal"/></wsdl:input><wsdl:output 
name="InvalidProtocolResponse"><wsdlsoap:body 
namespace="http://localhost:8989/wst
 x/services/InteropService" 
use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service 
name="InteropServiceService"><wsdl:port 
binding="impl:InteropServiceSoapBinding" 
name="InteropService"><wsdlsoap:address 
location="http://localhost:8081/axis/services/InteropService"/></wsdl:port></wsdl:service></wsdl:definitions>
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/samples/interopibm/build.xml
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/build.xml?rev=365405&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/interopibm/build.xml 
(added)
+++ webservices/kandula/branches/Kandula_1/src/samples/interopibm/build.xml Mon 
Jan  2 11:21:39 2006
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<project name="kandula"
+        default="compile"
+        basedir=".">
+
+        <property name="src.dir" value="src" />         
+        <property name="build.dir" value="build" />
+        <property name="home.dir" value="../../.." />
+        
+        <property file="${home.dir}/build.properties" />                
+        
+        <path id="base.classpath">
+               <fileset dir="${home.dir}/target/lib" >
+                       <include name="**/*.jar" />
+               </fileset>
+               <fileset dir="${home.dir}/target" >
+                       <include name="**/*.jar" />
+               </fileset>              
+        </path>
+        
+        <taskdef resource="axis-tasks.properties"  
classpathref="base.classpath" />
+        
+        <target name="compile" depends="wsdl2java" >
+               <javac srcdir="${src.dir};${build.dir}/src" 
destdir="${build.dir}">
+                       <classpath refid="base.classpath" />
+               </javac>
+        </target>
+        
+        <target name="clean" >
+               <delete dir="${build.dir}" />   
+        </target> 
+
+        <target name="init" >
+               <mkdir dir="${build.dir}" />
+               <mkdir dir="${build.dir}/src" />
+        </target>
+        
+        <target name="wsdl2java" depends="init">
+                <axis-wsdl2java
+                       output="${build.dir}/src"
+                       serverside = "false"
+                       testcase = "false"
+                       url= "InteropService.wsdl" >                    
+                       <mapping 
namespace="http://localhost:8989/wstx/services/InteropService"; package="" />
+                </axis-wsdl2java>
+       </target>
+       
+       <target name="dist" depends="compile">
+               <jar jarfile="${build.dir}/interop-ibm.jar">
+                       <fileset dir="${build.dir}">
+                               <include name="**/*.class" />
+                       </fileset>
+               </jar>
+       </target>
+       
+       <target name="test" >
+               <junit printsummary="withOutAndErr" >
+                       <formatter type="plain"/>
+                       <classpath>                             
+                               <path refid="base.classpath" />
+                               <fileset dir="${basedir}/build" 
includes="*.jar" />
+                               <pathelement location="${ws-tx.dir}/conf" />
+                       </classpath>
+                       <test name="InteropServiceTestCase" />
+               </junit>
+        </target>
+</project>
\ No newline at end of file

Added: 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/client-config.wsdd
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/client-config.wsdd?rev=365405&view=auto
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/client-config.wsdd
 (added)
+++ 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/client-config.wsdd
 Mon Jan  2 11:21:39 2006
@@ -0,0 +1,71 @@
+<!-- a barebone jboss.net/axis client configuration which includes some basic 
typemappings related to jboss -->
+
+<deployment name="defaultClientConfig"
+            xmlns="http://xml.apache.org/axis/wsdd/";
+            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
+
+  <globalConfiguration>
+       <parameter name="sendMultiRefs" value="false"/>
+       <parameter name="disablePrettyXML" value="true"/>
+        
+        <requestFlow>
+
+               <handler 
type="java:org.apache.axis.message.addressing.handler.AddressingHandler" />
+               <handler type="java:SetCoordCtxHandler" />
+        </requestFlow>
+        <responseFlow>
+               <handler 
type="java:org.apache.axis.message.addressing.handler.AddressingHandler" />     
   
+        </responseFlow>
+  </globalConfiguration>
+
+  <transport name="http" 
pivot="java:org.apache.axis.transport.http.HTTPSender">
+       <requestFlow>           
+       </requestFlow>
+       <responseFlow>          
+       </responseFlow> 
+  </transport>
+
+ <transport name="local" 
pivot="java:org.apache.axis.transport.local.LocalSender"/>
+ <transport name="java" 
pivot="java:org.apache.axis.transport.java.JavaSender"/>
+
+<typeMapping
+       xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing";
+      deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:EndpointReference" 
+      serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
+      type="java:org.apache.axis.message.addressing.EndpointReferenceType"/>
+
+ <typeMapping
+       xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"; 
+      deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:ReferencePropertiesType" 
+      serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.ReferencePropertiesType"/>
+
+ <typeMapping 
+       xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing";
+      deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:Address" 
+      serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.Address"/>
+
+ <typeMapping 
+       xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing";
+      deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:PortType" 
+      serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.PortType" />
+
+ <typeMapping 
+       xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing";
+      deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:ServiceNameType" 
+      serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.ServiceNameType" />
+
+</deployment>

Added: 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InitiatorApp.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InitiatorApp.java?rev=365405&view=auto
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InitiatorApp.java
 (added)
+++ 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InitiatorApp.java
 Mon Jan  2 11:21:39 2006
@@ -0,0 +1,159 @@
+
+import java.net.URL;
+
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.ws.transaction.coordinator.ActivationStub;
+import org.apache.ws.transaction.coordinator.CoordinationContext;
+import org.apache.ws.transaction.coordinator.at.ATCoordinator;
+import org.apache.ws.transaction.coordinator.at.CompletionCoordinatorStub;
+import org.apache.ws.transaction.utility.TCPSnifferHelper;
+
+/*
+ * Created on Dec 29, 2005
+ *
+ */
+
+/**
+ * @author Dasarath Weeratunge
+ *  
+ */
+public class InitiatorApp {
+       
+       private final String IBM_INTEROP_SERVICE = 
"http://wsi.alphaworks.ibm.com:8080/wstx/services/InteropService";;
+       
+       private final String KANDULA_INTEROP_SERVICE = 
"http://localhost:8081/axis/services/InteropService";;
+
+       private final String KANDULA_ACTIVATION_SERVICE = 
"http://localhost:8081/axis/services/Activation";;
+       
+       private String eprOfInteropService = KANDULA_INTEROP_SERVICE;
+
+       private InteropService_PortType getInteropService() throws Exception {
+               return new InteropServiceServiceLocator().getInteropService(new 
URL(
+                               
TCPSnifferHelper.redirect(eprOfInteropService)));
+       }
+
+       public void testCompletionCommit() throws Exception {
+               
getInteropService().completionCommit(KANDULA_ACTIVATION_SERVICE);
+       }
+
+       public void testCompletionRollback() throws Exception {
+               
getInteropService().completionRollback(KANDULA_ACTIVATION_SERVICE);
+       }
+
+       public void testCommit() throws Exception {
+               begin();
+               getInteropService().commit(null);
+               commit();
+       }
+
+       public void testRollback() throws Exception {
+               begin();
+               getInteropService().rollback(null);
+               rollback();
+       }
+
+       public void testPhase2Rollback() throws Exception {
+               begin();
+               getInteropService().phase2Rollback(null);
+               commit();
+       }
+
+       public void testReadonly() throws Exception {
+               begin();
+               getInteropService().readonly(null);
+               commit();
+       }
+
+       public void testVolatileAndDurable() throws Exception {
+               begin();
+               getInteropService().volatileAndDurable(null);
+               commit();
+       }
+
+       public void testEarlyReadonly() throws Exception {
+               begin();
+               getInteropService().earlyReadonly(null);
+               commit();
+       }
+
+       public void testEarlyAborted() throws Exception {
+               begin();
+               getInteropService().earlyAborted(null);
+       }
+
+       public void testReplayAbort() throws Exception {
+               begin();
+               getInteropService().replayAbort(null);
+               commit();
+       }
+
+       public void testReplayCommit() throws Exception {
+               begin();
+               getInteropService().replayCommit(null);
+               commit();
+       }
+
+       public void testRetryPreparedCommit() throws Exception {
+               begin();
+               getInteropService().retryPreparedCommit(null);
+               commit();
+       }
+
+       public void testRetryPreparedAbort() throws Exception {
+               begin();
+               getInteropService().retryPreparedAbort(null);
+               commit();
+       }
+
+       public void testRetryCommit() throws Exception {
+               begin();
+               getInteropService().retryCommit(null);
+               commit();
+       }
+
+       public void testRetryReplay() throws Exception {
+               begin();
+               getInteropService().retryReplay(null);
+               commit();
+       }
+
+       public void testPreparedAfterTimeout() throws Exception {
+               begin();
+               getInteropService().preparedAfterTimeout(null);
+               commit();
+       }
+
+       public void testLostCommitted() throws Exception {
+               begin();
+               getInteropService().lostCommitted(null);
+               commit();
+       }
+
+       public static void main(String[] args) throws Exception {
+               new InitiatorApp().testPreparedAfterTimeout();
+       }
+
+       EndpointReference cps;
+
+       CoordinationContext ctx;
+
+       public void begin() throws Exception {
+               ActivationStub stub = new ActivationStub(new EndpointReference(
+                               
"http://localhost:8081/axis/services/Activation";));
+               ctx = 
stub.createCoordinationContext(ATCoordinator.COORDINATION_TYPE_ID);
+               cps = ctx.register(ATCoordinator.PROTOCOL_ID_COMPLETION,
+                       new EndpointReference(
+                                       
"http://localhost:8081/axis/services/CompletionInitiator";));
+               SetCoordCtxHandler.setCtx(ctx);
+       }
+
+       public void commit() throws Exception {
+               SetCoordCtxHandler.setCtx(null);
+               new CompletionCoordinatorStub(cps).commitOperation(null);
+       }
+
+       public void rollback() throws Exception {
+               SetCoordCtxHandler.setCtx(null);
+               new CompletionCoordinatorStub(cps).rollbackOperation(null);
+       }
+}
\ No newline at end of file

Added: 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InteropServiceSoapBindingImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InteropServiceSoapBindingImpl.java?rev=365405&view=auto
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InteropServiceSoapBindingImpl.java
 (added)
+++ 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/InteropServiceSoapBindingImpl.java
 Mon Jan  2 11:21:39 2006
@@ -0,0 +1,326 @@
+
+import java.rmi.RemoteException;
+
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
+
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.axis.types.URI.MalformedURIException;
+import org.apache.ws.transaction.coordinator.at.AT2PCStatus;
+import org.apache.ws.transaction.coordinator.at.AbstractParticipant;
+import org.apache.ws.transaction.coordinator.at.TransactionImpl;
+import org.apache.ws.transaction.coordinator.at.TransactionManagerImpl;
+
+/**
+ * InteropServiceSoapBindingImpl.java
+ *  
+ */
+
+public class InteropServiceSoapBindingImpl implements InteropService_PortType {
+
+       TransactionManagerImpl tm = TransactionManagerImpl.getInstance();
+
+       public java.lang.String commit(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String rollback(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       private class XA_OKParticipant extends AbstractParticipant {
+               int status = AT2PCStatus.ACTIVE;
+
+               protected int prepare() throws XAException {
+                       status = AT2PCStatus.PREPARED;
+                       return XAResource.XA_OK;
+               }
+
+               protected void commit() throws XAException {
+                       if (status == AT2PCStatus.PREPARED)
+                               status = AT2PCStatus.NONE;
+                       else
+                               throw new XAException();
+               }
+
+               protected void rollback() throws XAException {
+                       if (status == AT2PCStatus.ACTIVE || status == 
AT2PCStatus.PREPARED)
+                               status = AT2PCStatus.NONE;
+                       else
+                               throw new XAException();
+               }
+
+               protected void forget() {
+                       status = AT2PCStatus.NONE;
+               }
+
+               protected int getStatus() {
+                       return status;
+               }
+       }
+
+       private class XAExceptionParticipant extends XA_OKParticipant {
+
+               protected int prepare() throws XAException {
+                       throw new XAException();
+               }
+       }
+
+       public java.lang.String phase2Rollback(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               TransactionImpl tx = tm.getTransaction();
+
+               tx.enlistParticipant(false, new XA_OKParticipant());
+               tx.enlistParticipant(true, new XAExceptionParticipant());
+
+               return null;
+       }
+
+       private class ReadonlyParticipant extends XA_OKParticipant {
+
+               protected int prepare() throws XAException {
+                       return XAResource.XA_RDONLY;
+               }
+       }
+
+       public java.lang.String readonly(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               TransactionImpl tx = tm.getTransaction();
+
+               tx.enlistParticipant(true, new ReadonlyParticipant());
+               tx.enlistParticipant(true, new XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String volatileAndDurable(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               final TransactionImpl tx = tm.getTransaction();
+
+               tx.enlistParticipant(false, new XA_OKParticipant() {
+
+                       protected int prepare() throws XAException {
+                               try {
+
+                                       tx.enlistParticipant(true, new 
XA_OKParticipant());
+
+                               } catch (RemoteException e) {
+                                       e.printStackTrace();
+                                       throw new RuntimeException(e);
+                               }
+
+                               return XAResource.XA_RDONLY;
+                       }
+
+               });
+
+               return null;
+       }
+
+       private class NotificationSenderParticipant extends XA_OKParticipant {
+
+               public void sendReadonly() throws RemoteException {
+                       getCoordinator().readOnlyOperation(null);
+                       status = AT2PCStatus.NONE;
+               }
+
+               public void sendAborted() throws RemoteException {
+                       getCoordinator().abortedOperation(null);
+                       status = AT2PCStatus.NONE;
+               }
+
+       }
+
+       public java.lang.String earlyReadonly(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               TransactionImpl tx = tm.getTransaction();
+
+               NotificationSenderParticipant foo = new 
NotificationSenderParticipant();
+               tx.enlistParticipant(false, foo);
+               tx.enlistParticipant(true, new XA_OKParticipant());
+               foo.sendReadonly();
+
+               return null;
+       }
+
+       public java.lang.String earlyAborted(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               TransactionImpl tx = tm.getTransaction();
+
+               NotificationSenderParticipant foo = new 
NotificationSenderParticipant();
+               tx.enlistParticipant(false, foo);
+               tx.enlistParticipant(true, new XA_OKParticipant());
+               foo.sendAborted();
+
+               return null;
+       }
+
+       public java.lang.String replayAbort(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant() {
+                       protected int prepare() throws XAException {
+
+                               try {
+                                       getCoordinator().replayOperation(null);
+                               } catch (RemoteException e) {
+                                       e.printStackTrace();
+                                       throw new RuntimeException(e);
+                               }
+
+                               return XAResource.XA_OK;
+
+                       }
+               });
+
+               return null;
+       }
+
+       public java.lang.String replayCommit(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant() {
+                       protected void commit() throws XAException {
+
+                               try {
+                                       getCoordinator().replayOperation(null);
+                               } catch (RemoteException e) {
+                                       e.printStackTrace();
+                                       throw new RuntimeException(e);
+                               }
+                       }
+               });
+
+               return null;
+       }
+
+       public java.lang.String retryPreparedCommit(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String retryPreparedAbort(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String retryCommit(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String retryReplay(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String preparedAfterTimeout(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               TransactionImpl tx = tm.getTransaction();
+
+               tx.enlistParticipant(false, new XA_OKParticipant());
+               tx.enlistParticipant(true, new XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String lostCommitted(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               tm.getTransaction().enlistParticipant(true, new 
XA_OKParticipant());
+
+               return null;
+       }
+
+       public java.lang.String participantClosed(java.lang.String part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+       public java.lang.String participantCompensated(java.lang.String part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+       public java.lang.String participantCanceled(java.lang.String part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+       public java.lang.String participantExit(java.lang.String part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+       public java.lang.String participantFault(java.lang.String part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+       public java.lang.String participantCompensationFault(java.lang.String 
part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+       public java.lang.String completionCommit(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               try {
+                       tm.begin(new EndpointReference(part));
+               } catch (MalformedURIException e) {
+                       e.printStackTrace();
+                       throw new RemoteException(e.getMessage());
+               }
+
+               tm.commit();
+
+               return null;
+       }
+
+       public java.lang.String completionRollback(java.lang.String part)
+                       throws java.rmi.RemoteException {
+
+               try {
+                       tm.begin(new EndpointReference(part));
+               } catch (MalformedURIException e) {
+                       e.printStackTrace();
+                       throw new RemoteException(e.getMessage());
+               }
+
+               tm.rollback();
+
+               return null;
+       }
+
+       public java.lang.String invalidProtocol(java.lang.String part)
+                       throws java.rmi.RemoteException {
+               return null;
+       }
+
+}
\ No newline at end of file

Added: 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/ManInTheMiddle.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/ManInTheMiddle.java?rev=365405&view=auto
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/ManInTheMiddle.java
 (added)
+++ 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/ManInTheMiddle.java
 Mon Jan  2 11:21:39 2006
@@ -0,0 +1,362 @@
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/*
+ * Created on Dec 21, 2005
+ *
+ */
+
+/**
+ * @author Dasarath Weeratunge
+ *  
+ */
+public class ManInTheMiddle {
+
+       public static interface TestOrchestrator {
+
+               boolean onPrepareMsg(String msg);
+
+               boolean onPreparedMsg(String msg);
+
+               boolean onCommitMsg(String msg);
+
+               boolean onCommittedMsg(String msg);
+
+               boolean onRollbackMsg(String msg);
+
+               boolean onAbortedMsg(String msg);
+
+               boolean onReplayMsg(String msg);
+
+       }
+
+       public static class TestOrchestratorImpl implements TestOrchestrator {
+
+               protected int stage = 0;
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onPrepareMsg(java.lang.String)
+                */
+               public synchronized boolean onPrepareMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onPreparedMsg(java.lang.String)
+                */
+               public synchronized boolean onPreparedMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onCommitMsg(java.lang.String)
+                */
+               public synchronized boolean onCommitMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onCommittedMsg(java.lang.String)
+                */
+               public synchronized boolean onCommittedMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onRollbackMsg(java.lang.String)
+                */
+               public synchronized boolean onRollbackMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onAbortedMsg(java.lang.String)
+                */
+               public synchronized boolean onAbortedMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+               /*
+                * (non-Javadoc)
+                * 
+                * @see 
ManInTheMiddle.TestOrchestrator#onReplayMsg(java.lang.String)
+                */
+               public synchronized boolean onReplayMsg(String msg) {
+                       // TODO Auto-generated method stub
+                       return false;
+               }
+
+       }
+
+       public static class RetryPreparedCommitTestOrchestratorImpl extends
+                       TestOrchestratorImpl {
+
+               public synchronized boolean onPrepareMsg(String msg) {
+                       if (stage == 0) {
+                               stage = 5;
+                               return false;
+                       }
+                       return true;
+               }
+
+               public synchronized boolean onPreparedMsg(String msg) {
+                       if (stage == 5) {
+                               stage = 6;
+                               return true;
+                       } else
+                               return stage < 6;
+               }
+       }
+
+       public static class RetryPreparedAbortTestOrchestratorImpl extends
+                       RetryPreparedCommitTestOrchestratorImpl {
+
+               public synchronized boolean onPreparedMsg(String msg) {
+                       if (stage == 6)
+                               stage = 8;
+                       return stage < 6;
+               }
+
+               public synchronized boolean onRollbackMsg(String msg) {
+                       if (stage == 5) {
+                               stage = 6;
+                               return true;
+                       }
+                       return !(stage > 7);
+               }
+       }
+
+       public static class PreparedAfterTimeoutTestOrchestratorImpl extends
+                       TestOrchestratorImpl {
+
+               public synchronized boolean onPrepareMsg(String msg) {
+                       if (stage == 0) {
+                               stage = 6;
+                               return false;
+                       } else if (stage == 7) {
+                               stage = 8;
+                               return false;
+                       }
+                       return true;
+               }
+
+               public synchronized boolean onPreparedMsg(String msg) {
+                       if (stage == 6) {
+                               stage = 7;
+                               return false;
+                       }
+                       // TODO:
+                       // requires further verification using a TCP sniffer 
since the
+                       // 2 Prepared messages may not be received before the 
3rd Rollback is issued.
+                       return !(stage > 10);
+               }
+
+               public synchronized boolean onRollbackMsg(String msg) {
+                       if (stage == 8) {
+                               stage = 10;
+                               return true;
+                       } else if (stage == 10) {
+                               stage = 11;
+                               return true;
+                       }
+                       return false;
+               }
+       }
+
+       public static class RetryCommitTestOrchestratorImpl extends
+                       TestOrchestratorImpl {
+
+               public synchronized boolean onPreparedMsg(String msg) {
+                       if (stage == 0) {
+                               stage = 6;
+                               return false;
+                       }
+                       return stage >= 6;
+               }
+
+               public synchronized boolean onCommitMsg(String msg) {
+                       if (stage == 6) {
+                               stage = 7;
+                               return true;
+                       }
+                       return false;
+               }
+       }
+
+       public static class LostCommittedTestOrchestratorImpl extends
+                       TestOrchestratorImpl {
+
+               public synchronized boolean onCommittedMsg(String msg) {
+                       return true;
+               }
+
+       }
+
+       public static class ReplayAbortTestOrchestratorImpl extends
+                       RetryPreparedCommitTestOrchestratorImpl {
+
+               public synchronized boolean onPreparedMsg(String msg) {
+                       return true;
+               }
+
+       }
+
+       public static class ReplayCommitTestOrchestratorImpl extends
+                       TestOrchestratorImpl {
+
+               public synchronized boolean onCommittedMsg(String msg) {
+                       return stage != 5;
+               }
+
+               public synchronized boolean onReplayMsg(String msg) {
+                       stage = 5;
+                       return false;
+               }
+       }
+
+       /**
+        * @param testOrchestrator
+        */
+       public ManInTheMiddle(TestOrchestrator testOrchestrator) {
+               this.testOrchestrator = testOrchestrator;
+       }
+
+       private TestOrchestrator testOrchestrator;
+
+       private boolean dropMsg(String msg) {
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepare\"";) != -1)
+                       return testOrchestrator.onPrepareMsg(msg);
+
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepared";) != -1)
+                       return testOrchestrator.onPreparedMsg(msg);
+
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted";) != -1)
+                       return testOrchestrator.onAbortedMsg(msg);
+
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback";) != -1)
+                       return testOrchestrator.onRollbackMsg(msg);
+
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit\"";) != -1)
+                       return testOrchestrator.onCommitMsg(msg);
+
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed";) != -1)
+                       return testOrchestrator.onCommittedMsg(msg);
+
+               if 
(msg.indexOf("http://schemas.xmlsoap.org/ws/2004/10/wsat/Replay";) != -1)
+                       return testOrchestrator.onReplayMsg(msg);
+
+               return false;
+       }
+
+       private void forward(final int srcPort, final int destPort)
+                       throws IOException {
+
+               new Thread() {
+                       public void run() {
+
+                               ServerSocket s;
+
+                               try {
+                                       s = new ServerSocket(srcPort);
+                               } catch (IOException e) {
+                                       e.printStackTrace();
+                                       throw new RuntimeException(e);
+                               }
+
+                               while (true) {
+
+                                       final Socket inS;
+
+                                       try {
+                                               inS = s.accept();
+                                       } catch (IOException e) {
+                                               e.printStackTrace();
+                                               throw new RuntimeException(e);
+                                       }
+
+                                       new Thread() {
+                                               public void run() {
+                                                       int n;
+                                                       byte buf1[] = new 
byte[1024];
+                                                       ByteArrayOutputStream 
buf2 = new ByteArrayOutputStream();
+
+                                                       try {
+
+                                                               buf2.reset();
+                                                               InputStream is 
= inS.getInputStream();
+                                                               while 
(buf2.toString().indexOf(
+                                                                       
"</soapenv:Envelope>") == -1
+                                                                               
&& (n = is.read(buf1)) > 0) {
+                                                                       
buf2.write(buf1, 0, n);
+                                                               }
+
+                                                               if 
(dropMsg(buf2.toString())) {
+                                                                       
System.out.println();
+                                                                       
System.out.println(buf2.toString());
+
+                                                                       
inS.close();
+                                                                       return;
+                                                               }
+
+                                                               Socket outS = 
new Socket("127.0.0.1", destPort);
+
+                                                               OutputStream os 
= outS.getOutputStream();
+                                                               
os.write(buf2.toByteArray());
+
+                                                               is = 
outS.getInputStream();
+                                                               buf2.reset();
+                                                               while 
(buf2.toString().indexOf(
+                                                                       
"</soapenv:Envelope>") == -1
+                                                                               
&& (n = is.read(buf1)) > 0)
+                                                                       
buf2.write(buf1, 0, n);
+
+                                                               os = 
inS.getOutputStream();
+                                                               
os.write(buf2.toByteArray());
+
+                                                               inS.close();
+                                                               outS.close();
+
+                                                       } catch (Exception e) {
+                                                               
e.printStackTrace();
+                                                               throw new 
RuntimeException(e);
+                                                       }
+                                               }
+                                       }.start();
+                               }
+                       }
+               }.start();
+       }
+
+       public static void main(String[] args) throws Exception {
+
+               ManInTheMiddle middleMan = new ManInTheMiddle(
+                               new 
ManInTheMiddle.PreparedAfterTimeoutTestOrchestratorImpl());
+               middleMan.forward(8081, 8083);
+               //      middleMan.forward(8082, 8084);
+
+       }
+
+}
\ No newline at end of file

Added: 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/SetCoordCtxHandler.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/SetCoordCtxHandler.java?rev=365405&view=auto
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/SetCoordCtxHandler.java
 (added)
+++ 
webservices/kandula/branches/Kandula_1/src/samples/interopibm/src/SetCoordCtxHandler.java
 Mon Jan  2 11:21:39 2006
@@ -0,0 +1,45 @@
+/*
+ * Copyright  2004 The Apache Software Foundation.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+import javax.xml.soap.SOAPHeader;
+
+import org.apache.axis.AxisFault;
+import org.apache.axis.MessageContext;
+import org.apache.axis.handlers.BasicHandler;
+import org.apache.ws.transaction.coordinator.CoordinationContext;
+
+/**
+ * @author Dasarath Weeratunge
+ */
+public class SetCoordCtxHandler extends BasicHandler {
+       private static CoordinationContext ctx;
+
+       public static void setCtx(CoordinationContext ctx) {
+               SetCoordCtxHandler.ctx = ctx;
+       }
+
+       public void invoke(MessageContext msgContext) throws AxisFault {
+               if (ctx != null) {
+                       try {
+                               SOAPHeader header = 
msgContext.getCurrentMessage().getSOAPEnvelope().getHeader();
+                               ctx.toSOAPHeaderElement(header);
+                       } catch (Exception e) {
+                               throw AxisFault.makeFault(e);
+                       }
+               }
+       }
+}
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to