package com.test.message;
import java.util.*;
import java.util.logging.Logger;
import org.apache.flume.*;
import org.apache.flume.conf.Configurable;
import org.apache.flume.sink.AbstractSink;
import org.slf4j.LoggerFactory;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
public class testmessage extends AbstractSink implements Configurable{
private Logger LOG = (Logger) LoggerFactory.getLogger(testmessage.class);
private String hostname;
private String port;
private String username;
private String password;
private int size;
public testmessage(){
LOG.info("Case_1 start...");
}
@Override
public void configure(Context context){
hostname = context.getString("hostname");
Preconditions.checkNotNull(hostname, "hostname must be set !!");
port = context.getString("port");
Preconditions.checkNotNull(port, "port must be set !!");
username = context.getString("username");
Preconditions.checkNotNull(username, "username must be set !!");
password = context.getString("password");
Preconditions.checkNotNull(password, "password must be set !!");
size = context.getInteger("size");
Preconditions.checkNotNull(size, "size must be set !!");
}
@Override
public void start(){
LOG.info("function start running");
LOG.info("hostname: " + hostname);
LOG.info("port: " + port);
LOG.info("username: " + username);
LOG.info("password: " + password);
}
@Override
public void stop(){
LOG.info("function stop running");
}
public int size(){
return size;
}
@Override
public Status process() throws EventDeliveryException{
Status result = Status.READY;
Channel channel = getChannel();
Transaction transaction = channel.getTransaction();
Event event;
String content;
List actions = Lists.newArrayList();
transaction.begin();
try{
for(int n=0; n < size; n++){
event = channel.take();
if(event != null){
content = new String(event.getBody());
LOG.info("content:"+content);
actions.add(content);
} else {
result = Status.BACKOFF;
break;
}
}
if(actions.size() > 0){
for(String temp : actions){
LOG.info(temp+" ");
}
}
} catch (Throwable e) {
((org.slf4j.Logger) LOG).error("Fail to show");
} finally {
transaction.close();
}
return result;
}
}