Example usage for org.springframework.http HttpHeaders getFirst

List of usage examples for org.springframework.http HttpHeaders getFirst

Introduction

In this page you can find the example usage for org.springframework.http HttpHeaders getFirst.

Prototype

@Override
@Nullable
public String getFirst(String headerName) 

Source Link

Document

Return the first header value for the given header name, if any.

Usage

From source file:eionet.webq.web.controller.FileDownloadController.java

/**
 * Performs conversion of specified {@link eionet.webq.dao.orm.UserFile} to specific format. Format is defined by conversionId.
 *
 * @param fileId       file id or xsl name, which will be used to convert file
 * @param conversionId id of conversion to be used
 * @param response     object where conversion result will be written
 *///from w ww  .  j  av  a 2  s. c  om
@RequestMapping("/convert")
@Transactional
public void convertXmlFile(@RequestParam int fileId, @RequestParam String conversionId,
        HttpServletResponse response) {
    UserFile fileContent = userFileService.getById(fileId);
    ResponseEntity<byte[]> convert = conversionService.convert(fileContent, conversionId);
    HttpHeaders headers = convert.getHeaders();
    setContentType(response, headers.getContentType());
    setContentDisposition(response, headers.getFirst("Content-Disposition"));
    writeToResponse(response, convert.getBody());
}

From source file:org.bytesoft.bytejta.supports.springcloud.SpringCloudCoordinator.java

public Object invokePostCoordinator(Object proxy, Method method, Object[] args) throws Throwable {

    Class<?> returnType = method.getReturnType();
    try {//from w ww  . j  a  v a  2s . co  m
        RestTemplate transactionRestTemplate = SpringCloudBeanRegistry.getInstance().getRestTemplate();
        RestTemplate restTemplate = transactionRestTemplate == null ? new RestTemplate()
                : transactionRestTemplate;

        StringBuilder ber = new StringBuilder();

        int firstIndex = this.identifier.indexOf(":");
        int lastIndex = this.identifier.lastIndexOf(":");
        String prefix = firstIndex <= 0 ? null : this.identifier.substring(0, firstIndex);
        String suffix = lastIndex <= 0 ? null : this.identifier.substring(lastIndex + 1);

        ber.append("http://");
        ber.append(prefix == null || suffix == null ? null : prefix + ":" + suffix);
        ber.append("/org/bytesoft/bytejta/");
        ber.append(method.getName());
        for (int i = 0; i < args.length; i++) {
            Serializable arg = (Serializable) args[i];
            ber.append("/").append(this.serialize(arg));
        }

        ResponseEntity<?> response = restTemplate.postForEntity(ber.toString(), null, returnType,
                new Object[0]);

        return response.getBody();
    } catch (HttpClientErrorException ex) {
        throw new XAException(XAException.XAER_RMFAIL);
    } catch (HttpServerErrorException ex) {
        // int statusCode = ex.getRawStatusCode();
        HttpHeaders headers = ex.getResponseHeaders();
        String failureText = StringUtils.trimToNull(headers.getFirst("failure"));
        String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER"));

        Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText);
        Integer errorCode = null;
        try {
            errorCode = errorText == null ? null : Integer.parseInt(errorText);
        } catch (Exception ignore) {
            logger.debug(ignore.getMessage());
        }

        if (failure != null && errorCode != null) {
            throw new XAException(errorCode);
        } else {
            throw new XAException(XAException.XAER_RMERR);
        }
    } catch (Exception ex) {
        throw new XAException(XAException.XAER_RMERR);
    }

}

From source file:org.bytesoft.bytejta.supports.springcloud.SpringCloudCoordinator.java

public Object invokeGetCoordinator(Object proxy, Method method, Object[] args) throws Throwable {

    Class<?> returnType = method.getReturnType();
    try {/*from www. j  a  v a 2  s .  c o  m*/
        RestTemplate transactionRestTemplate = SpringCloudBeanRegistry.getInstance().getRestTemplate();
        RestTemplate restTemplate = transactionRestTemplate == null ? new RestTemplate()
                : transactionRestTemplate;

        StringBuilder ber = new StringBuilder();

        int firstIndex = this.identifier.indexOf(":");
        int lastIndex = this.identifier.lastIndexOf(":");
        String prefix = firstIndex <= 0 ? null : this.identifier.substring(0, firstIndex);
        String suffix = lastIndex <= 0 ? null : this.identifier.substring(lastIndex + 1);

        ber.append("http://");
        ber.append(prefix == null || suffix == null ? null : prefix + ":" + suffix);
        ber.append("/org/bytesoft/bytejta/");
        ber.append(method.getName());
        for (int i = 0; i < args.length; i++) {
            Serializable arg = (Serializable) args[i];
            ber.append("/").append(this.serialize(arg));
        }

        ResponseEntity<?> response = restTemplate.getForEntity(ber.toString(), returnType, new Object[0]);

        return response.getBody();
    } catch (HttpClientErrorException ex) {
        throw new XAException(XAException.XAER_RMFAIL);
    } catch (HttpServerErrorException ex) {
        // int statusCode = ex.getRawStatusCode();
        HttpHeaders headers = ex.getResponseHeaders();
        String failureText = StringUtils.trimToNull(headers.getFirst("failure"));
        String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER"));

        Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText);
        Integer errorCode = null;
        try {
            errorCode = errorText == null ? null : Integer.parseInt(errorText);
        } catch (Exception ignore) {
            logger.debug(ignore.getMessage());
        }

        if (failure != null && errorCode != null) {
            throw new XAException(errorCode);
        } else {
            throw new XAException(XAException.XAER_RMERR);
        }
    } catch (Exception ex) {
        throw new XAException(XAException.XAER_RMERR);
    }

}

