Search in sources :

Example 1 with CreateCoordinationContextResponseType

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);
    }
}
Also used : ActivationCoordinatorClient(com.arjuna.webservices11.wscoor.client.ActivationCoordinatorClient) QName(javax.xml.namespace.QName) SoapFault11(com.arjuna.webservices11.SoapFault11) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) SOAPFault(javax.xml.soap.SOAPFault) Expires(org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires) IOException(java.io.IOException) MAP(org.jboss.ws.api.addressing.MAP) CreateCoordinationContextResponseType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType) Detail(javax.xml.soap.Detail) InvalidCreateParametersException(com.arjuna.wsc.InvalidCreateParametersException)

Example 2 with CreateCoordinationContextResponseType

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);
}
Also used : CreateCoordinationContextType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextType) CreateCoordinationContextDetails(com.arjuna.wsc.tests.arq.TestActivationCoordinatorProcessor.CreateCoordinationContextDetails) Expires(org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires) MAP(org.jboss.ws.api.addressing.MAP) CreateCoordinationContextResponseType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType)

Example 3 with 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());
}
Also used : CoordinationContext(org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext)

Example 4 with CreateCoordinationContextResponseType

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());
}
Also used : CreateCoordinationContextType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextType) CreateCoordinationContextDetails(com.arjuna.wsc.tests.arq.TestActivationCoordinatorProcessor.CreateCoordinationContextDetails) MAP(org.jboss.ws.api.addressing.MAP) CreateCoordinationContextResponseType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType) CoordinationContext(org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext)

Example 5 with CreateCoordinationContextResponseType

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;
}
Also used : ProtocolException(javax.xml.ws.ProtocolException) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) SOAPFactory(javax.xml.soap.SOAPFactory) CoordinationContext(org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext) W3CEndpointReferenceBuilder(javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder) SOAPFault(javax.xml.soap.SOAPFault) CreateCoordinationContextType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextType) CoordinationContextType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType) CreateCoordinationContextResponseType(org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType)

Aggregations

CreateCoordinationContextResponseType (org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType)4 MAP (org.jboss.ws.api.addressing.MAP)3 CoordinationContext (org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext)3 CreateCoordinationContextType (org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextType)3 CreateCoordinationContextDetails (com.arjuna.wsc.tests.arq.TestActivationCoordinatorProcessor.CreateCoordinationContextDetails)2 SOAPFault (javax.xml.soap.SOAPFault)2 SOAPFaultException (javax.xml.ws.soap.SOAPFaultException)2 Expires (org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires)2 SoapFault11 (com.arjuna.webservices11.SoapFault11)1 ActivationCoordinatorClient (com.arjuna.webservices11.wscoor.client.ActivationCoordinatorClient)1 InvalidCreateParametersException (com.arjuna.wsc.InvalidCreateParametersException)1 IOException (java.io.IOException)1 QName (javax.xml.namespace.QName)1 Detail (javax.xml.soap.Detail)1 SOAPFactory (javax.xml.soap.SOAPFactory)1 ProtocolException (javax.xml.ws.ProtocolException)1 W3CEndpointReferenceBuilder (javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder)1 CoordinationContextType (org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType)1