Example usage for org.springframework.util LinkedMultiValueMap LinkedMultiValueMap

List of usage examples for org.springframework.util LinkedMultiValueMap LinkedMultiValueMap

Introduction

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

Prototype

public LinkedMultiValueMap() 

Source Link

Document

Create a new LinkedMultiValueMap that wraps a LinkedHashMap .

Usage

From source file:org.devefx.httpmapper.binding.MapperMethod.java

@SuppressWarnings("unchecked")
public Object execute(RestTemplate restTemplate, Object[] args) throws Exception {
    Object result = null;//from www  .  java  2  s  .c o  m

    do {
        MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.valueOf(command.getContentType()));

        Map<String, Object> paramMap = null;
        Object param = method.convertArgsToCommandParam(args);
        if (param instanceof Map) {
            paramMap = (Map<String, Object>) param;
            body.setAll(paramMap);
        }

        URI uri = expandURI(command.getUrl(), args);

        RequestEntity requestEntity = new RequestEntity(body, headers, command.getHttpMethod(), uri,
                method.getReturnType());

        mappedHandler.onRequest(requestEntity);

        // FIXME: application/x-www-form-urlencoded
        if (headers.getContentType().includes(MediaType.APPLICATION_FORM_URLENCODED)) {
            if (paramMap != null) {
                for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
                    Object value = entry.getValue();
                    if (value != null && !ReflectUtils.isUserType(value)) {
                        entry.setValue(String.valueOf(value));
                    }
                }
                body.setAll(paramMap);
            } else if (param != null && ReflectUtils.isUserType(param)) {
                body.setAll(mapper.<Map<String, Object>>convertValue(param, mapType));
            }
        }

        if (requestEntity.getMethod() == HttpMethod.GET) {
            uri = appendUrlParams(requestEntity.getUrl(), body);
            requestEntity.setUrl(uri);
        }

        if (logger.isInfoEnabled()) {
            String preStr = command.getName() + " ====> ";
            logger.info(preStr + "Request: " + requestEntity.getUrl());
            logger.info(preStr + "Parameters: " + requestEntity.getBody());
            logger.info(preStr + "Headers: " + requestEntity.getHeaders());
        }

        ResponseEntity<JsonNode> responseEntity = restTemplate.exchange(requestEntity.getUrl(),
                requestEntity.getMethod(),
                new HttpEntity<>(requestEntity.getBody(), requestEntity.getHeaders()), JsonNode.class);

        if (logger.isInfoEnabled()) {
            StringBuffer buf = new StringBuffer();
            buf.append(command.getName() + " ====> ");
            buf.append("Response: [status=").append(responseEntity.getStatusCode()).append("] ");
            if (responseEntity.hasBody()) {
                buf.append(responseEntity.getBody());
            }
            logger.info(buf.toString());
        }

        if (responseEntity != null) {
            org.devefx.httpmapper.http.ResponseEntity entity = new org.devefx.httpmapper.http.ResponseEntity(
                    responseEntity.getBody(), responseEntity.getHeaders(), responseEntity.getStatusCode());

            mappedHandler.onResponse(requestEntity, entity);

            if (entity.hasBody()) {
                Object responseBody = entity.getBody();
                if (method.getRawType().isInstance(responseBody)) {
                    result = responseBody;
                    break;
                }

                JavaType valueType = mapper.getTypeFactory().constructType(method.getReturnType());
                if (responseBody instanceof String) {
                    result = mapper.readValue((String) responseBody, valueType);
                } else {
                    result = mapper.convertValue(responseBody, valueType);
                }
            }
        }

    } while (false);

    if (result == null && method.returnsPrimitive() && !method.returnsVoid()) {
        throw new BindingException("Mapper method '" + command.getUrl()
                + " attempted to return null from a method with a primitive return type ("
                + method.getReturnType() + ").");
    }
    return result;
}

From source file:au.org.ala.fielddata.mobile.service.FieldDataServiceClient.java