From source file:org.bytesoft.bytejta.supports.springcloud.web.TransactionRequestInterceptor.java

private void invokeAfterRecvResponse(ClientHttpResponse httpResponse, boolean serverFlag) throws IOException {
    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    TransactionBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    HttpHeaders respHeaders = httpResponse.getHeaders();
    String respTransactionStr = respHeaders.getFirst(HEADER_TRANCACTION_KEY);
    String respPropagationStr = respHeaders.getFirst(HEADER_PROPAGATION_KEY);

    byte[] byteArray = ByteUtils.stringToByteArray(StringUtils.trimToNull(respTransactionStr));
    TransactionContext serverContext = (TransactionContext) CommonUtils.deserializeObject(byteArray);

    TransactionResponseImpl txResp = new TransactionResponseImpl();
    txResp.setTransactionContext(serverContext);
    RemoteCoordinator serverCoordinator = beanRegistry.getConsumeCoordinator(respPropagationStr);
    txResp.setSourceTransactionCoordinator(serverCoordinator);
    txResp.setParticipantDelistFlag(serverFlag ? false : true);

    transactionInterceptor.afterReceiveResponse(txResp);
}

From source file:org.bytesoft.bytetcc.supports.springcloud.ext.CompensableRequestInterceptor.java

private void invokeAfterRecvResponse(ClientHttpResponse httpResponse, boolean serverFlag) throws IOException {
    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    CompensableBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    HttpHeaders respHeaders = httpResponse.getHeaders();
    String respTransactionStr = respHeaders.getFirst(HEADER_TRANCACTION_KEY);
    String respPropagationStr = respHeaders.getFirst(HEADER_PROPAGATION_KEY);

    byte[] byteArray = ByteUtils.stringToByteArray(StringUtils.trimToNull(respTransactionStr));
    TransactionContext serverContext = (TransactionContext) CommonUtils.deserializeObject(byteArray);

    TransactionResponseImpl txResp = new TransactionResponseImpl();
    txResp.setTransactionContext(serverContext);
    RemoteCoordinator serverCoordinator = beanRegistry.getConsumeCoordinator(respPropagationStr);
    txResp.setSourceTransactionCoordinator(serverCoordinator);
    txResp.setParticipantDelistFlag(serverFlag ? false : true);

    transactionInterceptor.afterReceiveResponse(txResp);
}

From source file:org.bytesoft.bytetcc.supports.springcloud.SpringCloudCoordinator.java

public Object invokePostCoordinator(Object proxy, Method method, Object[] args) throws Throwable {
    Class<?> returnType = method.getReturnType();
    try {/* ww w.  ja  v  a2s  . c  o  m*/
        int firstIndex = this.identifier.indexOf(":");
        int lastIndex = this.identifier.lastIndexOf(":");
        String prefix = firstIndex <= 0 ? null : this.identifier.substring(0, firstIndex);
        String suffix = lastIndex <= 0 ? null : this.identifier.substring(lastIndex + 1);

        String instanceId = prefix == null || suffix == null ? null : prefix + ":" + suffix;

        StringBuilder ber = new StringBuilder();
        ber.append("http://");
        ber.append(instanceId);
        ber.append("/org/bytesoft/bytetcc/");
        ber.append(method.getName());
        for (int i = 0; i < args.length; i++) {
            Serializable arg = (Serializable) args[i];
            ber.append("/").append(this.serialize(arg));
        }
        ResponseEntity<?> response = new RestTemplate().postForEntity(ber.toString(), null, returnType,
                new Object[0]);

        return response.getBody();
    } catch (HttpClientErrorException ex) {
        throw new XAException(XAException.XAER_RMFAIL);
    } catch (HttpServerErrorException ex) {
        // int statusCode = ex.getRawStatusCode();
        HttpHeaders headers = ex.getResponseHeaders();
        String failureText = StringUtils.trimToNull(headers.getFirst("failure"));
        String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER"));

        Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText);
        Integer errorCode = errorText == null || errorText.matches("\\d+") == false ? null
                : Integer.parseInt(errorText);

        if (failure != null && errorCode != null) {
            throw new XAException(errorCode);
        } else {
            throw new XAException(XAException.XAER_RMERR);
        }
    } catch (Exception ex) {
        throw new XAException(XAException.XAER_RMERR);
    }
}

