/** * Add {@link ColumnfamilyResult} after it has been processed so it can be streamed to * meta.json. Streaming write to meta.json is required so we don't get Priam OOM. * * @param columnfamilyResult a POJO encapsulating the column family result * @throws IOException if unable to write to the file or if JSON is not valid */ public MetaFileWriterBuilder.DataStep addColumnfamilyResult( ColumnfamilyResult columnfamilyResult) throws IOException { if (jsonWriter == null) throw new NullPointerException( "addColumnfamilyResult: Json Writer in MetaFileWriter is null. This should not happen!"); if (columnfamilyResult == null) throw new NullPointerException( "Column family result is null in MetaFileWriter. This should not happen!"); jsonWriter.jsonValue(columnfamilyResult.toString()); return this; }
/** * Start the generation of meta file. * * @throws IOException if unable to write to meta file (permissions, disk full etc) */ public DataStep startMetaFileGeneration(Instant snapshotInstant) throws IOException { // Compute meta file name. this.snapshotInstant = snapshotInstant; String fileName = MetaFileInfo.getMetaFileName(snapshotInstant); metaFilePath = Paths.get(metaProxy.getLocalMetaFileDirectory().toString(), fileName); Path tempMetaFilePath = Paths.get(metaProxy.getLocalMetaFileDirectory().toString(), fileName + ".tmp"); logger.info("Starting to write a new meta file: {}", metaFilePath); jsonWriter = new JsonWriter(new FileWriter(tempMetaFilePath.toFile())); jsonWriter.beginObject(); jsonWriter.name(MetaFileInfo.META_FILE_INFO); jsonWriter.jsonValue(metaFileInfo.toString()); jsonWriter.name(MetaFileInfo.META_FILE_DATA); jsonWriter.beginArray(); return this; }
@Override public void write(final JsonWriter out, final T value) throws IOException { out.beginObject(); out.name("jobName").value(value.getTypeConfig().getCoreConfig().getJobName()); out.name("jobClass").value(value.getTypeConfig().getJobClass()); out.name("jobType").value(value.getTypeConfig().getJobType().name()); out.name("cron").value(value.getTypeConfig().getCoreConfig().getCron()); out.name("shardingTotalCount").value(value.getTypeConfig().getCoreConfig().getShardingTotalCount()); out.name("shardingItemParameters").value(value.getTypeConfig().getCoreConfig().getShardingItemParameters()); out.name("jobParameter").value(value.getTypeConfig().getCoreConfig().getJobParameter()); out.name("failover").value(value.getTypeConfig().getCoreConfig().isFailover()); out.name("misfire").value(value.getTypeConfig().getCoreConfig().isMisfire()); out.name("description").value(value.getTypeConfig().getCoreConfig().getDescription()); out.name("jobProperties").jsonValue(value.getTypeConfig().getCoreConfig().getJobProperties().json()); if (value.getTypeConfig().getJobType() == JobType.DATAFLOW) { DataflowJobConfiguration dataflowJobConfig = (DataflowJobConfiguration) value.getTypeConfig(); out.name("streamingProcess").value(dataflowJobConfig.isStreamingProcess()); } else if (value.getTypeConfig().getJobType() == JobType.SCRIPT) { ScriptJobConfiguration scriptJobConfig = (ScriptJobConfiguration) value.getTypeConfig(); out.name("scriptCommandLine").value(scriptJobConfig.getScriptCommandLine()); } writeCustomized(out, value); out.endObject(); }
public class RawJsonGsonAdapter extends TypeAdapter<String> { @Override public void write(final JsonWriter out, final String value) throws IOException { out.jsonValue(value); } @Override public String read(final JsonReader in) throws IOException { return null; // Not supported } }
private void writeFeatureForSubject(List<Field> fields, Subject subject, JsonWriter jsonWriter) throws IOException { jsonWriter.beginObject(); jsonWriter.name("type").value("Feature"); jsonWriter.name("geometry").jsonValue(getGeoJSONGeometryForSubject(subject)); jsonWriter.name("properties").jsonValue(getPropertiesForSubject(fields, subject).toJSONString()); jsonWriter.endObject(); }
public void write(JsonWriter w, Map<String, AttributeValue> map) throws IOException { if (map == null) { w.nullValue(); } else { // Uses the outer class's gson instance String json = gson.toJson(attributeValueMapToItem(map).asMap()); w.jsonValue(json); } }
@Override public void write(JsonWriter out, Geometry value) throws IOException { out.beginObject(); out.name("type").value(value.type()); if (value.bbox() != null) { out.name("bbox").jsonValue(value.bbox().toJson()); } if (value instanceof CoordinateContainer) { out.name("coordinates").jsonValue(((CoordinateContainer) value).coordinates().toString()); } out.endObject(); }
public class JsonRawTypeAdapter extends TypeAdapter<JsonRaw> { @Override public JsonRaw read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } return new JsonRaw(in.nextString()); } @Override public void write(JsonWriter out, JsonRaw value) throws IOException { if (value == null) { out.nullValue(); return; } out.jsonValue(value.getAsJson()); } }
public void write(JsonWriter w, Map<String, AttributeValue> map) throws IOException { if (map == null) { w.nullValue(); } else { // Uses the outer class's gson instance String json = gson.toJson(attributeValueMapToItem(map).asMap()); w.jsonValue(json); } }
@Override public void write(JsonWriter out, Geometry value) throws IOException { out.beginObject(); out.name("type").value(value.type()); if (value.bbox() != null) { out.name("bbox").jsonValue(value.bbox().toJson()); } if (value instanceof CoordinateContainer) { out.name("coordinates").jsonValue(((CoordinateContainer) value).coordinates().toString()); } out.endObject(); }
@Override public void write(final JsonWriter out, final T value) throws IOException { out.beginObject(); out.name("jobName").value(value.getTypeConfig().getCoreConfig().getJobName()); out.name("jobClass").value(value.getTypeConfig().getJobClass()); out.name("jobType").value(value.getTypeConfig().getJobType().name()); out.name("cron").value(value.getTypeConfig().getCoreConfig().getCron()); out.name("shardingTotalCount").value(value.getTypeConfig().getCoreConfig().getShardingTotalCount()); out.name("shardingItemParameters").value(value.getTypeConfig().getCoreConfig().getShardingItemParameters()); out.name("jobParameter").value(value.getTypeConfig().getCoreConfig().getJobParameter()); out.name("failover").value(value.getTypeConfig().getCoreConfig().isFailover()); out.name("misfire").value(value.getTypeConfig().getCoreConfig().isMisfire()); out.name("description").value(value.getTypeConfig().getCoreConfig().getDescription()); out.name("jobProperties").jsonValue(value.getTypeConfig().getCoreConfig().getJobProperties().json()); if (value.getTypeConfig().getJobType() == JobType.DATAFLOW) { DataflowJobConfiguration dataflowJobConfig = (DataflowJobConfiguration) value.getTypeConfig(); out.name("streamingProcess").value(dataflowJobConfig.isStreamingProcess()); } else if (value.getTypeConfig().getJobType() == JobType.SCRIPT) { ScriptJobConfiguration scriptJobConfig = (ScriptJobConfiguration) value.getTypeConfig(); out.name("scriptCommandLine").value(scriptJobConfig.getScriptCommandLine()); } writeCustomized(out, value); out.endObject(); }
@Override public void write(final JsonWriter out, final T value) throws IOException { out.beginObject(); out.name("jobName").value(value.getTypeConfig().getCoreConfig().getJobName()); out.name("jobClass").value(value.getTypeConfig().getJobClass()); out.name("jobType").value(value.getTypeConfig().getJobType().name()); out.name("cron").value(value.getTypeConfig().getCoreConfig().getCron()); out.name("shardingTotalCount").value(value.getTypeConfig().getCoreConfig().getShardingTotalCount()); out.name("shardingItemParameters").value(value.getTypeConfig().getCoreConfig().getShardingItemParameters()); out.name("jobParameter").value(value.getTypeConfig().getCoreConfig().getJobParameter()); out.name("failover").value(value.getTypeConfig().getCoreConfig().isFailover()); out.name("misfire").value(value.getTypeConfig().getCoreConfig().isMisfire()); out.name("description").value(value.getTypeConfig().getCoreConfig().getDescription()); out.name("jobProperties").jsonValue(value.getTypeConfig().getCoreConfig().getJobProperties().json()); if (value.getTypeConfig().getJobType() == JobType.DATAFLOW) { DataflowJobConfiguration dataflowJobConfig = (DataflowJobConfiguration) value.getTypeConfig(); out.name("streamingProcess").value(dataflowJobConfig.isStreamingProcess()); } else if (value.getTypeConfig().getJobType() == JobType.SCRIPT) { ScriptJobConfiguration scriptJobConfig = (ScriptJobConfiguration) value.getTypeConfig(); out.name("scriptCommandLine").value(scriptJobConfig.getScriptCommandLine()); } writeCustomized(out, value); out.endObject(); }