Example usage for org.springframework.util MultiValueMap get

List of usage examples for org.springframework.util MultiValueMap get

Introduction

In this page you can find the example usage for org.springframework.util MultiValueMap get.

Prototype

V get(Object key);

Source Link

Document

Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

Usage

From source file:org.springframework.cloud.netflix.zuul.filters.ProxyRequestHelper.java

public Map<String, Object> debug(String verb, String uri, MultiValueMap<String, String> headers,
        MultiValueMap<String, String> params, InputStream requestEntity) throws IOException {

    Map<String, Object> info = new LinkedHashMap<String, Object>();
    if (traces != null) {

        RequestContext context = RequestContext.getCurrentContext();
        info.put("remote", true);
        info.put("serviceId", context.get("serviceId"));
        Map<String, Object> trace = new LinkedHashMap<String, Object>();
        Map<String, Object> input = new LinkedHashMap<String, Object>();
        trace.put("request", input);
        info.put("headers", trace);
        for (Entry<String, List<String>> entry : headers.entrySet()) {
            Collection<String> collection = entry.getValue();
            Object value = collection;
            if (collection.size() < 2) {
                value = collection.isEmpty() ? "" : collection.iterator().next();
            }/*from   w  w  w . j  a  v a 2 s  . co  m*/
            input.put(entry.getKey(), value);
        }
        StringBuilder query = new StringBuilder();
        for (String param : params.keySet()) {
            for (String value : params.get(param)) {
                query.append(param);
                query.append("=");
                query.append(value);
                query.append("&");
            }
        }

        info.put("method", verb);
        info.put("uri", uri);
        info.put("query", query.toString());
        RequestContext ctx = RequestContext.getCurrentContext();
        if (!ctx.isChunkedRequestBody()) {
            if (requestEntity != null) {
                debugRequestEntity(info, ctx.getRequest().getInputStream());
            }
        }
        traces.add(info);
        return info;
    }
    return info;
}

From source file:org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter.java

private MultiValueMap<String, String> revertHeaders(Header[] headers) {
    MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
    for (Header header : headers) {
        String name = header.getName();
        if (!map.containsKey(name)) {
            map.put(name, new ArrayList<String>());
        }//from  w ww  . jav  a2 s  . c om
        map.get(name).add(header.getValue());
    }
    return map;
}

From source file:org.springframework.cloud.stream.app.jdbc.sink.JdbcSinkConfiguration.java

@Bean
@ServiceActivator(autoStartup = "false", inputChannel = Sink.INPUT)
public JdbcMessageHandler jdbcMessageHandler(DataSource dataSource) {
    final MultiValueMap<String, Expression> columnExpressionVariations = new LinkedMultiValueMap<>();
    for (Map.Entry<String, String> entry : properties.getColumns().entrySet()) {
        String value = entry.getValue();
        columnExpressionVariations.add(entry.getKey(), spelExpressionParser.parseExpression(value));
        if (!value.startsWith("payload")) {
            columnExpressionVariations.add(entry.getKey(),
                    spelExpressionParser.parseExpression("payload." + value));
        }/*www  .ja  v a2  s. c  o  m*/
    }
    JdbcMessageHandler jdbcMessageHandler = new JdbcMessageHandler(dataSource,
            generateSql(properties.getTableName(), columnExpressionVariations.keySet()));
    jdbcMessageHandler.setSqlParameterSourceFactory(new SqlParameterSourceFactory() {
        @Override
        public SqlParameterSource createParameterSource(Object o) {
            if (!(o instanceof Message)) {
                throw new IllegalArgumentException("Unable to handle type " + o.getClass().getName());
            }
            Message<?> message = (Message<?>) o;
            MapSqlParameterSource parameterSource = new MapSqlParameterSource();
            for (String key : columnExpressionVariations.keySet()) {
                List<Expression> spels = columnExpressionVariations.get(key);
                Object value = NOT_SET;
                EvaluationException lastException = null;
                for (Expression spel : spels) {
                    try {
                        value = spel.getValue(evaluationContext, message);
                        break;
                    } catch (EvaluationException e) {
                        lastException = e;
                    }
                }
                if (value == NOT_SET) {
                    if (lastException != null) {
                        logger.info(
                                "Could not find value for column '" + key + "': " + lastException.getMessage());
                    }
                    parameterSource.addValue(key, null);
                } else {
                    if (value instanceof JsonPropertyAccessor.ToStringFriendlyJsonNode) {
                        // Need to do some reflection until we have a getter for the Node
                        DirectFieldAccessor dfa = new DirectFieldAccessor(value);
                        JsonNode node = (JsonNode) dfa.getPropertyValue("node");
                        Object valueToUse;
                        if (node == null || node.isNull()) {
                            valueToUse = null;
                        } else if (node.isNumber()) {
                            valueToUse = node.numberValue();
                        } else if (node.isBoolean()) {
                            valueToUse = node.booleanValue();
                        } else {
                            valueToUse = node.textValue();
                        }
                        parameterSource.addValue(key, valueToUse);
                    } else {
                        parameterSource.addValue(key, value);
                    }
                }
            }
            return parameterSource;
        }
    });
    return jdbcMessageHandler;
}

