List of usage examples for javax.json.stream JsonGenerator writeEnd
JsonGenerator writeEnd();
From source file:at.porscheinformatik.sonarqube.licensecheck.mavenlicense.MavenLicense.java
public static String createString(Collection<MavenLicense> mavenLicenses) { TreeSet<MavenLicense> mavenLicenseSet = new TreeSet<>(); mavenLicenseSet.addAll(mavenLicenses); StringWriter jsonString = new StringWriter(); JsonGenerator generator = Json.createGenerator(jsonString); generator.writeStartArray();//w w w. j a v a 2 s. c o m for (MavenLicense mavenLicense : mavenLicenseSet) { generator.writeStartObject(); generator.write("licenseNameRegEx", mavenLicense.getLicenseNameRegEx().pattern()); generator.write("license", mavenLicense.getLicense()); generator.writeEnd(); } generator.writeEnd(); generator.close(); return jsonString.toString(); }
From source file:at.porscheinformatik.sonarqube.licensecheck.license.License.java
public static String createString(Collection<License> licenses) { TreeSet<License> licenseSet = new TreeSet<>(); licenseSet.addAll(licenses);//from w ww. j a v a2 s . c om StringWriter jsonString = new StringWriter(); JsonGenerator generator = Json.createGenerator(jsonString); generator.writeStartArray(); for (License license : licenseSet) { generator.writeStartObject(); generator.write("name", license.getName()); generator.write("identifier", license.getIdentifier()); generator.write("status", license.getStatus()); generator.writeEnd(); } generator.writeEnd(); generator.close(); return jsonString.toString(); }
From source file:com.mapr.data.sputnik.RandomJsonGenerator.java
protected void processItem(Object item, JsonGenerator gen, String currentContext) { if (String.class.isAssignableFrom(item.getClass())) { //literal string, just add it addValue(gen, null, (String) item); generatedValues.put(currentContext, (String) item); } else if (Map.class.isAssignableFrom(item.getClass())) { Map<String, Object> nestedProps = (Map<String, Object>) item; gen.writeStartObject();//ww w. j av a 2 s. c om processProperties(gen, nestedProps, currentContext + "."); gen.writeEnd(); } }
From source file:edu.harvard.hms.dbmi.bd2k.irct.ws.rs.resultconverter.JSONTabularDataConverter.java
@Override public StreamingOutput createStream(final Result result) { StreamingOutput stream = new StreamingOutput() { @Override//from w w w .j av a 2s. co m public void write(OutputStream outputStream) throws IOException, WebApplicationException { JsonGenerator jg = null; ResultSet rs = null; try { rs = (ResultSet) result.getData(); rs.load(result.getResultSetLocation()); Map<String, Object> properties = new HashMap<String, Object>(1); JsonGeneratorFactory jgf = Json.createGeneratorFactory(properties); jg = jgf.createGenerator(outputStream); jg.writeStartObject(); //Start Object jg.writeStartArray("columns"); // Get columns for (Column column : rs.getColumns()) { jg.write(column.toJson()); } jg.writeEnd(); //End columns jg.writeStartArray("data"); rs.beforeFirst(); while (rs.next()) { jg.writeStartArray(); //Begin Row Array for (int columnIndex = 0; columnIndex < rs.getColumnSize(); columnIndex++) { String value = rs.getString(columnIndex); if (value != null) { jg.writeStartObject(); jg.write(rs.getColumn(columnIndex).getName(), rs.getString(columnIndex)); jg.writeEnd(); } } jg.writeEnd(); //End Row Array } jg.writeEnd(); //End data jg.writeEnd(); //End Full Object } catch (ResultSetException | PersistableException e) { log.info("Error creating JSON Stream: " + e.getMessage()); } finally { if (jg != null) { jg.close(); } if (rs != null && !rs.isClosed()) { try { rs.close(); } catch (ResultSetException e) { e.printStackTrace(); } } if (outputStream != null) { outputStream.close(); } } } }; return stream; }
From source file:de.tu_dortmund.ub.data.dswarm.Init.java
public String call() { final String serviceName = config.getProperty(TPUStatics.SERVICE_NAME_IDENTIFIER); final String engineDswarmAPI = config.getProperty(TPUStatics.ENGINE_DSWARM_API_IDENTIFIER); final Optional<Boolean> optionalEnhanceInputDataResource = TPUUtil .getBooleanConfigValue(TPUStatics.ENHANCE_INPUT_DATA_RESOURCE, config); LOG.info(String.format("[%s][%d] Starting 'Init (Task)' ...", serviceName, cnt)); try {//from w ww .ja va 2s .c om final boolean doIngest; final String doIngestString = config.getProperty(TPUStatics.DO_INITIAL_DATA_MODEL_INGEST_IDENTIFIER); if (doIngestString != null && !doIngestString.trim().isEmpty()) { doIngest = Boolean.valueOf(doIngestString); } else { // default = true doIngest = true; } if (doIngest) { LOG.debug("[{}][{}] do data model creation with data ingest", serviceName, cnt); TPUUtil.initSchemaIndices(serviceName, config); } final String configurationFileName = config.getProperty(TPUStatics.CONFIGURATION_NAME_IDENTIFIER); final String configurationJSONString = readFile(configurationFileName, Charsets.UTF_8); final JsonObject configurationJSON = TPUUtil.getJsonObject(configurationJSONString); final String finalInputResourceFile; if (optionalEnhanceInputDataResource.isPresent() && Boolean.TRUE.equals(optionalEnhanceInputDataResource.get())) { final Optional<String> optionalUpdatedInputResourceFile = enhanceInputDataResource(initResourceFile, configurationJSON); if (optionalUpdatedInputResourceFile.isPresent()) { finalInputResourceFile = optionalUpdatedInputResourceFile.get(); } else { finalInputResourceFile = initResourceFile; } } else { finalInputResourceFile = initResourceFile; } final String name = String.format("resource for project '%s'", initResourceFile); final String description = String.format("'resource does not belong to a project' - case %d", cnt); final String inputResourceJson = uploadFileAndCreateResource(finalInputResourceFile, name, description, serviceName, engineDswarmAPI); if (inputResourceJson == null) { final String message = "something went wrong at resource creation"; LOG.error(message); throw new RuntimeException(message); } final JsonObject inputResourceJSON = TPUUtil.getJsonObject(inputResourceJson); final String inputResourceID = inputResourceJSON.getString(DswarmBackendStatics.UUID_IDENTIFIER); LOG.info(String.format("[%s][%d] input resource id = %s", serviceName, cnt, inputResourceID)); if (inputResourceID == null) { final String message = "something went wrong at resource creation, no resource uuid available"; LOG.error(message); throw new RuntimeException(message); } // TODO: refactor this, so that a configuration only needs to be create once per TPU task // create configuration final String finalConfigurationJSONString = createConfiguration(configurationJSONString, serviceName, engineDswarmAPI); if (finalConfigurationJSONString == null) { final String message = "something went wrong at configuration creation"; LOG.error(message); throw new RuntimeException(message); } final JsonObject finalConfigurationJSON = TPUUtil.getJsonObject(finalConfigurationJSONString); final String configurationID = finalConfigurationJSON.getString(DswarmBackendStatics.UUID_IDENTIFIER); LOG.info(String.format("[%s][%d] configuration id = %s", serviceName, cnt, configurationID)); if (configurationID == null) { final String message = "something went wrong at configuration creation, no configuration uuid available"; LOG.error(message); throw new RuntimeException(message); } // check for existing input schema final Optional<JsonObject> optionalInputSchema = getInputSchema(serviceName, engineDswarmAPI); // create the datamodel (will use it's resource) final String dataModelName = String.format("data model %d", cnt); final String dataModelDescription = String.format("data model description %d", cnt); final String dataModelJSONString = createDataModel(inputResourceJSON, finalConfigurationJSON, optionalInputSchema, dataModelName, dataModelDescription, serviceName, engineDswarmAPI, doIngest); if (dataModelJSONString == null) { final String message = "something went wrong at data model creation"; LOG.error(message); throw new RuntimeException(message); } final JsonObject dataModelJSON = TPUUtil.getJsonObject(dataModelJSONString); final String dataModelID = dataModelJSON.getString(DswarmBackendStatics.UUID_IDENTIFIER); LOG.info(String.format("[%s][%d] data model id = %s", serviceName, cnt, dataModelID)); if (dataModelID == null) { final String message = "something went wrong at data model creation, no data model uuid available"; LOG.error(message); throw new RuntimeException(message); } // we don't need to transform after each ingest of a slice of records, // so transform and export will be done separately LOG.info(String.format("[%s][%d] (Note: Only ingest, but no transformation or export done.)", serviceName, cnt)); final StringWriter stringWriter = new StringWriter(); final JsonGenerator jp = Json.createGenerator(stringWriter); jp.writeStartObject(); jp.write(DATA_MODEL_ID, dataModelID); jp.write(RESOURCE_ID, inputResourceID); jp.write(CONFIGURATION_ID, configurationID); jp.writeEnd(); jp.flush(); jp.close(); final String result = stringWriter.toString(); stringWriter.flush(); stringWriter.close(); return result; } catch (final Exception e) { final String message = String.format("[%s][%d] Processing resource '%s' failed with a %s", serviceName, cnt, initResourceFile, e.getClass().getSimpleName()); LOG.error(message, e); throw new RuntimeException(message, e); } }
From source file:de.tu_dortmund.ub.data.dswarm.Init.java
/** * creates a data model from given resource + configuration JSON (+ optional input schema) * * @param resourceJSON//from w w w.j av a2s .c o m * @param configurationJSON * @param optionalInputSchema * @param name * @param description * @return responseJson * @throws Exception */ private String createDataModel(final JsonObject resourceJSON, final JsonObject configurationJSON, final Optional<JsonObject> optionalInputSchema, final String name, final String description, final String serviceName, final String engineDswarmAPI, final boolean doIngest) throws Exception { try (final CloseableHttpClient httpclient = HttpClients.createDefault()) { final String uri = engineDswarmAPI + DswarmBackendStatics.DATAMODELS_ENDPOINT + APIStatics.QUESTION_MARK + DswarmBackendStatics.DO_DATA_MODEL_INGEST_IDENTIFIER + APIStatics.EQUALS + doIngest; final HttpPost httpPost = new HttpPost(uri); final StringWriter stringWriter = new StringWriter(); final JsonGenerator jp = Json.createGenerator(stringWriter); jp.writeStartObject(); jp.write(DswarmBackendStatics.NAME_IDENTIFIER, name); jp.write(DswarmBackendStatics.DESCRIPTION_IDENTIFIER, description); jp.write(CONFIGURATION_IDENTIFIER, configurationJSON); jp.write(DswarmBackendStatics.DATA_RESOURCE_IDENTIFIER, resourceJSON); if (optionalInputSchema.isPresent()) { LOG.info("[{}][{}] add existing input schema to input data model", serviceName, cnt); jp.write(DswarmBackendStatics.SCHEMA_IDENTIFIER, optionalInputSchema.get()); } jp.writeEnd(); jp.flush(); jp.close(); final StringEntity reqEntity = new StringEntity(stringWriter.toString(), ContentType.create(APIStatics.APPLICATION_JSON_MIMETYPE, Consts.UTF_8)); stringWriter.flush(); stringWriter.close(); httpPost.setEntity(reqEntity); LOG.info(String.format("[%s][%d] request : %s", serviceName, cnt, httpPost.getRequestLine())); try (final CloseableHttpResponse httpResponse = httpclient.execute(httpPost)) { final int statusCode = httpResponse.getStatusLine().getStatusCode(); final String message = String.format("[%s][%d] %d : %s", serviceName, cnt, statusCode, httpResponse.getStatusLine().getReasonPhrase()); final String response = TPUUtil.getResponseMessage(httpResponse); switch (statusCode) { case 201: { LOG.info(message); LOG.debug(String.format("[%s][%d] responseJson : %s", serviceName, cnt, response)); return response; } default: { LOG.error(message); throw new Exception("something went wrong at data model creation: " + message + " " + response); } } } } }
From source file:org.kuali.student.myplan.course.controller.CourseSearchController.java
@RequestMapping(value = "/course/updateFacets") public void updateFacets(HttpServletResponse response, HttpServletRequest request) { String formKey = request.getParameter(FORM_KEY_PARAM); response.setHeader("content-type", "application/json"); response.setHeader("Cache-Control", "No-cache"); response.setHeader("Cache-Control", "No-store"); response.setHeader("Cache-Control", "max-age=0"); HashMap<String, Object> meetingResults = new HashMap<String, Object>(); String meetings = request.getParameter(MEETING_FACETS_PARAM); CourseSearchForm searchForm = null;//from w w w. j a v a 2s .c o m if (StringUtils.hasText(formKey)) { try { meetingResults = new ObjectMapper().readValue(meetings, HashMap.class); } catch (IOException e) { e.printStackTrace(); } searchForm = (CourseSearchForm) ((UifFormManager) request.getSession().getAttribute("formManager")) .getSessionForm(formKey); Map<String, List<String>> meetingfacets = searchForm.getMeetingFacets(); for (String meeting : meetingResults.keySet()) { List<String> values = new ArrayList<String>(); if (StringUtils.hasText((String) meetingResults.get(meeting))) { values = Arrays.asList(((String) meetingResults.get(meeting)).split(",")); } meetingfacets.put(meeting, values); } searchForm.setMeetingFacets(meetingfacets); } StringWriter stringWriter = new StringWriter(); JsonGenerator jsonString = Json.createGenerator(stringWriter); jsonString.writeStartObject(); try { jsonString.write("STATUS", "SUCCESS"); jsonString.writeEnd().flush(); response.getWriter().println(stringWriter.toString()); } catch (Exception e) { logger.error("Could not write the response", e); } }
From source file:iing.uabc.edu.mx.persistencia.util.JSON.java
private static void stringifyObject(JsonGenerator generator, BeanManager manager) { String keyName;/*from www . j a va 2s. c o m*/ Field[] fields = manager.getFields(); //Read every field and transform it to a json property string for (Field field : fields) { Class fieldType = manager.getType(field.getName()); keyName = field.getName(); Object value = manager.getProperty(keyName); System.out.println("KeyName: " + keyName); System.out.println("Valor " + keyName + ": " + value); if (value == null) { //Set to null the property generator.writeNull(keyName); continue; } //Is a String if (fieldType == String.class) { generator.write(keyName, String.valueOf(value)); } //Is a Date else if (fieldType == Date.class) { String date = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(value); generator.write(keyName, date); } //Is a integer else if (fieldType == Integer.class || fieldType == Integer.TYPE) { generator.write(keyName, (int) value); } //Is a double else if (fieldType == Double.class || fieldType == Double.TYPE) { generator.write(keyName, (double) value); } //Is boolean else if (fieldType == Boolean.class || fieldType == Boolean.TYPE) { generator.write(keyName, (boolean) value); } //Is a collection else if (value instanceof Collection) { Class elementClass = manager.getCollectionElementType(keyName); System.out.println("Nueva Colleccion [] de clase: " + elementClass.getSimpleName()); generator.writeStartArray(keyName); //Create new collection manager with the given class CollectionManager collectionManager = new CollectionManager((Collection) value, elementClass); stringifyArray(generator, collectionManager); generator.writeEnd(); } else { //Is a object... probably BeanManager objectManager = new BeanManager(value); System.out.println("Nuevo Objecto {}: " + value.getClass().getSimpleName()); generator.writeStartObject(keyName); stringifyObject(generator, objectManager); generator.writeEnd(); } } }
From source file:iing.uabc.edu.mx.persistencia.util.JSON.java
public static void stringifyArray(JsonGenerator generator, CollectionManager manager) { //Get size of the array to start stringifying elements //Note that the elements of this array has to be of the same class Collection collection = manager.getCollection(); Class elementType = manager.getElementClass(); System.out.println("Coleccion de tamanio " + collection.size()); int i = 0;//w w w. java 2 s. com //Read every element and transform it to a json array element string for (Iterator it = collection.iterator(); it.hasNext();) { Object element = it.next(); System.out.println("Elemento: [" + i + "], Valor: " + element); if (element == null) { //Set to null the property generator.writeNull(); continue; } //Is a String if (elementType == String.class) { generator.write(String.valueOf(element)); } //Is a Date else if (elementType == Date.class) { String date = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(element); generator.write(date); } //Is a integer else if (elementType == Integer.class || elementType == Integer.TYPE) { generator.write((int) element); } //Is a double else if (elementType == Double.class || elementType == Double.TYPE) { generator.write((double) element); } //Is boolean else if (elementType == Boolean.class || elementType == Boolean.TYPE) { generator.write((boolean) element); } //Is a collection (Not implemented) else if (element instanceof Collection) { // Class elementClass = manager.getCollectionElementType(keyName); // // System.out.println("Nueva Colleccion [] de clase: " // + elementClass.getSimpleName()); // // generator.writeStartArray(keyName); // // //Create new collection manager with the given class // CollectionManager collectionManager // = new CollectionManager((Collection) value, elementClass); // // generator.writeEnd(); } else { //Is a object... probably BeanManager objectManager = new BeanManager(element); System.out.println("Nuevo Objecto {}: " + element.getClass().getSimpleName()); generator.writeStartObject(); stringifyObject(generator, objectManager); generator.writeEnd(); } } }
From source file:de.tu_dortmund.ub.data.dswarm.Transform.java
/** * configuration and processing of the task * * @param inputDataModelID/* w w w. ja v a 2 s. c o m*/ * @param projectIDs * @param outputDataModelID * @return */ private String executeTask(final String inputDataModelID, final Collection<String> projectIDs, final String outputDataModelID, final String serviceName, final String engineDswarmAPI, final Optional<Boolean> optionalDoIngestOnTheFly, final Optional<Boolean> optionalDoExportOnTheFly, final Optional<String> optionalExportMimeType, final Optional<String> optionalExportFileExtension) throws Exception { final JsonArray mappings = getMappingsFromProjects(projectIDs, serviceName, engineDswarmAPI); final JsonObject inputDataModel = getDataModel(inputDataModelID, serviceName, engineDswarmAPI); final JsonObject outputDataModel = getDataModel(outputDataModelID, serviceName, engineDswarmAPI); final Optional<JsonObject> optionalSkipFilter = getSkipFilter(serviceName, engineDswarmAPI); // erzeuge Task-JSON final String persistString = config.getProperty(TPUStatics.PERSIST_IN_DMP_IDENTIFIER); final boolean persist; if (persistString != null && !persistString.trim().isEmpty()) { persist = Boolean.valueOf(persistString); } else { // default is false persist = false; } final StringWriter stringWriter = new StringWriter(); final JsonGenerator jp = Json.createGenerator(stringWriter); jp.writeStartObject(); jp.write(DswarmBackendStatics.PERSIST_IDENTIFIER, persist); // default for now: true, i.e., no content will be returned jp.write(DswarmBackendStatics.DO_NOT_RETURN_DATA_IDENTIFIER, true); // default for now: true, i.e., if a schema is attached it will utilised (instead of being derived from the data resource) jp.write(DswarmBackendStatics.UTILISE_EXISTING_INPUT_IDENTIFIER, true); if (optionalDoIngestOnTheFly.isPresent()) { final Boolean doIngestOnTheFly = optionalDoIngestOnTheFly.get(); if (doIngestOnTheFly) { LOG.info(String.format("[%s][%d] do ingest on-the-fly", serviceName, cnt)); } jp.write(DswarmBackendStatics.DO_INGEST_ON_THE_FLY, doIngestOnTheFly); } if (optionalDoExportOnTheFly.isPresent()) { final Boolean doExportOnTheFly = optionalDoExportOnTheFly.get(); if (doExportOnTheFly) { LOG.info(String.format("[%s][%d] do export on-the-fly", serviceName, cnt)); } jp.write(DswarmBackendStatics.DO_EXPORT_ON_THE_FLY, doExportOnTheFly); } jp.write(DswarmBackendStatics.DO_VERSIONING_ON_RESULT_IDENTIFIER, false); // task jp.writeStartObject(DswarmBackendStatics.TASK_IDENTIFIER); jp.write(DswarmBackendStatics.NAME_IDENTIFIER, "Task Batch-Prozess 'CrossRef'"); jp.write(DswarmBackendStatics.DESCRIPTION_IDENTIFIER, "Task Batch-Prozess 'CrossRef' zum InputDataModel 'inputDataModelID '"); // job jp.writeStartObject(DswarmBackendStatics.JOB_IDENTIFIER); jp.write(DswarmBackendStatics.UUID_IDENTIFIER, UUID.randomUUID().toString()); jp.write(DswarmBackendStatics.MAPPINGS_IDENTIFIER, mappings); if (optionalSkipFilter.isPresent()) { jp.write(DswarmBackendStatics.SKIP_FILTER_IDENTIFIER, optionalSkipFilter.get()); } jp.writeEnd(); jp.write(DswarmBackendStatics.INPUT_DATA_MODEL_IDENTIFIER, inputDataModel); jp.write(DswarmBackendStatics.OUTPUT_DATA_MODEL_IDENTIFIER, outputDataModel); // end task jp.writeEnd(); // end request jp.writeEnd(); jp.flush(); jp.close(); final String task = stringWriter.toString(); stringWriter.flush(); stringWriter.close(); LOG.debug(String.format("[%s][%d] task : %s", serviceName, cnt, task)); try (final CloseableHttpClient httpclient = HttpClients.createDefault()) { // POST /dmp/tasks/ final HttpPost httpPost = new HttpPost(engineDswarmAPI + DswarmBackendStatics.TASKS_ENDPOINT); final StringEntity stringEntity = new StringEntity(task, ContentType.APPLICATION_JSON); stringEntity.setChunked(true); final String mimetype; if (optionalDoExportOnTheFly.isPresent() && optionalDoExportOnTheFly.get()) { if (optionalExportMimeType.isPresent()) { mimetype = optionalExportMimeType.get(); } else { // default export mime type is XML mimetype = APIStatics.APPLICATION_XML_MIMETYPE; } } else { mimetype = APIStatics.APPLICATION_JSON_MIMETYPE; } httpPost.setHeader(HttpHeaders.ACCEPT, mimetype); //httpPost.setHeader(HttpHeaders.TRANSFER_ENCODING, CHUNKED_TRANSFER_ENCODING); httpPost.setEntity(stringEntity); final Header[] requestHeaders = httpPost.getAllHeaders(); final String printedRequestHeaders = printHeaders(requestHeaders); LOG.info(String.format("[%s][%d] request : %s :: request headers : \n'%s' :: body : '%s'", serviceName, cnt, httpPost.getRequestLine(), printedRequestHeaders, stringEntity)); try (final CloseableHttpResponse httpResponse = httpclient.execute(httpPost)) { final Header[] responseHeaders = httpResponse.getAllHeaders(); final String printedResponseHeaders = printHeaders(responseHeaders); LOG.info(String.format("[%s][%d] response headers : \n'%s'", serviceName, cnt, printedResponseHeaders)); final int statusCode = httpResponse.getStatusLine().getStatusCode(); switch (statusCode) { case 204: { LOG.info(String.format("[%s][%d] %d : %s", serviceName, cnt, statusCode, httpResponse.getStatusLine().getReasonPhrase())); EntityUtils.consume(httpResponse.getEntity()); return "success"; } case 200: { if (optionalDoExportOnTheFly.isPresent() && optionalDoExportOnTheFly.get()) { LOG.info(String.format("[%s][%d] %d : %s", serviceName, cnt, statusCode, httpResponse.getStatusLine().getReasonPhrase())); final String exportFileExtension; if (optionalExportFileExtension.isPresent()) { exportFileExtension = optionalExportFileExtension.get(); } else { // XML as default file ending exportFileExtension = TaskProcessingUnit.XML_FILE_ENDING; } // write result to file final String fileName = TPUUtil.writeResultToFile(httpResponse, config, outputDataModelID + "-" + inputDataModelID + "-" + cnt, exportFileExtension); return "success - exported XML to '" + fileName + "'"; } } default: { LOG.error(String.format("[%s][%d] %d : %s", serviceName, cnt, statusCode, httpResponse.getStatusLine().getReasonPhrase())); final String response = TPUUtil.getResponseMessage(httpResponse); throw new Exception("something went wrong at task execution" + response); } } } } }