From source file:org.bytesoft.bytetcc.supports.springcloud.SpringCloudCoordinator.java

public Object invokeGetCoordinator(Object proxy, Method method, Object[] args) throws Throwable {
    Class<?> returnType = method.getReturnType();
    try {/*w w w . j av  a 2 s  .  c om*/
        StringBuilder ber = new StringBuilder();
        ber.append("http://");
        ber.append(this.identifier);
        ber.append("/org/bytesoft/bytetcc/");
        ber.append(method.getName());
        for (int i = 0; i < args.length; i++) {
            Serializable arg = (Serializable) args[i];
            ber.append("/").append(this.serialize(arg));
        }
        ResponseEntity<?> response = new RestTemplate().getForEntity(ber.toString(), returnType, new Object[0]);

        return response.getBody();
    } catch (HttpClientErrorException ex) {
        throw new XAException(XAException.XAER_RMFAIL);
    } catch (HttpServerErrorException ex) {
        HttpHeaders headers = ex.getResponseHeaders();
        String failureText = StringUtils.trimToNull(headers.getFirst("failure"));
        String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER"));

        Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText);
        Integer errorCode = errorText == null || errorText.matches("\\d+") == false ? null
                : Integer.parseInt(errorText);

        if (failure != null && errorCode != null) {
            throw new XAException(errorCode);
        } else {
            throw new XAException(XAException.XAER_RMERR);
        }
    } catch (Exception ex) {
        throw new XAException(XAException.XAER_RMERR);
    }
}

From source file:org.springframework.cloud.gateway.test.GatewayIntegrationTests.java

@Test
public void compositeRouteWorks() {
    Mono<ClientResponse> result = webClient.get().uri("/headers?foo=bar&baz").header("Host", "www.foo.org")
            .header("X-Request-Id", "123").cookie("chocolate", "chip").exchange();

    StepVerifier.create(result).consumeNextWith(response -> {
        assertStatus(response, HttpStatus.OK);
        HttpHeaders httpHeaders = response.headers().asHttpHeaders();
        assertThat(httpHeaders.getFirst(HANDLER_MAPPER_HEADER))
                .isEqualTo(RoutePredicateHandlerMapping.class.getSimpleName());
        assertThat(httpHeaders.getFirst(ROUTE_ID_HEADER)).isEqualTo("host_foo_path_headers_to_httpbin");
        assertThat(httpHeaders.getFirst("X-Response-Foo")).isEqualTo("Bar");
    }).expectComplete().verify();/*from  w w w  .ja va 2  s.co m*/
}

From source file:org.springframework.cloud.gateway.test.GatewayIntegrationTests.java

@Test
public void defaultFiltersWorks() {
    assertThat(this.properties.getDefaultFilters()).isNotEmpty();

    Mono<ClientResponse> result = webClient.get().uri("/headers").header("Host", "www.addresponseheader.org")
            .exchange();//w w  w. j av a  2s  .  c  o m

    StepVerifier.create(result).consumeNextWith(response -> {
        HttpHeaders httpHeaders = response.headers().asHttpHeaders();
        assertThat(httpHeaders.getFirst("X-Response-Default-Foo")).isEqualTo("Default-Bar");
        assertThat(httpHeaders.get("X-Response-Default-Foo")).hasSize(1);
    }).expectComplete().verify(DURATION);
}

From source file:org.springframework.cloud.gateway.test.GatewayIntegrationTests.java

@Test
public void loadBalancerFilterWorks() {
    Mono<ClientResponse> result = webClient.get().uri("/get").header("Host", "www.loadbalancerclient.org")
            .exchange();//  w  ww  .j a va  2  s  . c o  m

    StepVerifier.create(result).consumeNextWith(response -> {
        assertStatus(response, HttpStatus.OK);
        HttpHeaders httpHeaders = response.headers().asHttpHeaders();
        assertThat(httpHeaders.getFirst(ROUTE_ID_HEADER)).isEqualTo("load_balancer_client_test");
    }).expectComplete().verify(DURATION);
}