From source file:org.springframework.data.rest.webmvc.config.RepositoryRestMvConfigurationIntegrationTests.java

/**
 * @see DATAREST-271/*from  w  w  w.  j  av  a 2s.co  m*/
 */
@Test
public void assetConsidersPaginationCustomization() {

    HateoasPageableHandlerMethodArgumentResolver resolver = context
            .getBean(HateoasPageableHandlerMethodArgumentResolver.class);

    UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
    resolver.enhance(builder, null, new PageRequest(0, 9000, Direction.ASC, "firstname"));

    MultiValueMap<String, String> params = builder.build().getQueryParams();

    assertThat(params.containsKey("myPage"), is(true));
    assertThat(params.containsKey("mySort"), is(true));

    assertThat(params.get("mySize"), hasSize(1));
    assertThat(params.get("mySize").get(0), is("7000"));
}

From source file:org.springframework.http.converter.FormHttpMessageConverter.java

private boolean isMultipart(MultiValueMap<String, ?> map, @Nullable MediaType contentType) {
    if (contentType != null) {
        return MediaType.MULTIPART_FORM_DATA.includes(contentType);
    }// w  w  w . j av a  2  s .  c  om
    for (String name : map.keySet()) {
        for (Object value : map.get(name)) {
            if (value != null && !(value instanceof String)) {
                return true;
            }
        }
    }
    return false;
}

From source file:org.springframework.http.converter.FormHttpMessageConverter.java

private void writeForm(MultiValueMap<String, String> form, @Nullable MediaType contentType,
        HttpOutputMessage outputMessage) throws IOException {

    Charset charset;/*from w  w  w.ja v  a 2  s.  co m*/
    if (contentType != null) {
        outputMessage.getHeaders().setContentType(contentType);
        charset = (contentType.getCharset() != null ? contentType.getCharset() : this.charset);
    } else {
        outputMessage.getHeaders().setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        charset = this.charset;
    }
    StringBuilder builder = new StringBuilder();
    for (Iterator<String> nameIterator = form.keySet().iterator(); nameIterator.hasNext();) {
        String name = nameIterator.next();
        for (Iterator<String> valueIterator = form.get(name).iterator(); valueIterator.hasNext();) {
            String value = valueIterator.next();
            builder.append(URLEncoder.encode(name, charset.name()));
            if (value != null) {
                builder.append('=');
                builder.append(URLEncoder.encode(value, charset.name()));
                if (valueIterator.hasNext()) {
                    builder.append('&');
                }
            }
        }
        if (nameIterator.hasNext()) {
            builder.append('&');
        }
    }
    final byte[] bytes = builder.toString().getBytes(charset);
    outputMessage.getHeaders().setContentLength(bytes.length);

    if (outputMessage instanceof StreamingHttpOutputMessage) {
        StreamingHttpOutputMessage streamingOutputMessage = (StreamingHttpOutputMessage) outputMessage;
        streamingOutputMessage.setBody(new StreamingHttpOutputMessage.Body() {
            @Override
            public void writeTo(OutputStream outputStream) throws IOException {
                StreamUtils.copy(bytes, outputStream);
            }
        });
    } else {
        StreamUtils.copy(bytes, outputMessage.getBody());
    }
}

From source file:org.springframework.http.converter.FormHttpMessageConverterTests.java

@Test
public void readForm() throws Exception {
    String body = "name+1=value+1&name+2=value+2%2B1&name+2=value+2%2B2&name+3";
    MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.ISO_8859_1));
    inputMessage.getHeaders()/*w w w.j  a va2 s . com*/
            .setContentType(new MediaType("application", "x-www-form-urlencoded", StandardCharsets.ISO_8859_1));
    MultiValueMap<String, String> result = this.converter.read(null, inputMessage);

    assertEquals("Invalid result", 3, result.size());
    assertEquals("Invalid result", "value 1", result.getFirst("name 1"));
    List<String> values = result.get("name 2");
    assertEquals("Invalid result", 2, values.size());
    assertEquals("Invalid result", "value 2+1", values.get(0));
    assertEquals("Invalid result", "value 2+2", values.get(1));
    assertNull("Invalid result", result.getFirst("name 3"));
}

From source file:org.springframework.integration.configuration.EnableIntegrationTests.java

