
com.streamsets.pipeline.sdk.service.SdkJsonDataFormatGeneratorService Maven / Gradle / Ivy
/*
* Copyright (c) 2021 StreamSets Inc.
*/
package com.streamsets.pipeline.sdk.service;
import com.streamsets.pipeline.api.Record;
import com.streamsets.pipeline.api.base.BaseService;
import com.streamsets.pipeline.api.ext.ContextExtensions;
import com.streamsets.pipeline.api.ext.JsonRecordWriter;
import com.streamsets.pipeline.api.ext.json.Mode;
import com.streamsets.pipeline.api.service.ServiceDef;
import com.streamsets.pipeline.api.service.dataformats.DataFormatGeneratorService;
import com.streamsets.pipeline.api.service.dataformats.DataGenerator;
import com.streamsets.pipeline.api.service.dataformats.DataGeneratorException;
import com.streamsets.pipeline.api.service.dataformats.WholeFileChecksumAlgorithm;
import com.streamsets.pipeline.api.service.dataformats.WholeFileExistsAction;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
@ServiceDef(
provides = DataFormatGeneratorService.class,
version = 1,
label = "(Test) Runner implementation of very simple DataFormatGeneratorService that will always output JSON."
)
public class SdkJsonDataFormatGeneratorService extends BaseService implements DataFormatGeneratorService {
@Override
public DataGenerator getGenerator(OutputStream os) throws IOException {
ContextExtensions ext = ((ContextExtensions) getContext());
JsonRecordWriter recordWriter = ext.createJsonRecordWriter(new OutputStreamWriter(os, Charset.defaultCharset()), Mode.MULTIPLE_OBJECTS);
return new DataGeneratorImpl(recordWriter);
}
@Override
public boolean isPlainTextCompatible() {
return true;
}
@Override
public String getCharset() {
return "UTF-8";
}
@Override
public boolean isWholeFileFormat() {
return false;
}
@Override
public String wholeFileFilename(Record record) {
return null;
}
@Override
public WholeFileExistsAction wholeFileExistsAction() {
return null;
}
@Override
public boolean wholeFileIncludeChecksumInTheEvents() {
return false;
}
@Override
public WholeFileChecksumAlgorithm wholeFileChecksumAlgorithm() {
return null;
}
private static class DataGeneratorImpl implements DataGenerator {
private final JsonRecordWriter recordWriter;
DataGeneratorImpl(JsonRecordWriter recordWriter) {
this.recordWriter = recordWriter;
}
@Override
public void write(Record record) throws IOException, DataGeneratorException {
recordWriter.write(record);
}
@Override
public void flush() throws IOException {
recordWriter.flush();
}
@Override
public void close() throws IOException {
recordWriter.close();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy