final W3CEndpointReference endpointReference = coordinationContext.getRegistrationService() ;
try
{
RegisterType registerType = new RegisterType();
RegisterResponseType response;
registerType.setProtocolIdentifier(protocolIdentifier);
registerType.setParticipantProtocolService(participantProtocolService);
RegistrationPortType port = WSCOORClient.getRegistrationPort(endpointReference, CoordinationConstants.WSCOOR_ACTION_REGISTER, messageID);
response = port.registerOperation(registerType);
return response.getCoordinatorProtocolService();
} catch (SOAPFaultException sfe) {
// TODO -- work out which faults we should really throw. in particular do we need to retain SoapFault
final SOAPFault soapFault = sfe.getFault() ;
final QName subcode = soapFault.getFaultCodeAsQName() ;
if (CoordinationConstants.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME.equals(subcode))