public void sync(List<Record> records) throws Exception {

    MultiValueMap<String, Object> params = new LinkedMultiValueMap<String, Object>();
    params.set("ident", ident);
    params.set("inFrame", "false"); // Setting this parameter prevents the
    // server from assuming a jsonp request.
    params.set("syncData", records);

    String url = getServerUrl() + syncUrl;

    Log.d("URL", url);
    Log.d("Params", getGson().toJson(records.get(0)));

    RestTemplate restTemplate = getRestTemplate();
    SyncRecordsResponse result = restTemplate.postForObject(url, params, SyncRecordsResponse.class);

}

From source file:org.esupportail.filex.web.WebController.java

@RequestMapping("VIEW")
protected ModelAndView renderView(RenderRequest request, RenderResponse response) throws Exception {

    ModelMap model = new ModelMap();

    final PortletPreferences prefs = request.getPreferences();
    String eppnAttr = prefs.getValue(PREF_EPPN_ATTR, null);
    String restUrl = prefs.getValue(PREF_REST_URL, null);

    Map userInfos = (Map) request.getAttribute(PortletRequest.USER_INFO);
    String eppn = (String) userInfos.get(eppnAttr);

    log.info("Try to get FileX info for " + eppn);

    try {/*from www.  j av a2s .  c o  m*/

        MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
        headers.add("eppn", eppn);

        HttpEntity<MultiValueMap<String, String>> httpRequest = new HttpEntity<MultiValueMap<String, String>>(
                null, headers);

        ResponseEntity<Filex> filexEntity = restTemplate.exchange(restUrl, HttpMethod.GET, httpRequest,
                Filex.class);
        log.debug("FileX info for " + eppn + " : " + filexEntity.getBody().toString());

        model.put("filex", filexEntity.getBody());
    } catch (HttpClientErrorException e) {
        return new ModelAndView("error", model);
    }

    model.put("serviceUrl", prefs.getValue(PREF_SERVICE_URL, null));
    return new ModelAndView("view", model);
}

From source file:de.zib.gndms.gndmc.gorfx.Test.TaskFlowClientTest.java

@Test(groups = { "TaskFlowClientTest" })
public void createTaskFlow() {
    FailureOrder order = new FailureOrder();
    order.setMessage("TESTING TaskFlow creation");
    order.setWhere(FailureOrder.FailurePlace.NOWHERE);

    ResponseEntity<Specifier<Facets>> responseEntity = gorfxClient.createTaskFlow(
            FailureTaskFlowMeta.TASK_FLOW_TYPE_KEY, order, admindn, TASKFLOW_WID,
            new LinkedMultiValueMap<String, String>());

    Assert.assertNotNull(responseEntity);
    Assert.assertEquals(responseEntity.getStatusCode(), HttpStatus.CREATED);

    taskFlowId = responseEntity.getBody().getUriMap().get(UriFactory.TASKFLOW_ID);
}

From source file:com.miserablemind.api.consumer.tradeking.api.impl.AccountTemplate.java

@Override
public TradeKingTransaction[] getTransactionsHistory(String accountId, TradeKingTransaction.Range range,
        TradeKingTransaction.Type type) {
    MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
    parameters.set("range", range.toString());
    parameters.set("transactions", type.toString());

    URI url = this.buildUri(String.format(URL_ACCOUNT_HISTORY, accountId), parameters);
    ResponseEntity<TKHistoryResponse> response = this.getRestTemplate().getForEntity(url,
            TKHistoryResponse.class);
    if (null != response.getBody().getError())
        throw new ApiException(TradeKingServiceProvider.PROVIDER_ID, response.getBody().getError());
    return response.getBody().getTransactionHistory();
}

From source file:org.trustedanalytics.h2oscoringengine.publisher.steps.AppBitsUploadingStepTest.java

private HttpEntity<MultiValueMap<String, Object>> createTestAppBitsRequest() throws IOException {
    HttpEntity<String> resourcesPart = new HttpEntity<String>("[]");
    HttpEntity<ByteArrayResource> dataPart = new HttpEntity<>(
            new ByteArrayResource(Files.readAllBytes(testAppBitsPath)), HttpCommunication.zipHeaders());

    MultiValueMap<String, Object> multiPartRequest = new LinkedMultiValueMap<>();
    multiPartRequest.add("resources", resourcesPart);
    multiPartRequest.add("application", dataPart);

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.MULTIPART_FORM_DATA);

    return new HttpEntity<>(multiPartRequest, headers);
}

