package helloworld;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.cloudera.flume.conf.Context;
import com.cloudera.flume.conf.SinkFactory.SinkBuilder;
import com.cloudera.flume.core.Event;
import com.cloudera.flume.core.EventSink;
import com.cloudera.util.Pair;
import com.google.common.base.Preconditions;
static final Logger LOG = LoggerFactory.getLogger(HelloWorldSink.class);
private PrintWriter pw;
@Override
public void open()
throws IOException {
pw = new PrintWriter(new FileWriter("helloworld.txt"));
}
@Override
public void append(Event e)
throws IOException {
pw.println(new String(e.getBody()));
pw.flush();
}
@Override
public void close()
throws IOException {
pw.flush();
pw.close();
}
public static SinkBuilder
builder() {
return new SinkBuilder() {
@Override
public EventSink
build(Context context, String... argv) {
Preconditions.checkArgument(argv.length == 0,
"usage: helloWorldSink");
return new HelloWorldSink();
}
};
}
List<Pair<String, SinkBuilder>> builders =
new ArrayList<Pair<String, SinkBuilder>>();
builders.add(new Pair<String, SinkBuilder>("helloWorldSink", builder()));
return builders;
}
}