@Test
@DirtiesContext/*w ww  .  j  av  a2s  .  com*/
public void testRoles() {
    assertThat(this.roleController.getRoles(), containsInAnyOrder("foo", "bar"));
    assertFalse(this.roleController.allEndpointsRunning("foo"));
    assertFalse(this.roleController.noEndpointsRunning("foo"));
    assertTrue(this.roleController.allEndpointsRunning("bar"));
    assertFalse(this.roleController.noEndpointsRunning("bar"));
    Map<String, Boolean> state = this.roleController.getEndpointsRunningStatus("foo");
    assertThat(state.get("annotationTestService.handle.serviceActivator"), equalTo(Boolean.FALSE));
    assertThat(state.get("enableIntegrationTests.ContextConfiguration2.sendAsyncHandler.serviceActivator"),
            equalTo(Boolean.TRUE));
    this.roleController.startLifecyclesInRole("foo");
    assertTrue(this.roleController.allEndpointsRunning("foo"));
    this.roleController.stopLifecyclesInRole("foo");
    assertFalse(this.roleController.allEndpointsRunning("foo"));
    assertTrue(this.roleController.noEndpointsRunning("foo"));

    @SuppressWarnings("unchecked")
    MultiValueMap<String, SmartLifecycle> lifecycles = TestUtils.getPropertyValue(this.roleController,
            "lifecycles", MultiValueMap.class);
    assertEquals(2, lifecycles.size());
    assertEquals(2, lifecycles.get("foo").size());
    assertEquals(1, lifecycles.get("bar").size());
    assertFalse(this.serviceActivatorEndpoint.isRunning());
    assertFalse(this.sendAsyncHandler.isRunning());
    assertEquals(2, lifecycles.size());
    assertEquals(2, lifecycles.get("foo").size());
}

From source file:org.springframework.messaging.simp.handler.SimpleBrokerMessageHandler.java

protected void sendMessageToSubscribers(String destination, Message<?> message) {
    MultiValueMap<String, String> subscriptions = this.subscriptionRegistry.findSubscriptions(message);
    for (String sessionId : subscriptions.keySet()) {
        for (String subscriptionId : subscriptions.get(sessionId)) {

            SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.wrap(message);
            headers.setSessionId(sessionId);
            headers.setSubscriptionId(subscriptionId);

            Object payload = message.getPayload();
            Message<?> clientMessage = MessageBuilder.withPayloadAndHeaders(payload, headers).build();
            try {
                this.messageChannel.send(clientMessage);
            } catch (Throwable ex) {
                logger.error("Failed to send message to destination=" + destination + ", sessionId=" + sessionId
                        + ", subscriptionId=" + subscriptionId, ex);
            }// ww w.  ja  v a2  s  . co  m
        }
    }
}

From source file:org.springframework.social.linkedin.api.impl.ProfileTemplate.java

private URI expand(String url, SearchParameters parameters) {
    URIBuilder uriBuilder = URIBuilder.fromUri(url);

    if (parameters.getKeywords() != null) {
        uriBuilder.queryParam("keywords", parameters.getKeywords());
    }//ww w  . jav a2  s. c  o m

    if (parameters.getFirstName() != null) {
        uriBuilder.queryParam("first-name", parameters.getFirstName());
    }

    if (parameters.getLastName() != null) {
        uriBuilder.queryParam("last-name", parameters.getLastName());
    }

    if (parameters.getCompanyName() != null) {
        uriBuilder.queryParam("company-name", parameters.getCompanyName());
    }

    if (parameters.getCurrentCompany() != null) {
        uriBuilder.queryParam("current-company", parameters.getCurrentCompany().toString());
    }

    if (parameters.getTitle() != null) {
        uriBuilder.queryParam("title", parameters.getTitle());
    }

    if (parameters.getCurrentTitle() != null) {
        uriBuilder.queryParam("current-title", parameters.getCurrentTitle().toString());
    }

    if (parameters.getSchoolName() != null) {
        uriBuilder.queryParam("school-name", parameters.getSchoolName());
    }

    if (parameters.getCurrentSchool() != null) {
        uriBuilder.queryParam("current-school", parameters.getCurrentSchool().toString());
    }

    if (parameters.getCountryCode() != null) {
        uriBuilder.queryParam("country-code", parameters.getCountryCode());
    }

    if (parameters.getPostalCode() != null) {
        uriBuilder.queryParam("postal-code", parameters.getPostalCode());
    }

    if (parameters.getDistance() != null) {
        uriBuilder.queryParam("distance", parameters.getDistance().toString());
    }

    uriBuilder.queryParam("start", String.valueOf(parameters.getStart()));

    uriBuilder.queryParam("count", String.valueOf(parameters.getCount()));

    if (parameters.getSort() != null) {
        uriBuilder.queryParam("sort", parameters.getSort().toString());
    }

    // Processing facets

    MultiValueMap<SearchParameters.FacetType, String> facets = parameters.getFacets();

    for (SearchParameters.FacetType ft : facets.keySet()) {
        StringBuilder facetString = new StringBuilder(ft.toString());

        for (String value : facets.get(ft)) {
            facetString.append(",");
            facetString.append(value);
        }

        uriBuilder.queryParam("facet", facetString.toString());
    }

    return uriBuilder.build();
}