From source file:com.lixiaocong.social.MyJdbcConnection.java

public MultiValueMap<String, Connection<?>> findAllConnections() {
    List<Connection<?>> resultList = jdbcTemplate.query(
            selectFromUserConnection() + " where userId = ? order by providerId, rank", connectionMapper,
            userId);//from   w ww .  j  ava 2  s  .  c o m
    MultiValueMap<String, Connection<?>> connections = new LinkedMultiValueMap<String, Connection<?>>();
    Set<String> registeredProviderIds = connectionFactoryLocator.registeredProviderIds();
    for (String registeredProviderId : registeredProviderIds) {
        connections.put(registeredProviderId, Collections.<Connection<?>>emptyList());
    }
    for (Connection<?> connection : resultList) {
        String providerId = connection.getKey().getProviderId();
        if (connections.get(providerId).size() == 0) {
            connections.put(providerId, new LinkedList<Connection<?>>());
        }
        connections.add(providerId, connection);
    }
    return connections;
}

From source file:org.cloudfoundry.identity.uaa.login.integration.AuthorizationCodeGrantIntegrationTests.java

@Test
public void testSuccessfulAuthorizationCodeFlow() throws Exception {

    HttpHeaders headers = new HttpHeaders();
    // TODO: should be able to handle just TEXT_HTML
    headers.setAccept(Arrays.asList(MediaType.TEXT_HTML, MediaType.ALL));

    AuthorizationCodeResourceDetails resource = testAccounts.getDefaultAuthorizationCodeResource();

    URI uri = serverRunning.buildUri("/oauth/authorize").queryParam("response_type", "code")
            .queryParam("state", "mystateid").queryParam("client_id", resource.getClientId())
            .queryParam("redirect_uri", resource.getPreEstablishedRedirectUri()).build();
    ResponseEntity<Void> result = serverRunning.getForResponse(uri.toString(), headers);
    assertEquals(HttpStatus.FOUND, result.getStatusCode());
    String location = result.getHeaders().getLocation().toString();

    if (result.getHeaders().containsKey("Set-Cookie")) {
        String cookie = result.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }//from w  w w . ja  v  a2s  . c om

    ResponseEntity<String> response = serverRunning.getForString(location, headers);
    // should be directed to the login screen...
    String body = response.getBody();
    assertTrue(body.contains("/login.do"));
    assertTrue(body.contains("username"));
    assertTrue(body.contains("password"));

    MultiValueMap<String, String> formData = new LinkedMultiValueMap<String, String>();
    formData.add("username", testAccounts.getUserName());
    formData.add("password", testAccounts.getPassword());

    // Should be redirected to the original URL, but now authenticated
    result = serverRunning.postForResponse("/login.do", headers, formData);
    assertEquals(HttpStatus.FOUND, result.getStatusCode());

    if (result.getHeaders().containsKey("Set-Cookie")) {
        String cookie = result.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }

    response = serverRunning.getForString(result.getHeaders().getLocation().toString(), headers);
    if (response.getStatusCode() == HttpStatus.OK) {
        body = response.getBody();
        // The grant access page should be returned
        assertTrue(body.contains("Application Authorization"));
        // Forms should have the right action
        assertTrue(body.matches("(?s).*\\saction=\"\\S*oauth/authorize\".*"));

        formData.clear();
        formData.add("user_oauth_approval", "true");
        result = serverRunning.postForResponse("/oauth/authorize", headers, formData);
        assertEquals(HttpStatus.FOUND, result.getStatusCode());
        location = result.getHeaders().getLocation().toString();
    } else {
        // Token cached so no need for second approval
        assertEquals(HttpStatus.FOUND, response.getStatusCode());
        location = response.getHeaders().getLocation().toString();
    }
    assertTrue("Wrong location: " + location,
            location.matches(resource.getPreEstablishedRedirectUri() + ".*code=.+"));
    assertFalse("Location should not contain cookie: " + location,
            location.matches(resource.getPreEstablishedRedirectUri() + ".*cookie=.+"));

    formData.clear();
    formData.add("client_id", resource.getClientId());
    formData.add("redirect_uri", resource.getPreEstablishedRedirectUri());
    formData.add("grant_type", "authorization_code");
    formData.add("code", location.split("code=")[1].split("&")[0]);
    HttpHeaders tokenHeaders = new HttpHeaders();
    tokenHeaders.set("Authorization",
            testAccounts.getAuthorizationHeader(resource.getClientId(), resource.getClientSecret()));
    @SuppressWarnings("rawtypes")
    ResponseEntity<Map> tokenResponse = serverRunning.postForMap("/oauth/token", formData, tokenHeaders);
    assertEquals(HttpStatus.OK, tokenResponse.getStatusCode());
}

