List of usage examples for com.fasterxml.jackson.core JsonFactory createParser
public JsonParser createParser(String content) throws IOException, JsonParseException
From source file:com.marklogic.client.functionaltest.TestBulkReadWriteWithJacksonParserHandle.java
@Test public void testWriteMultipleJSONDocsWithDefaultMetadata() throws Exception { String docId[] = { "/a.json", "/b.json", "/c.json" }; String json1 = new String("{\"animal\":\"dog\", \"says\":\"woof\"}"); String json2 = new String("{\"animal\":\"cat\", \"says\":\"meow\"}"); String json3 = new String("{\"animal\":\"rat\", \"says\":\"keek\"}"); JsonFactory f = new JsonFactory(); JSONDocumentManager docMgr = client.newJSONDocumentManager(); docMgr.setMetadataCategories(Metadata.ALL); DocumentWriteSet writeset = docMgr.newWriteSet(); // put meta-data DocumentMetadataHandle mh = setMetadata(); DocumentMetadataHandle mhRead = new DocumentMetadataHandle(); JacksonParserHandle jacksonParserHandle1 = new JacksonParserHandle(); JacksonParserHandle jacksonParserHandle2 = new JacksonParserHandle(); JacksonParserHandle jacksonParserHandle3 = new JacksonParserHandle(); jacksonParserHandle1.set(f.createParser(json1)); jacksonParserHandle2.set(f.createParser(json2)); jacksonParserHandle3.set(f.createParser(json3)); writeset.addDefault(mh);//from w w w. j a v a 2 s . co m writeset.add(docId[0], jacksonParserHandle1); writeset.add(docId[1], jacksonParserHandle2); writeset.add(docId[2], jacksonParserHandle3); docMgr.write(writeset); DocumentPage page = docMgr.read(docId); while (page.hasNext()) { DocumentRecord rec = page.next(); docMgr.readMetadata(rec.getUri(), mhRead); System.out.println(rec.getUri()); validateMetadata(mhRead); } validateMetadata(mhRead); // Close handles. jacksonParserHandle1.close(); jacksonParserHandle2.close(); jacksonParserHandle3.close(); }
From source file:com.marklogic.client.functionaltest.TestBulkReadWriteWithJacksonParserHandle.java
@Test public void testWriteMultipleJSONDocsFromFactory() throws Exception { String docId[] = { "/a.json", "/b.json", "/c.json" }; String json1 = new String("{\"animal\":\"dog\", \"says\":\"woof\"}"); String json2 = new String("{\"animal\":\"cat\", \"says\":\"meow\"}"); String json3 = new String("{\"animal\":\"rat\", \"says\":\"keek\"}"); JsonFactory f = new JsonFactory(); JSONDocumentManager docMgr = client.newJSONDocumentManager(); docMgr.setMetadataCategories(Metadata.ALL); DocumentWriteSet writeset = docMgr.newWriteSet(); //Create a content Factory from JacksonDatabindHandle that will handle writes. ContentHandleFactory ch = JacksonParserHandle.newFactory(); //Instantiate a handle. JacksonParserHandle jacksonParserHandle1 = (JacksonParserHandle) ch.newHandle(JsonParser.class); JacksonParserHandle jacksonParserHandle2 = (JacksonParserHandle) ch.newHandle(JsonParser.class); JacksonParserHandle jacksonParserHandle3 = (JacksonParserHandle) ch.newHandle(JsonParser.class); jacksonParserHandle1.set(f.createParser(json1)); jacksonParserHandle2.set(f.createParser(json2)); jacksonParserHandle3.set(f.createParser(json3)); writeset.add(docId[0], jacksonParserHandle1); writeset.add(docId[1], jacksonParserHandle2); writeset.add(docId[2], jacksonParserHandle3); docMgr.write(writeset);/*w w w. j a va2 s . c o m*/ //Using JacksonHandle to read back from database. JacksonHandle jacksonhandle = new JacksonHandle(); docMgr.read(docId[0], jacksonhandle); JSONAssert.assertEquals(json1, jacksonhandle.toString(), true); docMgr.read(docId[1], jacksonhandle); JSONAssert.assertEquals(json2, jacksonhandle.toString(), true); docMgr.read(docId[2], jacksonhandle); JSONAssert.assertEquals(json3, jacksonhandle.toString(), true); // Close handles. jacksonParserHandle1.close(); jacksonParserHandle2.close(); jacksonParserHandle3.close(); }
From source file:com.bazaarvoice.jsonpps.PrettyPrintJson.java
public void prettyPrint(List<File> inputFiles, File outputFile) throws IOException { JsonFactory factory = new JsonFactory(); factory.disable(JsonFactory.Feature.INTERN_FIELD_NAMES); if (!strict) { factory.enable(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER); factory.enable(JsonParser.Feature.ALLOW_COMMENTS); factory.enable(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS); factory.enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS); factory.enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES); factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS); factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES); }/*from w ww . j a v a 2 s . co m*/ ObjectMapper mapper = null; if (sortKeys) { mapper = new ObjectMapper(factory); mapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS); mapper.disable(SerializationFeature.FLUSH_AFTER_WRITE_VALUE); } // Open the output stream and create the Json emitter. JsonGenerator generator; File tempOutputFile = null; if (STDINOUT.equals(outputFile)) { generator = factory.createGenerator(stdout, JsonEncoding.UTF8); } else if (!caseInsensitiveContains(inputFiles, outputFile)) { generator = factory.createGenerator(outputFile, JsonEncoding.UTF8); } else { // Writing to an input file.. use a temp file to stage the output until we're done. tempOutputFile = getTemporaryFileFor(outputFile); generator = factory.createGenerator(tempOutputFile, JsonEncoding.UTF8); } try { // Separate top-level objects by a newline in the output. String newline = System.getProperty("line.separator"); generator.setPrettyPrinter(new DefaultPrettyPrinter(newline)); if (wrap) { generator.writeStartArray(); } for (File inputFile : inputFiles) { JsonParser parser; if (STDINOUT.equals(inputFile)) { parser = factory.createParser(stdin); } else { parser = factory.createParser(inputFile); } try { while (parser.nextToken() != null) { copyCurrentStructure(parser, mapper, 0, generator); } } finally { parser.close(); } } if (wrap) { generator.writeEndArray(); } generator.writeRaw(newline); } finally { generator.close(); } if (tempOutputFile != null && !tempOutputFile.renameTo(outputFile)) { System.err.println("error: unable to rename temporary file to output: " + outputFile); System.exit(1); } }
From source file:pl.selvin.android.syncframework.content.BaseContentProvider.java
protected boolean Sync(String service, String scope, String params) { final Date start = new Date(); boolean hasError = false; if (params == null) params = ""; final SQLiteDatabase db = mDB.getWritableDatabase(); final ArrayList<TableInfo> notifyTableInfo = new ArrayList<TableInfo>(); final String download = String.format(contentHelper.DOWNLOAD_SERVICE_URI, service, scope, params); final String upload = String.format(contentHelper.UPLOAD_SERVICE_URI, service, scope, params); final String scopeServerBlob = String.format("%s.%s.%s", service, scope, _.serverBlob); String serverBlob = null;//from w w w . j ava 2s . c o m Cursor cur = db.query(BlobsTable.NAME, new String[] { BlobsTable.C_VALUE }, BlobsTable.C_NAME + "=?", new String[] { scopeServerBlob }, null, null, null); final String originalBlob; if (cur.moveToFirst()) { originalBlob = serverBlob = cur.getString(0); } else { originalBlob = null; } cur.close(); db.beginTransaction(); try { boolean nochanges = false; if (serverBlob != null) { nochanges = !contentHelper.hasDirtTable(db, scope); } boolean resolve = false; final Metadata meta = new Metadata(); final HashMap<String, Object> vals = new HashMap<String, Object>(); final ContentValues cv = new ContentValues(2); JsonFactory jsonFactory = new JsonFactory(); JsonToken current = null; String name = null; boolean moreChanges = false; boolean forceMoreChanges = false; do { final int requestMethod; final String serviceRequestUrl; final ContentProducer contentProducer; if (serverBlob != null) { requestMethod = HTTP_POST; if (nochanges) { serviceRequestUrl = download; } else { serviceRequestUrl = upload; forceMoreChanges = true; } contentProducer = new SyncContentProducer(jsonFactory, db, scope, serverBlob, !nochanges, notifyTableInfo, contentHelper); nochanges = true; } else { requestMethod = HTTP_GET; serviceRequestUrl = download; contentProducer = null; } if (moreChanges) { db.beginTransaction(); } Result result = executeRequest(requestMethod, serviceRequestUrl, contentProducer); if (result.getStatus() == HttpStatus.SC_OK) { final JsonParser jp = jsonFactory.createParser(result.getInputStream()); jp.nextToken(); // skip ("START_OBJECT(d) expected"); jp.nextToken(); // skip ("FIELD_NAME(d) expected"); if (jp.nextToken() != JsonToken.START_OBJECT) throw new Exception("START_OBJECT(d - object) expected"); while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); if (_.__sync.equals(name)) { current = jp.nextToken(); while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); current = jp.nextToken(); if (_.serverBlob.equals(name)) { serverBlob = jp.getText(); } else if (_.moreChangesAvailable.equals(name)) { moreChanges = jp.getBooleanValue() || forceMoreChanges; forceMoreChanges = false; } else if (_.resolveConflicts.equals(name)) { resolve = jp.getBooleanValue(); } } } else if (_.results.equals(name)) { if (jp.nextToken() != JsonToken.START_ARRAY) throw new Exception("START_ARRAY(results) expected"); while (jp.nextToken() != JsonToken.END_ARRAY) { meta.isDeleted = false; meta.tempId = null; vals.clear(); while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); current = jp.nextToken(); if (current == JsonToken.VALUE_STRING) { vals.put(name, jp.getText()); } else if (current == JsonToken.VALUE_NUMBER_INT) { vals.put(name, jp.getLongValue()); } else if (current == JsonToken.VALUE_NUMBER_FLOAT) { vals.put(name, jp.getDoubleValue()); } else if (current == JsonToken.VALUE_FALSE) { vals.put(name, 0L); } else if (current == JsonToken.VALUE_TRUE) { vals.put(name, 1L); } else if (current == JsonToken.VALUE_NULL) { vals.put(name, null); } else { if (current == JsonToken.START_OBJECT) { if (_.__metadata.equals(name)) { while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); jp.nextToken(); if (_.uri.equals(name)) { meta.uri = jp.getText(); } else if (_.type.equals(name)) { meta.type = jp.getText(); } else if (_.isDeleted.equals(name)) { meta.isDeleted = jp.getBooleanValue(); } else if (_.tempId.equals(name)) { meta.tempId = jp.getText(); } } } else if (_.__syncConflict.equals(name)) { while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); jp.nextToken(); if (_.isResolved.equals(name)) { } else if (_.conflictResolution.equals(name)) { } else if (_.conflictingChange.equals(name)) { while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); current = jp.nextToken(); if (current == JsonToken.START_OBJECT) { if (_.__metadata.equals(name)) { while (jp.nextToken() != JsonToken.END_OBJECT) { } } } } } } // resolve conf } else if (_.__syncError.equals(name)) { while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); jp.nextToken(); } } } } } TableInfo tab = contentHelper.getTableFromType(meta.type); if (meta.isDeleted) { tab.DeleteWithUri(meta.uri, db); } else { tab.SyncJSON(vals, meta, db); } if (!notifyTableInfo.contains(tab)) notifyTableInfo.add(tab); } } } jp.close(); if (!hasError) { cv.clear(); cv.put(BlobsTable.C_NAME, scopeServerBlob); cv.put(BlobsTable.C_VALUE, serverBlob); cv.put(BlobsTable.C_DATE, Calendar.getInstance().getTimeInMillis()); cv.put(BlobsTable.C_STATE, 0); db.replace(BlobsTable.NAME, null, cv); db.setTransactionSuccessful(); db.endTransaction(); if (DEBUG) { Log.d(TAG, "CP-Sync: commit changes"); } final ContentResolver cr = getContext().getContentResolver(); for (TableInfo t : notifyTableInfo) { final Uri nu = contentHelper.getDirUri(t.name, false); cr.notifyChange(nu, null, false); // false - do not force sync cause we are in sync if (DEBUG) { Log.d(TAG, "CP-Sync: notifyChange table: " + t.name + ", uri: " + nu); } for (String n : t.notifyUris) { cr.notifyChange(Uri.parse(n), null, false); if (DEBUG) { Log.d(TAG, "+uri: " + n); } } } notifyTableInfo.clear(); } } else { if (DEBUG) { Log.e(TAG, "Server error in fetching remote contacts: " + result.getStatus()); } hasError = true; break; } } while (moreChanges); } catch (final ConnectTimeoutException e) { hasError = true; if (DEBUG) { Log.e(TAG, "ConnectTimeoutException", e); } } catch (final IOException e) { hasError = true; if (DEBUG) { Log.e(TAG, Log.getStackTraceString(e)); } } catch (final ParseException e) { hasError = true; if (DEBUG) { Log.e(TAG, "ParseException", e); } } catch (final Exception e) { hasError = true; if (DEBUG) { Log.e(TAG, "ParseException", e); } } if (hasError) { db.endTransaction(); ContentValues cv = new ContentValues(); cv.put(BlobsTable.C_NAME, scopeServerBlob); cv.put(BlobsTable.C_VALUE, originalBlob); cv.put(BlobsTable.C_DATE, Calendar.getInstance().getTimeInMillis()); cv.put(BlobsTable.C_STATE, -1); db.replace(BlobsTable.NAME, null, cv); } /*-if (!hasError) { final ContentValues cv = new ContentValues(2); cv.put(BlobsTable.C_NAME, scopeServerBlob); cv.put(BlobsTable.C_VALUE, serverBlob); db.replace(BlobsTable.NAME, null, cv); db.setTransactionSuccessful(); } db.endTransaction(); if (!hasError) { for (String t : notifyTableInfo) { getContext().getContentResolver().notifyChange(getDirUri(t), null); } }*/ if (DEBUG) { Helpers.LogInfo(start); } return !hasError; }
From source file:org.apache.unomi.web.ContextServlet.java
@Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { final Date timestamp = new Date(); if (request.getParameter("timestamp") != null) { timestamp.setTime(Long.parseLong(request.getParameter("timestamp"))); }//from w w w .j a v a 2 s . c om // first we must retrieve the context for the current visitor, and build a Javascript object to attach to the // script output. String profileId; HttpServletRequest httpServletRequest = (HttpServletRequest) request; String httpMethod = httpServletRequest.getMethod(); // logger.debug(HttpUtils.dumpRequestInfo(httpServletRequest)); // set up CORS headers as soon as possible so that errors are not misconstrued on the client for CORS errors HttpUtils.setupCORSHeaders(httpServletRequest, response); if ("options".equals(httpMethod.toLowerCase())) { response.flushBuffer(); return; } Profile profile = null; String cookieProfileId = null; Cookie[] cookies = httpServletRequest.getCookies(); for (Cookie cookie : cookies) { if (profileIdCookieName.equals(cookie.getName())) { cookieProfileId = cookie.getValue(); } } Session session = null; String personaId = request.getParameter("personaId"); if (personaId != null) { PersonaWithSessions personaWithSessions = profileService.loadPersonaWithSessions(personaId); if (personaWithSessions == null) { logger.error("Couldn't find persona with id=" + personaId); profile = null; } else { profile = personaWithSessions.getPersona(); session = personaWithSessions.getLastSession(); } } String sessionId = request.getParameter("sessionId"); if (cookieProfileId == null && sessionId == null && personaId == null) { ((HttpServletResponse) response).sendError(HttpServletResponse.SC_BAD_REQUEST); return; } boolean profileCreated = false; ContextRequest contextRequest = null; String scope = null; String stringPayload = HttpUtils.getPayload(httpServletRequest); if (stringPayload != null) { ObjectMapper mapper = CustomObjectMapper.getObjectMapper(); JsonFactory factory = mapper.getFactory(); try { contextRequest = mapper.readValue(factory.createParser(stringPayload), ContextRequest.class); } catch (Exception e) { logger.error("Cannot read payload " + stringPayload, e); return; } scope = contextRequest.getSource().getScope(); } int changes = EventService.NO_CHANGE; if (profile == null) { if (sessionId != null) { session = profileService.loadSession(sessionId, timestamp); if (session != null) { profileId = session.getProfileId(); profile = profileService.load(profileId); profile = checkMergedProfile(response, profile, session); } } if (profile == null) { // profile not stored in session if (cookieProfileId == null) { // no profileId cookie was found, we generate a new one and create the profile in the profile service profile = createNewProfile(null, response, timestamp); profileCreated = true; } else { profile = profileService.load(cookieProfileId); if (profile == null) { // this can happen if we have an old cookie but have reset the server, // or if we merged the profiles and somehow this cookie didn't get updated. profile = createNewProfile(null, response, timestamp); profileCreated = true; HttpUtils.sendProfileCookie(profile, response, profileIdCookieName, profileIdCookieDomain); } else { profile = checkMergedProfile(response, profile, session); } } } else if ((cookieProfileId == null || !cookieProfileId.equals(profile.getItemId())) && !profile.isAnonymousProfile()) { // profile if stored in session but not in cookie HttpUtils.sendProfileCookie(profile, response, profileIdCookieName, profileIdCookieDomain); } // associate profile with session if (sessionId != null && session == null) { session = new Session(sessionId, profile, timestamp, scope); changes |= EventService.SESSION_UPDATED; Event event = new Event("sessionCreated", session, profile, scope, null, session, timestamp); event.getAttributes().put(Event.HTTP_REQUEST_ATTRIBUTE, request); event.getAttributes().put(Event.HTTP_RESPONSE_ATTRIBUTE, response); logger.debug("Received event " + event.getEventType() + " for profile=" + profile.getItemId() + " session=" + session.getItemId() + " target=" + event.getTarget() + " timestamp=" + timestamp); changes |= eventService.send(event); } } if (profileCreated) { changes |= EventService.PROFILE_UPDATED; Event profileUpdated = new Event("profileUpdated", session, profile, scope, null, profile, timestamp); profileUpdated.setPersistent(false); profileUpdated.getAttributes().put(Event.HTTP_REQUEST_ATTRIBUTE, request); profileUpdated.getAttributes().put(Event.HTTP_RESPONSE_ATTRIBUTE, response); logger.debug("Received event {} for profile={} {} target={} timestamp={}", profileUpdated.getEventType(), profile.getItemId(), session != null ? " session=" + session.getItemId() : "", profileUpdated.getTarget(), timestamp); changes |= eventService.send(profileUpdated); } ContextResponse data = new ContextResponse(); data.setProfileId(profile.isAnonymousProfile() ? cookieProfileId : profile.getItemId()); if (privacyService.isRequireAnonymousBrowsing(profile.getItemId())) { profile = privacyService.getAnonymousProfile(); session.setProfile(profile); changes = EventService.SESSION_UPDATED; } if (contextRequest != null) { changes |= handleRequest(contextRequest, profile, session, data, request, response, timestamp); } if ((changes & EventService.PROFILE_UPDATED) == EventService.PROFILE_UPDATED && profile != null) { profileService.save(profile); } if ((changes & EventService.SESSION_UPDATED) == EventService.SESSION_UPDATED && session != null) { profileService.saveSession(session); } String extension = httpServletRequest.getRequestURI() .substring(httpServletRequest.getRequestURI().lastIndexOf(".") + 1); boolean noScript = "json".equals(extension); String contextAsJSONString = CustomObjectMapper.getObjectMapper().writeValueAsString(data); Writer responseWriter; if (noScript) { response.setCharacterEncoding("UTF-8"); responseWriter = response.getWriter(); response.setContentType("application/json"); IOUtils.write(contextAsJSONString, responseWriter); } else { responseWriter = response.getWriter(); responseWriter.append("window.digitalData = window.digitalData || {};\n").append("var cxs = ") .append(contextAsJSONString).append(";\n"); // now we copy the base script source code InputStream baseScriptStream = getServletContext().getResourceAsStream( profile instanceof Persona ? IMPERSONATE_BASE_SCRIPT_LOCATION : BASE_SCRIPT_LOCATION); IOUtils.copy(baseScriptStream, responseWriter); } responseWriter.flush(); }
From source file:org.dita.dost.ant.PluginInstallTask.java
private Set<Registry> readRegistry(final String name, final SemVerMatch version) { log(String.format("Reading registries for %s@%s", name, version), Project.MSG_INFO); Registry res = null;/*from w w w . ja v a 2 s . com*/ for (final String registry : registries) { final URI registryUrl = URI.create(registry + name + ".json"); log(String.format("Read registry %s", registry), Project.MSG_INFO); try (BufferedInputStream in = new BufferedInputStream(registryUrl.toURL().openStream())) { log("Parse registry", Project.MSG_INFO); final JsonFactory factory = mapper.getFactory(); final JsonParser parser = factory.createParser(in); final JsonNode obj = mapper.readTree(parser); final Collection<Registry> regs; if (obj.isArray()) { regs = Arrays.asList(mapper.treeToValue(obj, Registry[].class)); } else { regs = resolveAlias(mapper.treeToValue(obj, Alias.class)); } final Optional<Registry> reg = findPlugin(regs, version); if (reg.isPresent()) { final Registry plugin = reg.get(); log(String.format("Plugin found at %s@%s", registryUrl, plugin.vers), Project.MSG_INFO); res = plugin; break; } } catch (MalformedURLException e) { log(String.format("Invalid registry URL %s: %s", registryUrl, e.getMessage()), e, Project.MSG_ERR); } catch (FileNotFoundException e) { log(String.format("Registry configuration %s not found", registryUrl), e, Project.MSG_INFO); } catch (IOException e) { log(String.format("Failed to read registry configuration %s: %s", registryUrl, e.getMessage()), e, Project.MSG_ERR); } } if (res == null) { throw new BuildException("Unable to find plugin " + pluginFile); } Set<Registry> results = new HashSet<>(); results.add(res); res.deps.stream().filter(dep -> !installedPlugins.contains(dep.name)) .flatMap(dep -> readRegistry(dep.name, dep.req).stream()).forEach(results::add); return results; }
From source file:org.flockdata.integration.FileProcessor.java
private int processJsonEntities(String fileName, ExtractProfile extractProfile) throws FlockException { int rows = 0; File file = new File(fileName); InputStream stream = null;/* w w w.j a v a 2s . co m*/ if (!file.exists()) { stream = ClassLoader.class.getResourceAsStream(fileName); if (stream == null) { logger.error("{} does not exist", fileName); return 0; } } StopWatch watch = new StopWatch(); JsonFactory jfactory = new JsonFactory(); JsonParser jParser; List<EntityToEntityLinkInput> referenceInputBeans = new ArrayList<>(); try { //String docType = mappable.getDataType(); watch.start(); ObjectMapper om = FdJsonObjectMapper.getObjectMapper(); try { if (stream != null) jParser = jfactory.createParser(stream); else jParser = jfactory.createParser(file); JsonToken currentToken = jParser.nextToken(); long then = new DateTime().getMillis(); JsonNode node; if (currentToken == JsonToken.START_ARRAY || currentToken == JsonToken.START_OBJECT) { while (currentToken != null && currentToken != JsonToken.END_OBJECT) { while (currentToken != null && jParser.nextToken() != JsonToken.END_ARRAY) { node = om.readTree(jParser); if (node != null) { processJsonNode(node, extractProfile.getContentModel(), referenceInputBeans); if (stopProcessing(rows++, then)) { break; } } currentToken = jParser.nextToken(); } } } else if (currentToken == JsonToken.START_OBJECT) { //om.readTree(jParser); node = om.readTree(jParser); processJsonNode(node, extractProfile.getContentModel(), referenceInputBeans); } } catch (IOException e1) { logger.error("Unexpected", e1); } } finally { getPayloadWriter().flush(); } return endProcess(watch, rows, 0); }
From source file:org.openhab.binding.weather.internal.parser.JsonWeatherParser.java
@Override public void parseInto(String r, Weather weather) throws Exception { JsonFactory jsonFactory = new JsonFactory(); JsonParser jp = jsonFactory.createParser(r); jp.nextValue();// w w w .ja v a2 s. c o m handleToken(jp, null, weather); jp.close(); super.parseInto(r, weather); }
From source file:org.sead.repositories.reference.RefRepository.java
private JsonNode getAggregation(String id, File indexFile, CountingInputStream cis, boolean withChildren, Long oreFileSize) throws JsonParseException, JsonMappingException, IOException { log.debug("Getting Aggregation"); long curPos = 0; // Always need to generate these ArrayList<String> entries = new ArrayList<String>(); ArrayList<Long> offsets = new ArrayList<Long>(); FileInputStream fis = new FileInputStream(indexFile); JsonFactory f = new MappingJsonFactory(); JsonParser jp = f.createParser(fis); JsonToken current;/*w w w . j a v a 2 s .com*/ log.debug("Reading Index file"); current = jp.nextToken(); // Start object while ((current = jp.nextToken()) != null) { if (current.equals(JsonToken.FIELD_NAME)) { String fName = jp.getText(); current = jp.nextToken(); // Get to start of // value long offset = jp.getLongValue(); log.trace("Adding: " + fName + " : " + offset); entries.add(fName); offsets.add(offset); } } IOUtils.closeQuietly(fis); File descFile = getDescFile(id); InputStream is = new FileInputStream(descFile); ObjectNode resultNode = (ObjectNode) mapper.readTree(is); IOUtils.closeQuietly(is); log.trace(resultNode.toString()); if ((resultNode.has("Has Part")) && withChildren) { resultNode = getChildren(resultNode, indexFile, cis, oreFileSize, curPos, entries, offsets); } else { resultNode.remove("aggregates"); } log.debug("Aggregation retrieved"); return resultNode; }
From source file:org.sead.repositories.reference.RefRepository.java
private JsonNode getItem(String item, File indexFile, CountingInputStream cis, boolean withChildren, Long oreFileSize, long curOffset, ArrayList<String> entries, ArrayList<Long> offsets) throws JsonParseException, JsonMappingException, IOException { log.trace("Getting: " + item + " with starting offset: " + curOffset); long curPos = curOffset; if ((entries == null) || (offsets == null)) { entries = new ArrayList<String>(); offsets = new ArrayList<Long>(); FileInputStream fis = new FileInputStream(indexFile); JsonFactory f = new MappingJsonFactory(); JsonParser jp = f.createParser(fis); JsonToken current;//from w w w . ja va2 s.c o m log.trace("Reading Index file"); current = jp.nextToken(); // Start object while ((current = jp.nextToken()) != null) { if (current.equals(JsonToken.FIELD_NAME)) { String fName = jp.getText(); current = jp.nextToken(); // Get to start of // value long offset = jp.getLongValue(); log.trace("Adding: " + fName + " : " + offset); entries.add(fName); offsets.add(offset); } } try { fis.close(); } catch (Exception e) { log.debug(e.getMessage()); } } byte[] b = null; int bytesRead = 0; int index = entries.indexOf(item); if (index == -1) { log.warn(item + " not in index"); } // getSizeEstimateFor(index) int estSize; if (index < offsets.size() - 1) { estSize = (int) (offsets.get(index + 1) - offsets.get(index)); } else { estSize = (int) (oreFileSize - offsets.get(index)); } curPos += skipTo(cis, curPos, offsets.get(index)); log.trace("Current Pos updated to : " + curPos); b = new byte[estSize]; bytesRead = cis.read(b); log.trace("Read " + bytesRead + " bytes"); if (bytesRead == estSize) { log.trace("Read: " + new String(b)); InputStream is = new ByteArrayInputStream(b); // mapper seems to be OK ignoring a last char such as a comma after // the object/tree ObjectNode resultNode = (ObjectNode) mapper.readTree(is); try { is.close(); } catch (Exception e) { log.debug(e.getMessage()); } curPos += bytesRead; log.trace("curPos: " + curPos + " : count: " + cis.getByteCount()); log.trace(resultNode.toString()); if ((resultNode.has("Has Part")) && withChildren) { resultNode = getChildren(resultNode, indexFile, cis, oreFileSize, curPos, entries, offsets); } else { resultNode.remove("aggregates"); } /* * if (args[2] != null) { long offset2 = Long.parseLong(args[2]); * sbc.position(offset2); b.clear(); sbc.read(b); * * InputStream is2 = new ByteArrayInputStream(b.array()); * * JsonNode node2 = mapper.readTree(is2); * System.out.println(node2.toString()); is2.close(); } */ return resultNode; } else { return null; } }