Search in sources :

Example 1 with DispatcherDelegate

use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.

the class SenderProducer method produceSender.

/**
 * Produces the correct implementation of a requester depending on the {@link ServiceComponent}
 * annotation at the injection point.
 *
 * @param injectionPoint class where the {@link Sender} is being injected
 * @return the correct requester instance
 * @throws IllegalStateException if the injection point does not have a {@link ServiceComponent}
 *                               annotation
 */
@Produces
public Sender produceSender(final InjectionPoint injectionPoint) {
    final EnvelopeValidator envelopeValidator = new EnvelopeValidator(jsonSchemaValidator, objectMapper, envelopeValidationExceptionHandler);
    final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = new RequestResponseEnvelopeValidator(envelopeValidator, nameToMediaTypeConverter, mediaTypeProvider, envelopeInspector);
    return new DispatcherDelegate(dispatcherCache.dispatcherFor(injectionPoint), systemUserUtil, requestResponseEnvelopeValidator, envelopePayloadTypeConverter, jsonEnvelopeRepacker);
}
Also used : RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) DispatcherDelegate(uk.gov.justice.services.core.dispatcher.DispatcherDelegate) EnvelopeValidator(uk.gov.justice.services.core.envelope.EnvelopeValidator) RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) Produces(javax.enterprise.inject.Produces)

Example 2 with DispatcherDelegate

use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.

the class RequesterProducer method produceRequester.

/**
 * Produces the correct implementation of a requester depending on the {@link ServiceComponent}
 * annotation at the injection point.
 *
 * @param injectionPoint class where the {@link Requester} is being injected
 * @return the correct requester instance
 * @throws IllegalStateException if the injection point does not have a {@link ServiceComponent}
 *                               annotation
 */
@Produces
public Requester produceRequester(final InjectionPoint injectionPoint) {
    final EnvelopeValidator envelopeValidator = new EnvelopeValidator(jsonSchemaValidator, objectMapper, envelopeValidationExceptionHandler);
    final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = new RequestResponseEnvelopeValidator(envelopeValidator, nameToMediaTypeConverter, mediaTypeProvider, envelopeInspector);
    return new DispatcherDelegate(dispatcherCache.dispatcherFor(injectionPoint), systemUserUtil, requestResponseEnvelopeValidator, envelopePayloadTypeConverter, jsonEnvelopeRepacker);
}
Also used : RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) DispatcherDelegate(uk.gov.justice.services.core.dispatcher.DispatcherDelegate) EnvelopeValidator(uk.gov.justice.services.core.envelope.EnvelopeValidator) RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) Produces(javax.enterprise.inject.Produces)

Example 3 with DispatcherDelegate

use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.

the class SenderProducerTest method shouldCreateANewSenderDispatcherDelegate.

@Test
public void shouldCreateANewSenderDispatcherDelegate() throws Exception {
    final InjectionPoint injectionPoint = mock(InjectionPoint.class);
    final Dispatcher dispatcher = mock(Dispatcher.class);
    when(dispatcherCache.dispatcherFor(injectionPoint)).thenReturn(dispatcher);
    final DispatcherDelegate dispatcherDelegate = (DispatcherDelegate) senderProducer.produceSender(injectionPoint);
    assertThat(privateField("dispatcher", dispatcherDelegate, Dispatcher.class), is(dispatcher));
    assertThat(privateField("systemUserUtil", dispatcherDelegate, SystemUserUtil.class), is(systemUserUtil));
    assertThat(privateField("envelopePayloadTypeConverter", dispatcherDelegate, EnvelopePayloadTypeConverter.class), is(envelopePayloadTypeConverter));
    assertThat(privateField("jsonEnvelopeRepacker", dispatcherDelegate, JsonEnvelopeRepacker.class), is(jsonEnvelopeRepacker));
    final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = privateField("requestResponseEnvelopeValidator", dispatcherDelegate, RequestResponseEnvelopeValidator.class);
    assertThat(privateField("nameToMediaTypeConverter", requestResponseEnvelopeValidator, NameToMediaTypeConverter.class), is(nameToMediaTypeConverter));
    assertThat(privateField("mediaTypeProvider", requestResponseEnvelopeValidator, MediaTypeProvider.class), is(mediaTypeProvider));
    assertThat(privateField("envelopeInspector", requestResponseEnvelopeValidator, EnvelopeInspector.class), is(envelopeInspector));
    final EnvelopeValidator envelopeValidator = privateField("envelopeValidator", requestResponseEnvelopeValidator, EnvelopeValidator.class);
    assertThat(privateField("jsonSchemaValidator", envelopeValidator, JsonSchemaValidator.class), is(jsonSchemaValidator));
    assertThat(privateField("objectMapper", envelopeValidator, ObjectMapper.class), is(objectMapper));
    assertThat(privateField("envelopeValidationExceptionHandler", envelopeValidator, EnvelopeValidationExceptionHandler.class), is(envelopeValidationExceptionHandler));
}
Also used : RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) EnvelopeValidationExceptionHandler(uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandler) InjectionPoint(javax.enterprise.inject.spi.InjectionPoint) SystemUserUtil(uk.gov.justice.services.core.dispatcher.SystemUserUtil) Dispatcher(uk.gov.justice.services.core.dispatcher.Dispatcher) EnvelopePayloadTypeConverter(uk.gov.justice.services.core.dispatcher.EnvelopePayloadTypeConverter) NameToMediaTypeConverter(uk.gov.justice.services.core.mapping.NameToMediaTypeConverter) DispatcherDelegate(uk.gov.justice.services.core.dispatcher.DispatcherDelegate) MediaTypeProvider(uk.gov.justice.services.core.envelope.MediaTypeProvider) EnvelopeValidator(uk.gov.justice.services.core.envelope.EnvelopeValidator) RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) JsonEnvelopeRepacker(uk.gov.justice.services.core.dispatcher.JsonEnvelopeRepacker) EnvelopeInspector(uk.gov.justice.services.core.envelope.EnvelopeInspector) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonSchemaValidator(uk.gov.justice.services.core.json.JsonSchemaValidator) Test(org.junit.Test)