From source file:com.github.moscaville.contactsdb.controller.BaseController.java

public String saveItem(RecordWrapper<T> recordWrapper, ID id) {

    if (OFFLINE_TEST) {
        return "";
    }/*from  ww  w.j  a v a  2s  . c o m*/
    String result = null;

    //RecordWrapper<T> recordWrapper = new RecordWrapper<>();
    //BeanUtils.copyProperties(t, recordWrapper.getFields());
    StringBuilder sUri = new StringBuilder();
    sUri.append(AIRTABLE_ENDPOINT_URL).append(getAirTableName());
    URI uri;
    if (id == null) {
        try {
            uri = new URI(sUri.toString());
            ResponseEntity<BaseResponse> response = restTemplate.postForEntity(uri, recordWrapper,
                    BaseResponse.class);
            if (response != null && response.getBody() != null) {
                result = response.getBody().getId();
            }
        } catch (URISyntaxException ex) {
            Logger.getLogger(BaseController.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        sUri.append("/").append(id.toString());
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
        headers.add("HeaderName", "value");
        headers.add("Content-Type", "application/json");
        ObjectMapper objectMapper = new ObjectMapper();
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        messageConverter.setObjectMapper(objectMapper);
        restTemplate.getMessageConverters().add(messageConverter);
        HttpEntity<RecordWrapper> request = new HttpEntity<>(recordWrapper, headers);
        try {
            uri = new URI(sUri.toString());
            restTemplate.put(uri, request);
            result = "";
        } catch (RestClientException e) {
            if (e instanceof HttpStatusCodeException) {
                String errorResponse = ((HttpStatusCodeException) e).getResponseBodyAsString();
                System.out.println(errorResponse);
            }
        } catch (URISyntaxException ex) {
            Logger.getLogger(BaseController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return result;
}

From source file:de.zib.gndms.gndmc.gorfx.Test.GORFXClientTest.java

@Test(groups = { "GORFXServiceTest" }, dependsOnMethods = { "listFacets", "listTaskFlows" })
public void createTaskFlow() {
    // create TaskFlow
    {//from  w  ww .  ja  v  a 2s.  co m
        FailureOrder order = new FailureOrder();
        order.setMessage("TESTING TaskFlow creation");
        order.setWhere(FailureOrder.FailurePlace.NOWHERE);

        ResponseEntity<Specifier<Facets>> responseEntity = gorfxClient.createTaskFlow(
                FailureTaskFlowMeta.TASK_FLOW_TYPE_KEY, order, admindn, "GORFXTaskFlowTEST",
                new LinkedMultiValueMap<String, String>());

        Assert.assertNotNull(responseEntity);
        Assert.assertEquals(responseEntity.getStatusCode(), HttpStatus.CREATED);
    }

    // get TaskFlow Info
    //{
    //    ResponseEntity< TaskFlowInfo > responseEntity = gorfxClient.getTaskFlowInfo(
    //            FailureTaskFlowMeta.TASK_FLOW_TYPE_KEY, admindn );
    //
    //    Assert.assertNotNull( responseEntity );
    //    Assert.assertEquals( responseEntity.getStatusCode(), HttpStatus.OK );
    //}
}