List of usage examples for com.fasterxml.jackson.databind.node ObjectNode get
public JsonNode get(String paramString)
From source file:org.dswarm.graph.resources.MaintainResource.java
@POST @Path("/deprecate/datamodel") @Consumes(MediaType.APPLICATION_JSON)/*from w ww. ja v a 2s .com*/ @Produces(MediaType.APPLICATION_JSON) public Response deprecateDataModel(final String jsonObjectString, @Context final GraphDatabaseService database) throws DMPGraphException { MaintainResource.LOG.info("try to deprecate data model in graph db"); final ObjectNode requestJSON = deserializeJSON(jsonObjectString, DEPRECATE_DATA_MODEL_TYPE); final String dataModelUri = requestJSON.get(DMPStatics.DATA_MODEL_URI_IDENTIFIER).asText(); final TransactionHandler tx = new Neo4jTransactionHandler(database); final NamespaceIndex namespaceIndex = new NamespaceIndex(database, tx); final String prefixedDataModelUri = namespaceIndex.createPrefixedURI(dataModelUri); MaintainResource.LOG.info("try to deprecate statements in data model '{}' ('{}') in graph db", dataModelUri, prefixedDataModelUri); final BasicNeo4jProcessor processor = new DataModelNeo4jProcessor(database, tx, namespaceIndex, prefixedDataModelUri); final RelationshipDeprecator dataModelDeprecator = new DataModelNeo4jDeprecator(processor, true, prefixedDataModelUri); dataModelDeprecator.work(); final int relationshipsDeprecated = dataModelDeprecator.getRelationshipsDeprecated(); if (relationshipsDeprecated > 0) { // update data model version only when some statements are deprecated the DB dataModelDeprecator.getVersionHandler().updateLatestVersion(); } dataModelDeprecator.closeTransaction(); LOG.info("deprecated '{}' relationships in data model '{}' ('{}') in graph db", relationshipsDeprecated, dataModelUri, prefixedDataModelUri); final ObjectNode resultJSON = simpleObjectMapper.createObjectNode(); resultJSON.put("deprecated", relationshipsDeprecated); final String result = serializeJSON(resultJSON, DEPRECATE_DATA_MODEL_TYPE); return Response.ok(result, MediaType.APPLICATION_JSON_TYPE).build(); }
From source file:org.dswarm.graph.resources.MaintainResource.java
@POST @Path("/deprecate/records") @Consumes(MediaType.APPLICATION_JSON)/*from w w w . java 2 s . c o m*/ @Produces(MediaType.APPLICATION_JSON) public Response deprecateRecords(final String jsonObjectString, @Context final GraphDatabaseService database) throws DMPGraphException { MaintainResource.LOG.info("try to deprecate records in a data model in graph db"); final ObjectNode requestJSON = deserializeJSON(jsonObjectString, DEPRECATE_RECORDS_TYPE); final String dataModelUri = requestJSON.get(DMPStatics.DATA_MODEL_URI_IDENTIFIER).asText(); final Collection<String> recordURIs = getRecordURIs(requestJSON); final TransactionHandler tx = new Neo4jTransactionHandler(database); final NamespaceIndex namespaceIndex = new NamespaceIndex(database, tx); final String prefixedDataModelUri = namespaceIndex.createPrefixedURI(dataModelUri); final Collection<String> prefixedRecordURIs = prefixRecordURIs(recordURIs, namespaceIndex); MaintainResource.LOG.info("try to deprecate '{}' records in data model '{}' ('{}') in graph db", prefixedRecordURIs.size(), dataModelUri, prefixedDataModelUri); final BasicNeo4jProcessor processor = new DataModelNeo4jProcessor(database, tx, namespaceIndex, prefixedDataModelUri); final RelationshipDeprecator recordsDeprecator = new RecordsNeo4jDeprecator(processor, true, prefixedDataModelUri, prefixedRecordURIs); recordsDeprecator.work(); final int relationshipsDeprecated = recordsDeprecator.getRelationshipsDeprecated(); if (relationshipsDeprecated > 0) { // update data model version only when some statements are deprecated the DB recordsDeprecator.getVersionHandler().updateLatestVersion(); } recordsDeprecator.closeTransaction(); LOG.info("deprecated '{}' records with '{}' relationships in data model '{}' ('{}') in graph db", prefixedRecordURIs.size(), relationshipsDeprecated, dataModelUri, prefixedDataModelUri); final ObjectNode resultJSON = simpleObjectMapper.createObjectNode(); resultJSON.put("deprecated", relationshipsDeprecated); final String result = serializeJSON(resultJSON, DEPRECATE_DATA_MODEL_TYPE); return Response.ok(result, MediaType.APPLICATION_JSON_TYPE).build(); }
From source file:org.apache.streams.rss.serializer.SyndEntryActivitySerializer.java
public Activity deserializeWithRomeExtension(ObjectNode entry, boolean withExtension) { Preconditions.checkNotNull(entry);/*from w w w . ja va 2 s .c o m*/ Activity activity = new Activity(); Provider provider = buildProvider(entry); Actor actor = buildActor(entry); ActivityObject activityObject = buildActivityObject(entry); activityObject.setUrl(provider.getUrl()); activityObject.setAuthor(actor.getAuthor()); activity.setUrl(provider.getUrl()); activity.setProvider(provider); activity.setActor(actor); activity.setVerb("post"); activity.setId("id:rss:post:" + activity.getUrl()); JsonNode published = entry.get("publishedDate"); if (published != null) { try { activity.setPublished(RFC3339Utils.parseToUTC(published.textValue())); } catch (Exception e) { LOGGER.warn("Failed to parse date : {}", published.textValue()); DateTime now = DateTime.now().withZone(DateTimeZone.UTC); activity.setPublished(now); } } activity.setUpdated(activityObject.getUpdated()); activity.setObject(activityObject); if (withExtension) { activity = addRomeExtension(activity, entry); } return activity; }
From source file:com.sammyun.controller.console.MemberController.java
/** * /* w w w. ja v a 2s. co m*/ */ @RequestMapping(value = "/update", method = RequestMethod.POST) public String update(Member member, HttpServletRequest request, RedirectAttributes redirectAttributes, long areaId, ModelMap model) { Member preMember = memberService.find(member.getId()); if (preMember == null) { addFlashMessage(redirectAttributes, ERROR_MESSAGE); return ERROR_VIEW; } preMember.setRealName(member.getRealName()); preMember.setEmail(member.getEmail()); preMember.setGender(member.getGender()); preMember.setBirth(member.getBirth()); Area newArea = areaService.find(areaId); preMember.setArea(newArea); preMember.setAddress(member.getAddress()); preMember.setZipCode(member.getZipCode()); preMember.setIsEnabled(member.getIsEnabled()); preMember.setIconPhoto(member.getIconPhoto()); preMember.setIsEnabled(member.getIsEnabled()); // preMember.setIsUpdate(true); // DigestUtils.md5Hex(member.getPassword()) if (preMember.getMobile().equals(member.getMobile())) { // ????? if ((member.getPassword() != null) && (!member.getPassword().equals(""))) { String md5Password = DigestUtils.md5Hex(member.getPassword()); ObjectNode modifyIMUserPasswordWithAdminTokenNode = easemobIMUsers .modifyUserPassword(preMember.getUsername(), md5Password.toLowerCase()); if ((null != modifyIMUserPasswordWithAdminTokenNode) && (modifyIMUserPasswordWithAdminTokenNode .get("statusCode").asText().equalsIgnoreCase("200"))) { preMember.setPassword(md5Password); memberService.update(preMember); model.addAttribute("menuId", Member.class.getSimpleName()); addFlashMessage(redirectAttributes, SUCCESS_MESSAGE); return "redirect:list.ct"; } else { model.addAttribute("menuId", Member.class.getSimpleName()); addFlashMessage(redirectAttributes, ERROR_MESSAGE); return ERROR_VIEW; } } else { memberService.update(preMember); addFlashMessage(redirectAttributes, SUCCESS_MESSAGE); model.addAttribute("menuId", Member.class.getSimpleName()); return "redirect:list.ct"; } } // ???? else { String preUserName = preMember.getUsername(); String password = preMember.getPassword(); preMember.setMobile(member.getMobile()); preMember.setUsername(member.getMobile()); if (member.getPassword() != null) { preMember.setPassword(DigestUtils.md5Hex(member.getPassword())); password = DigestUtils.md5Hex(member.getPassword()); } // // ???? // ObjectNode friendNode = EasemobIMUsers.getFriends(preUserName); // List<String> friendList = new ArrayList<String>(); // JsonNode arrNode = friendNode.get("data"); // if (arrNode.isArray()) // { // for (final JsonNode objNode : arrNode) // { // friendList.add(objNode.asText()); // } // } // im easemobIMUsers.deleteUserByUserPrimaryKey(preUserName); // easemobIMUsers.createUserSingle(preMember.getUsername(), password.toLowerCase()); memberService.update(preMember); // // ???? // if (friendList.size() > 0) // { // for (String friend : friendList) // { // easemobIMUsers.addFriend(preMember.getUsername(), friend); // } // } model.addAttribute("menuId", Member.class.getSimpleName()); addFlashMessage(redirectAttributes, SUCCESS_MESSAGE); return "redirect:list.ct"; } }
From source file:com.ikanow.aleph2.search_service.elasticsearch.utils.ElasticsearchIndexUtils.java
/** Creates a list of JsonNodes containing the mapping for fields that will _enable_ or _disable_ field data depending on fielddata_info is present * (note this can convert a property to a dynamic template, but never the other way round) * @param instream//from www .ja va2s . co m * @param f * @param field_lookups * @param fielddata_info 3tuple containing not_analyzed, analyzed, and override * @param mapper * @return */ protected static Stream<Tuple2<Either<String, Tuple2<String, String>>, JsonNode>> createFieldLookups( final Stream<String> instream, final Function<String, Either<String, Tuple2<String, String>>> f, final LinkedHashMap<Either<String, Tuple2<String, String>>, JsonNode> field_lookups, final Optional<Tuple3<JsonNode, JsonNode, Boolean>> fielddata_info, final SearchIndexSchemaDefaultBean search_index_schema_override, final Map<Either<String, Tuple2<String, String>>, String> type_override, final ObjectMapper mapper, final String index_type) { return instream.<Tuple2<Either<String, Tuple2<String, String>>, JsonNode>>map(Lambdas.wrap_u(fn -> { final Either<String, Tuple2<String, String>> either_tmp = f.apply(fn); final Optional<String> maybe_type = Optional.ofNullable(type_override.get(either_tmp)); // add type if present final Either<String, Tuple2<String, String>> either = maybe_type .<Either<String, Tuple2<String, String>>>map(type -> { return either_tmp.<Either<String, Tuple2<String, String>>>either(s -> Either.left(s), t2 -> Either.right(Tuples._2T(t2._1(), type))); }).orElse(either_tmp); final ObjectNode mutable_field_metadata = (ObjectNode) Optional.ofNullable(field_lookups.get(either)) .map(j -> j.deepCopy()) .orElse(either.either(Lambdas.wrap_fj_u(__ -> mapper.readTree(BACKUP_FIELD_MAPPING_PROPERTIES)), Lambdas.wrap_fj_u(__ -> mapper.readTree(BACKUP_FIELD_MAPPING_TEMPLATES)))); //(note that these 2 mappings don't have "type"s - therefore they will result in default_templates not properties - you need the type to generate a property) final ObjectNode mutable_field_mapping_tmp = either.isLeft() ? mutable_field_metadata : (ObjectNode) mutable_field_metadata.get("mapping"); //(override with type if set) maybe_type.ifPresent(type -> mutable_field_mapping_tmp.put("type", type)); final boolean has_type = mutable_field_mapping_tmp.has("type"); final Tuple2<ObjectNode, Either<String, Tuple2<String, String>>> toplevel_eithermod = Lambdas .get(() -> { if (either.isLeft() && !has_type) { final ObjectNode top_level = (ObjectNode) mapper.createObjectNode().set("mapping", mutable_field_metadata); return Tuples._2T(top_level, Either.<String, Tuple2<String, String>>right(Tuples._2T(fn, "*"))); } else { // right[dynamic] *OR* (left[properties] and has-type) return Tuples._2T(mutable_field_metadata, either); } }); final ObjectNode mutable_field_mapping = toplevel_eithermod._2().isLeft() ? toplevel_eithermod._1() : (ObjectNode) toplevel_eithermod._1().get("mapping"); // Special case ... if we're columnar and we're merging with tokenized and non-dual then convert to untokenized instead if (fielddata_info.filter(t3 -> t3._3()).isPresent() && mutable_field_mapping.equals( mapper.convertValue(search_index_schema_override.tokenized_string_field(), JsonNode.class))) { mutable_field_mapping.removeAll(); mutable_field_mapping.setAll((ObjectNode) mapper .convertValue(search_index_schema_override.untokenized_string_field(), ObjectNode.class)); } if (toplevel_eithermod._2().isRight()) { if (!toplevel_eithermod._1().has(PATH_MATCH_NAME) && !toplevel_eithermod._1().has(RAW_MATCH_NAME)) { toplevel_eithermod._1().put(PATH_MATCH_NAME, toplevel_eithermod._2().right().value()._1()); if (!toplevel_eithermod._1().has(TYPE_MATCH_NAME)) toplevel_eithermod._1().put(TYPE_MATCH_NAME, toplevel_eithermod._2().right().value()._2()); } if (!has_type) { if (toplevel_eithermod._2().right().value()._2().equals("*")) { // type is mandatory mutable_field_mapping.put("type", "{dynamic_type}"); } else { mutable_field_mapping.put("type", toplevel_eithermod._2().right().value()._2()); } } } handleMappingFields(mutable_field_mapping, fielddata_info, mapper, index_type); setMapping(mutable_field_mapping, fielddata_info, mapper, index_type); return Tuples._2T(toplevel_eithermod._2(), toplevel_eithermod._1()); })); }
From source file:com.almende.eve.agent.google.GoogleCalendarAgent.java
/** * Set access token and refresh token, used to authorize the calendar agent. * These tokens must be retrieved via Oauth 2.0 authorization. * /* w ww . j av a 2 s .c o m*/ * @param access_token * the access_token * @param token_type * the token_type * @param expires_in * the expires_in * @param refresh_token * the refresh_token * @throws IOException * Signals that an I/O exception has occurred. */ public void setAuthorization(@Name("access_token") final String access_token, @Name("token_type") final String token_type, @Name("expires_in") final Integer expires_in, @Name("refresh_token") final String refresh_token) throws IOException { final State state = getState(); // retrieve user information final String url = "https://www.googleapis.com/oauth2/v1/userinfo"; final Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", token_type + " " + access_token); final String resp = HttpUtil.get(url, headers); final ObjectNode info = JOM.getInstance().readValue(resp, ObjectNode.class); final String email = info.has("email") ? info.get("email").asText() : null; final String name = info.has("name") ? info.get("name").asText() : null; final DateTime expires_at = calculateExpiresAt(expires_in); final Authorization auth = new Authorization(access_token, token_type, expires_at, refresh_token); // store the tokens in the state state.put("auth", auth); state.put("email", email); state.put("name", name); }
From source file:com.joyent.manta.client.multipart.ServerSideMultipartManager.java
@Override public ServerSideMultipartUpload initiateUpload(final String path, final Long contentLength, final MantaMetadata mantaMetadata, final MantaHttpHeaders httpHeaders) throws IOException { Validate.notBlank(path, "Path to object must not be blank"); final MantaMetadata metadata; if (mantaMetadata == null) { metadata = new MantaMetadata(); } else {//from w w w.j a v a 2 s.c om metadata = mantaMetadata; } final MantaHttpHeaders headers; if (httpHeaders == null) { headers = new MantaHttpHeaders(); } else { headers = httpHeaders; } /* We explicitly set the content-length header if it is passed as a method parameter * so that the server will validate the size of the upload when it is committed. */ if (contentLength != null && headers.getContentLength() == null) { headers.setContentLength(contentLength); } final String postPath = uploadsPath(); final HttpPost post = httpHelper.getRequestFactory().post(postPath); final byte[] jsonRequest = createMpuRequestBody(path, metadata, headers); final HttpEntity entity = new ExposedByteArrayEntity(jsonRequest, ContentType.APPLICATION_JSON); post.setEntity(entity); final int expectedStatusCode = HttpStatus.SC_CREATED; final CloseableHttpClient httpClient = httpHelper.getConnectionContext().getHttpClient(); try (CloseableHttpResponse response = httpClient.execute(post)) { StatusLine statusLine = response.getStatusLine(); validateStatusCode(expectedStatusCode, statusLine.getStatusCode(), "Unable to create multipart upload", post, response, path, jsonRequest); validateEntityIsPresent(post, response, path, jsonRequest); try (InputStream in = response.getEntity().getContent()) { ObjectNode mpu = MantaObjectMapper.INSTANCE.readValue(in, ObjectNode.class); JsonNode idNode = mpu.get("id"); Validate.notNull(idNode, "No multipart id returned in response"); UUID uploadId = UUID.fromString(idNode.textValue()); JsonNode partsDirectoryNode = mpu.get("partsDirectory"); Validate.notNull(partsDirectoryNode, "No parts directory returned in response"); String partsDirectory = partsDirectoryNode.textValue(); return new ServerSideMultipartUpload(uploadId, path, partsDirectory); } catch (NullPointerException | IllegalArgumentException e) { String msg = "Expected response field was missing or malformed"; MantaMultipartException me = new MantaMultipartException(msg, e); annotateException(me, post, response, path, jsonRequest); throw me; } catch (JsonParseException e) { String msg = "Response body was not JSON"; MantaMultipartException me = new MantaMultipartException(msg, e); annotateException(me, post, response, path, jsonRequest); throw me; } } }
From source file:io.robusta.rra.representation.implementation.JacksonRepresentation.java
@Override public Representation remove(String key) throws RepresentationException { throwIfNotObject();/*from w ww .j a v a 2 s. co m*/ int i = 0; if (key.contains(".")) { String[] keys = key.split("\\."); if (keys.length == 0) { throw new IllegalArgumentException( "Malformed key " + keys + " ; use something like user.school.id"); } ObjectNode current = asObject(); for (i = 0; i < keys.length - 1; i++) { current = (ObjectNode) current.get(keys[i]); if (current == null) { throw new IllegalArgumentException( "There is no valid object for key " + keys[i] + " in '" + key + "'"); } } if (current.get(keys[keys.length - 1]) == null) { throw new IllegalArgumentException( "There is no valid object for key " + keys[keys.length - 1] + " in '" + key + "'"); } current.remove(keys[keys.length - 1]); } else { if (document.get(key) == null) { throw new IllegalArgumentException("There is no valid object for key " + key); } asObject().remove(key); } return this; }
From source file:com.joyent.manta.client.multipart.ServerSideMultipartManager.java
@Override public MantaMultipartStatus getStatus(final ServerSideMultipartUpload upload) throws IOException { Validate.notNull(upload, "Upload state object must not be null"); final String partsDirectory; if (upload.getPartsDirectory() == null) { partsDirectory = uuidPrefixedPath(upload.getId()); } else {/*w w w . j a v a 2 s .c o m*/ partsDirectory = upload.getPartsDirectory(); } final String getPath = partsDirectory + SEPARATOR + "state"; final HttpGet get = httpHelper.getRequestFactory().get(getPath); final int expectedStatusCode = HttpStatus.SC_OK; final CloseableHttpClient httpClient = httpHelper.getConnectionContext().getHttpClient(); try (CloseableHttpResponse response = httpClient.execute(get)) { StatusLine statusLine = response.getStatusLine(); if (statusLine.getStatusCode() == HttpStatus.SC_NOT_FOUND) { return MantaMultipartStatus.UNKNOWN; } validateStatusCode(expectedStatusCode, statusLine.getStatusCode(), "Unable to get status for multipart upload", get, response, null, null); validateEntityIsPresent(get, response, null, null); try (InputStream in = response.getEntity().getContent()) { ObjectNode objectNode = MantaObjectMapper.INSTANCE.readValue(in, ObjectNode.class); JsonNode stateNode = objectNode.get("state"); Validate.notNull(stateNode, "Unable to get state from response"); String state = stateNode.textValue(); Validate.notBlank(state, "State field was blank in response"); if (state.equalsIgnoreCase("created")) { return MantaMultipartStatus.CREATED; } if (state.equalsIgnoreCase("finalizing")) { return extractMultipartStatusResult(objectNode); } if (state.equalsIgnoreCase("done")) { return extractMultipartStatusResult(objectNode); } return MantaMultipartStatus.UNKNOWN; } catch (JsonParseException e) { String msg = "Response body was not JSON"; MantaMultipartException me = new MantaMultipartException(msg, e); annotateException(me, get, response, null, null); throw me; } catch (NullPointerException | IllegalArgumentException e) { String msg = "Expected response field was missing or malformed"; MantaMultipartException me = new MantaMultipartException(msg, e); annotateException(me, get, response, null, null); throw me; } } }
From source file:org.lendingclub.mercator.dynect.DynectScanner.java
private List<String> scanZones() { Instant startTime = Instant.now(); logger.info("Scanning all zones in Dynect"); ObjectNode response = getDynectClient().get("REST/Zone/"); JsonNode zoneData = response.path("data"); List<String> zonesList = new ArrayList<String>(); if (zoneData.isArray()) { zoneData.forEach(zone -> {/*from w w w. j a va 2 s . c om*/ String zoneNode = zone.asText(); String zoneName = Splitter.on("/").splitToList(zoneNode).get(3); zonesList.add(zoneName); }); } logger.info("Scanning {} zones in Dynect to get more details", zonesList.size()); for (String zone : zonesList) { response = getDynectClient().get("REST/Zone/" + zone); logger.debug("Scanning {} zone", zone); ObjectNode n = toZoneJson(response.get("data")); Preconditions.checkNotNull(getProjector().getNeoRxClient(), "neorx client must be set"); String cypher = "MERGE (m:DynHostedZone {zoneName:{zone}}) " + "ON CREATE SET m+={props}, m.createTs = timestamp(), m.updateTs=timestamp() " + "ON MATCH SET m+={props}, m.updateTs=timestamp();"; getProjector().getNeoRxClient().execCypher(cypher, "zone", zone, "props", n); } Instant endTime = Instant.now(); logger.info("Updating neo4j with the latest information of all {} zones from Dynect took {} secs", zonesList.size(), Duration.between(startTime, endTime).getSeconds()); return zonesList; }