Example 4 with DispatcherDelegate

use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.

the class RequesterProducerTest method requesterShouldDelegateAdminRequestSubstitutingUserId.

@Test
public void requesterShouldDelegateAdminRequestSubstitutingUserId() throws Exception {
    final InjectionPoint injectionPoint = mock(InjectionPoint.class);
    final Dispatcher dispatcher = mock(Dispatcher.class);
    when(dispatcherCache.dispatcherFor(injectionPoint)).thenReturn(dispatcher);
    final DispatcherDelegate dispatcherDelegate = (DispatcherDelegate) requesterProducer.produceRequester(injectionPoint);
    assertThat(privateField("dispatcher", dispatcherDelegate, Dispatcher.class), is(dispatcher));
    assertThat(privateField("systemUserUtil", dispatcherDelegate, SystemUserUtil.class), is(systemUserUtil));
    assertThat(privateField("envelopePayloadTypeConverter", dispatcherDelegate, EnvelopePayloadTypeConverter.class), is(envelopePayloadTypeConverter));
    assertThat(privateField("jsonEnvelopeRepacker", dispatcherDelegate, JsonEnvelopeRepacker.class), is(jsonEnvelopeRepacker));
    final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = privateField("requestResponseEnvelopeValidator", dispatcherDelegate, RequestResponseEnvelopeValidator.class);
    assertThat(privateField("nameToMediaTypeConverter", requestResponseEnvelopeValidator, NameToMediaTypeConverter.class), is(nameToMediaTypeConverter));
    assertThat(privateField("mediaTypeProvider", requestResponseEnvelopeValidator, MediaTypeProvider.class), is(mediaTypeProvider));
    assertThat(privateField("envelopeInspector", requestResponseEnvelopeValidator, EnvelopeInspector.class), is(envelopeInspector));
    final EnvelopeValidator envelopeValidator = privateField("envelopeValidator", requestResponseEnvelopeValidator, EnvelopeValidator.class);
    assertThat(privateField("jsonSchemaValidator", envelopeValidator, JsonSchemaValidator.class), is(jsonSchemaValidator));
    assertThat(privateField("objectMapper", envelopeValidator, ObjectMapper.class), is(objectMapper));
    assertThat(privateField("envelopeValidationExceptionHandler", envelopeValidator, EnvelopeValidationExceptionHandler.class), is(envelopeValidationExceptionHandler));
}
Also used : RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) EnvelopeValidationExceptionHandler(uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandler) InjectionPoint(javax.enterprise.inject.spi.InjectionPoint) SystemUserUtil(uk.gov.justice.services.core.dispatcher.SystemUserUtil) Dispatcher(uk.gov.justice.services.core.dispatcher.Dispatcher) EnvelopePayloadTypeConverter(uk.gov.justice.services.core.dispatcher.EnvelopePayloadTypeConverter) NameToMediaTypeConverter(uk.gov.justice.services.core.mapping.NameToMediaTypeConverter) DispatcherDelegate(uk.gov.justice.services.core.dispatcher.DispatcherDelegate) MediaTypeProvider(uk.gov.justice.services.core.envelope.MediaTypeProvider) EnvelopeValidator(uk.gov.justice.services.core.envelope.EnvelopeValidator) RequestResponseEnvelopeValidator(uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator) JsonEnvelopeRepacker(uk.gov.justice.services.core.dispatcher.JsonEnvelopeRepacker) EnvelopeInspector(uk.gov.justice.services.core.envelope.EnvelopeInspector) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonSchemaValidator(uk.gov.justice.services.core.json.JsonSchemaValidator) Test(org.junit.Test)

Aggregations

DispatcherDelegate (uk.gov.justice.services.core.dispatcher.DispatcherDelegate)4 EnvelopeValidator (uk.gov.justice.services.core.envelope.EnvelopeValidator)4 RequestResponseEnvelopeValidator (uk.gov.justice.services.core.envelope.RequestResponseEnvelopeValidator)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 Produces (javax.enterprise.inject.Produces)2 InjectionPoint (javax.enterprise.inject.spi.InjectionPoint)2 Test (org.junit.Test)2 Dispatcher (uk.gov.justice.services.core.dispatcher.Dispatcher)2 EnvelopePayloadTypeConverter (uk.gov.justice.services.core.dispatcher.EnvelopePayloadTypeConverter)2 JsonEnvelopeRepacker (uk.gov.justice.services.core.dispatcher.JsonEnvelopeRepacker)2 SystemUserUtil (uk.gov.justice.services.core.dispatcher.SystemUserUtil)2 EnvelopeInspector (uk.gov.justice.services.core.envelope.EnvelopeInspector)2 EnvelopeValidationExceptionHandler (uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandler)2 MediaTypeProvider (uk.gov.justice.services.core.envelope.MediaTypeProvider)2 JsonSchemaValidator (uk.gov.justice.services.core.json.JsonSchemaValidator)2 NameToMediaTypeConverter (uk.gov.justice.services.core.mapping.NameToMediaTypeConverter)2