use of org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType in project narayana by jbosstm.
the class ActivationCoordinator method createCoordinationContext.
/**
* 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 com.arjuna.wsc.InvalidCreateParametersException if the create parameters are invalid.
* @throws SoapFault for errors during processing.
*/
public static CoordinationContextType createCoordinationContext(final String activationCoordinatorURI, final String messageID, final String coordinationTypeURI, final Long expires, final CoordinationContext currentContext) throws InvalidCreateParametersException, SoapFault {
final MAP map = AddressingHelper.createRequestContext(activationCoordinatorURI, messageID);
final Expires expiresValue;
if (expires == null) {
expiresValue = null;
} else {
expiresValue = new Expires();
expiresValue.setValue(expires.longValue());
}
try {
CreateCoordinationContextResponseType response;
ActivationCoordinatorClient client = ActivationCoordinatorClient.getClient();
response = client.sendCreateCoordination(map, coordinationTypeURI, expiresValue, currentContext);
return response.getCoordinationContext();
} catch (final IOException ioe) {
throw new SoapFault11(ioe);
} catch (SOAPFaultException sfe) {
// TODO -- work out which faults we should really throw. in particular do we need to retain SoapFault
final SOAPFault soapFault = sfe.getFault();
final QName subcode = soapFault.getFaultCodeAsQName();
if (CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME.equals(subcode)) {
Detail detail = soapFault.getDetail();
String message = (detail != null ? detail.getTextContent() : soapFault.getFaultString());
throw new InvalidCreateParametersException(message);
}
throw SoapFault11.create(sfe);
}
}
use of org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType in project narayana by jbosstm.
the class ActivationTest method executeRequestTest.
private void executeRequestTest(final String messageId, final String coordinationType, final Long expires, final CoordinationContext coordinationContext) throws Exception {
final MAP map = AddressingHelper.createRequestContext(TestUtil11.activationCoordinatorService, messageId);
Expires expiresInstance;
if (expires == null) {
expiresInstance = null;
} else {
expiresInstance = new Expires();
expiresInstance.setValue(expires.longValue());
}
CreateCoordinationContextResponseType createCoordinationContextResponseType;
createCoordinationContextResponseType = ActivationCoordinatorClient.getClient().sendCreateCoordination(map, coordinationType, expiresInstance, coordinationContext);
final CreateCoordinationContextDetails details = testActivationCoordinatorProcessor.getCreateCoordinationContextDetails(messageId, 10000);
final CreateCoordinationContextType requestCreateCoordinationContext = details.getCreateCoordinationContext();
final MAP requestMAP = details.getMAP();
assertNotNull(requestMAP.getTo());
assertEquals(requestMAP.getTo(), TestUtil11.activationCoordinatorService);
// we don't care about the reply to field -- this is an RPC style message
// assertNotNull(requestMAP.getReplyTo());
// assertTrue(AddressingHelper.isNoneReplyTo(requestMAP));
assertNotNull(requestMAP.getMessageID());
assertEquals(requestMAP.getMessageID(), messageId);
if (expires == null) {
assertNull(requestCreateCoordinationContext.getExpires());
} else {
assertNotNull(requestCreateCoordinationContext.getExpires());
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 {
assertNotNull(requestCreateCoordinationContext.getCurrentContext().getExpires());
assertEquals(requestCreateCoordinationContext.getCurrentContext().getExpires().getValue(), coordinationContext.getExpires().getValue());
}
assertNotNull(requestCreateCoordinationContext.getCurrentContext().getIdentifier());
assertEquals(requestCreateCoordinationContext.getCurrentContext().getIdentifier().getValue(), coordinationContext.getIdentifier().getValue());
}
assertNotNull(requestCreateCoordinationContext.getCoordinationType());
assertEquals(requestCreateCoordinationContext.getCoordinationType(), coordinationType);
// make sure we got a sensible response
checkResponse(coordinationType, expiresInstance, createCoordinationContextResponseType);
}
use of org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType in project narayana by jbosstm.
the class ActivationTest method checkResponse.
public void checkResponse(final String coordinationType, final Expires expiresInstance, final CreateCoordinationContextResponseType createCoordinationContextResponseType) throws Exception {
CoordinationContext outContext = createCoordinationContextResponseType.getCoordinationContext();
assertNotNull(outContext);
assertEquals(coordinationType, outContext.getCoordinationType());
if (expiresInstance != null) {
assertNotNull(outContext.getExpires());
assertEquals(expiresInstance.getValue(), outContext.getExpires().getValue());
} else {
assertNull(outContext.getExpires());
}
assertNotNull(outContext.getRegistrationService());
}
use of org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType in project narayana by jbosstm.
the class EnduranceTest method doCreateCoordinationContextRequest.
public void doCreateCoordinationContextRequest(final String messageId) throws Exception {
final String coordinationType = TestUtil.COORDINATION_TYPE;
final MAP map = AddressingHelper.createRequestContext(TestUtil11.activationCoordinatorService, messageId);
CreateCoordinationContextResponseType response = ActivationCoordinatorClient.getClient().sendCreateCoordination(map, coordinationType, null, null);
final CreateCoordinationContextDetails details = testActivationCoordinatorProcessor.getCreateCoordinationContextDetails(messageId, 10000);
final CreateCoordinationContextType requestCreateCoordinationContext = details.getCreateCoordinationContext();
final MAP requestMap = details.getMAP();
assertEquals(requestMap.getTo(), TestUtil11.activationCoordinatorService);
assertEquals(requestMap.getMessageID(), messageId);
assertNull(requestCreateCoordinationContext.getExpires());
assertNull(requestCreateCoordinationContext.getCurrentContext());
assertEquals(requestCreateCoordinationContext.getCoordinationType(), coordinationType);
CoordinationContext context = response.getCoordinationContext();
assertNotNull(context);
assertNull(context.getExpires());
assertEquals(context.getCoordinationType(), coordinationType);
assertNotNull(context.getIdentifier());
}
use of org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType in project narayana by jbosstm.
the class TestActivationCoordinatorProcessor method createCoordinationContext.
public CreateCoordinationContextResponseType createCoordinationContext(final CreateCoordinationContextType createCoordinationContext, final MAP map, boolean isSecure) {
final String messageId = map.getMessageID();
synchronized (messageIdMap) {
messageIdMap.put(messageId, new CreateCoordinationContextDetails(createCoordinationContext, map));
messageIdMap.notifyAll();
}
String coordinationType = createCoordinationContext.getCoordinationType();
if (TestUtil.INVALID_CREATE_PARAMETERS_COORDINATION_TYPE.equals(coordinationType)) {
try {
SOAPFactory factory = SOAPFactory.newInstance();
SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME);
soapFault.addDetail().addDetailEntry(CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME).addTextNode("Invalid create parameters");
throw new SOAPFaultException(soapFault);
} catch (Throwable th) {
throw new ProtocolException(th);
}
}
// we have to return a value so lets cook one up
CreateCoordinationContextResponseType createCoordinationContextResponseType = new CreateCoordinationContextResponseType();
CoordinationContext coordinationContext = new CoordinationContext();
coordinationContext.setCoordinationType(coordinationType);
coordinationContext.setExpires(createCoordinationContext.getExpires());
String identifier = nextIdentifier();
CoordinationContextType.Identifier identifierInstance = new CoordinationContextType.Identifier();
identifierInstance.setValue(identifier);
coordinationContext.setIdentifier(identifierInstance);
W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
builder.serviceName(CoordinationConstants.REGISTRATION_SERVICE_QNAME);
builder.endpointName(CoordinationConstants.REGISTRATION_ENDPOINT_QNAME);
builder.address(TestUtil.PROTOCOL_COORDINATOR_SERVICE);
builder.build();
coordinationContext.setRegistrationService(TestUtil11.getRegistrationEndpoint(identifier));
createCoordinationContextResponseType.setCoordinationContext(coordinationContext);
return createCoordinationContextResponseType;
}
Aggregations