use of com.fasterxml.jackson.databind.ObjectWriter in project series-rest-api by 52North.
the class BaseController method writeExceptionResponse.
private void writeExceptionResponse(WebException e, HttpServletResponse response, HttpStatus status) {
final String logMessage = "An exception occured: \n {}";
if (status == HttpStatus.INTERNAL_SERVER_ERROR) {
LOGGER.error(logMessage, e);
} else {
LOGGER.debug(logMessage, e);
}
// TODO consider using a 'suppress_response_codes=true' parameter and always return 200 OK
response.setStatus(status.value());
response.setContentType(Constants.MimeType.APPLICATION_JSON.getMimeType());
ObjectMapper objectMapper = createObjectMapper();
ObjectWriter writer = objectMapper.writerFor(ExceptionResponse.class);
ExceptionResponse exceptionResponse = ExceptionResponse.createExceptionResponse(e, status);
try (OutputStream outputStream = response.getOutputStream()) {
writer.writeValue(outputStream, exceptionResponse);
} catch (IOException ioe) {
LOGGER.error("Could not process error message.", ioe);
}
}
use of com.fasterxml.jackson.databind.ObjectWriter in project dhis2-core by dhis2.
the class V2_33_5__Update_job_parameters_with_system_setting_values method migrate.
@Override
public void migrate(final Context context) throws Exception {
// 1. Fetch data from SystemSettings if present
int trackerPageSize = 0;
int eventPageSize = 0;
int dataValuesPageSize = 0;
String sql = "SELECT value FROM systemsetting WHERE name = '" + TRACKER_PROGRAM_SYNC_PAGE_SIZE + "';";
try (Statement stmt = context.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
if (rs.next()) {
trackerPageSize = (Integer) SerializationUtils.deserialize(rs.getBytes("value"));
}
}
sql = "SELECT value FROM systemsetting WHERE name = '" + EVENT_PROGRAM_SYNC_PAGE_SIZE + "';";
try (Statement stmt = context.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
if (rs.next()) {
eventPageSize = (Integer) SerializationUtils.deserialize(rs.getBytes("value"));
}
}
sql = "SELECT value FROM systemsetting WHERE name = '" + DATA_VALUES_SYNC_PAGE_SIZE + "';";
try (Statement stmt = context.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
if (rs.next()) {
dataValuesPageSize = (Integer) SerializationUtils.deserialize(rs.getBytes("value"));
}
}
log.info("Following values were found in SystemSettings: trackerPageSize: " + trackerPageSize + ", eventPageSize: " + eventPageSize + ", dataValuePageSize: " + dataValuesPageSize);
// 2. Update jobParameters with data from SystemSettings
if (trackerPageSize > 0 || eventPageSize > 0 || dataValuesPageSize > 0) {
Map<Integer, JobParameters> updatedJobParameters = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
mapper.activateDefaultTyping(BasicPolymorphicTypeValidator.builder().allowIfBaseType(JobParameters.class).build());
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
JavaType resultingJavaType = mapper.getTypeFactory().constructType(JobParameters.class);
ObjectReader reader = mapper.readerFor(resultingJavaType);
ObjectWriter writer = mapper.writerFor(resultingJavaType);
if (trackerPageSize > 0) {
sql = "SELECT jobconfigurationid, jsonbjobparameters FROM jobconfiguration " + "WHERE jobtype = '" + JobType.TRACKER_PROGRAMS_DATA_SYNC.name() + "';";
try (Statement stmt = context.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
TrackerProgramsDataSynchronizationJobParameters jobparams = reader.readValue(rs.getString("jsonbjobparameters"));
jobparams.setPageSize(trackerPageSize);
updatedJobParameters.put(rs.getInt("jobconfigurationid"), jobparams);
}
}
}
if (eventPageSize > 0) {
sql = "SELECT jobconfigurationid, jsonbjobparameters FROM jobconfiguration " + "WHERE jobtype = '" + JobType.EVENT_PROGRAMS_DATA_SYNC.name() + "';";
try (Statement stmt = context.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
EventProgramsDataSynchronizationJobParameters jobparams = reader.readValue(rs.getString("jsonbjobparameters"));
jobparams.setPageSize(eventPageSize);
updatedJobParameters.put(rs.getInt("jobconfigurationid"), jobparams);
}
}
}
sql = "SELECT jobconfigurationid, jsonbjobparameters FROM jobconfiguration " + "WHERE jobtype = '" + JobType.META_DATA_SYNC.name() + "';";
try (Statement stmt = context.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
MetadataSyncJobParameters jobparams = reader.readValue(rs.getString("jsonbjobparameters"));
if (trackerPageSize > 0) {
jobparams.setTrackerProgramPageSize(trackerPageSize);
}
if (eventPageSize > 0) {
jobparams.setEventProgramPageSize(eventPageSize);
}
if (dataValuesPageSize > 0) {
jobparams.setDataValuesPageSize(dataValuesPageSize);
}
updatedJobParameters.put(rs.getInt("jobconfigurationid"), jobparams);
}
}
for (Map.Entry<Integer, JobParameters> jobParams : updatedJobParameters.entrySet()) {
try (PreparedStatement ps = context.getConnection().prepareStatement("UPDATE jobconfiguration SET jsonbjobparameters = ? where jobconfigurationid = ?;")) {
PGobject pg = new PGobject();
pg.setType("jsonb");
pg.setValue(writer.writeValueAsString(jobParams.getValue()));
ps.setObject(1, pg);
ps.setInt(2, jobParams.getKey());
ps.execute();
}
}
}
// 3. Remove entries from systemsetting table
try (Statement stmt = context.getConnection().createStatement()) {
stmt.executeUpdate("DELETE FROM systemsetting WHERE name IN ('" + TRACKER_PROGRAM_SYNC_PAGE_SIZE + "', '" + EVENT_PROGRAM_SYNC_PAGE_SIZE + "', '" + DATA_VALUES_SYNC_PAGE_SIZE + "');");
}
}
use of com.fasterxml.jackson.databind.ObjectWriter in project xm-ms-entity by xm-online.
the class EntityToCsvConverterUtils method toCsv.
/**
* Writes entities to csv file.
* @param o the object which serialize to csv
* @param schema the csv schema
* @return byte array of csv file
*/
public static byte[] toCsv(Object o, CsvSchema schema) {
if (o == null) {
log.warn("Passed empty object for serialize, therefore return empty byte array which represents csv file");
return new byte[0];
}
CsvMapper mapper = createDefaultCsvMapper();
ObjectWriter csvWriter = mapper.writer(schema);
try {
return csvWriter.writeValueAsBytes(o);
} catch (JsonProcessingException e) {
throw new IllegalStateException("Exception while writing data to csv file", e);
}
}
use of com.fasterxml.jackson.databind.ObjectWriter in project hive by apache.
the class HiveJsonWriter method write.
/**
* Given an Object and an ObjectInspector, convert the structure into a JSON
* text string.
*
* @param o The object to convert
* @param objInspector The ObjectInspector describing the object
* @return A String containing the JSON text
* @throws SerDeException The object cannot be transformed
*/
public String write(final Object o, final ObjectInspector objInspector) throws SerDeException {
final JsonNode rootNode = walkObjectGraph(objInspector, o, rootStructFieldNames);
LOG.debug("Create JSON tree from Object tree: {}", rootNode);
try {
final ObjectWriter ow = isEnabled(Feature.PRETTY_PRINT) ? this.mapper.writerWithDefaultPrettyPrinter() : this.mapper.writer();
return ow.writeValueAsString(rootNode);
} catch (JsonProcessingException e) {
throw new SerDeException(e);
}
}
use of com.fasterxml.jackson.databind.ObjectWriter in project uPortal by Jasig.
the class JpaStatisticalSummaryTest method testStorelessUnivariateStatistic.
public void testStorelessUnivariateStatistic(StorelessUnivariateStatistic sus, double expected) throws Exception {
assertEquals(expected, sus.getResult(), 0.1);
final ObjectMapper mapper = new ObjectMapper();
mapper.findAndRegisterModules();
// Configure Jackson to just use fields
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
mapper.setVisibility(PropertyAccessor.GETTER, Visibility.NONE);
mapper.setVisibility(PropertyAccessor.IS_GETTER, Visibility.NONE);
mapper.setVisibility(PropertyAccessor.SETTER, Visibility.NONE);
mapper.setVisibility(PropertyAccessor.CREATOR, Visibility.NONE);
mapper.addMixInAnnotations(Object.class, IgnoreTypeMixIn.class);
final FilterProvider filters = new SimpleFilterProvider().addFilter("storedDataFilter", SimpleBeanPropertyFilter.serializeAllExcept("storedData"));
final ObjectWriter ssWriter = mapper.writer(filters);
final ObjectReader ssReader = mapper.reader(sus.getClass());
final String susString = ssWriter.writeValueAsString(sus);
System.out.println(susString);
final StorelessUnivariateStatistic newSus = ssReader.readValue(susString);
assertEquals(expected, newSus.getResult(), 0.1);
}
Aggregations