List of usage examples for javax.json.stream JsonGenerator write
JsonGenerator write(String name, boolean value);
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();//from ww w . j a v a2 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);/* www . jav a 2 s . c o m*/ 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:iing.uabc.edu.mx.persistencia.util.JSON.java
private static void stringifyObject(JsonGenerator generator, BeanManager manager) { String keyName;//from w ww . j ava 2 s .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:com.mapr.data.sputnik.RandomJsonGenerator.java
private javax.json.stream.JsonGenerator addValue(javax.json.stream.JsonGenerator gen, String propName, Object val) { if (val == null) { gen.writeNull(propName);/* w w w . j av a 2s .co m*/ } else if (String.class.isAssignableFrom(val.getClass())) { if (propName != null) { gen.write(propName, (String) val); } else { gen.write((String) val); } } else if (Boolean.class.isAssignableFrom(val.getClass())) { gen.write(propName, (Boolean) val); } else if (Long.class.isAssignableFrom(val.getClass())) { gen.write(propName, (Long) val); } else if (Integer.class.isAssignableFrom(val.getClass())) { gen.write(propName, (Integer) val); } else if (Double.class.isAssignableFrom(val.getClass())) { gen.write(propName, (Double) val); } else if (Date.class.isAssignableFrom(val.getClass())) { gen.write(propName, iso8601DF.format((Date) val)); } return gen; }
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 ww.j a va 2 s. 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:de.tu_dortmund.ub.data.dswarm.Transform.java
/** * configuration and processing of the task * * @param inputDataModelID//from 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); } } } } }
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.j ava 2 s . co m*/ 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: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;/* w ww. 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:nl.nn.adapterframework.align.content.JsonDocumentContainer.java
protected void generate(JsonGenerator g, String key, Object item) { if (item == null) { if (key != null) g.writeNull(key);// www. j a va 2 s .c o m else g.writeNull(); } else if (item instanceof String) { if (key != null) g.write(key, (String) item); else g.write((String) item); } else if (item instanceof Map) { if (key != null) g.writeStartObject(key); else g.writeStartObject(); for (Entry<String, Object> entry : ((Map<String, Object>) item).entrySet()) { generate(g, entry.getKey(), entry.getValue()); } g.writeEnd(); } else if (item instanceof List) { if (key != null) g.writeStartArray(key); else g.writeStartArray(); for (Object subitem : (List) item) { generate(g, null, subitem); } g.writeEnd(); } else { throw new NotImplementedException("cannot handle class [" + item.getClass().getName() + "]"); } }