package org.elasticsearch.module.graphite.test; import org.elasticsearch.common.collect.Lists; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; import java.util.Collection; public class GraphiteMockServer extends Thread { private int port; public Collection<String> content = Lists.newArrayList(); private ServerSocket server; private boolean isClosed = false; public GraphiteMockServer(int port) { this.port = port; } @Override public void run() { try { server = new ServerSocket(port); Socket client; while (!isClosed) { if (server.isClosed()) return; client = server.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); String msg; while ((msg = in.readLine()) != null) { content.add(msg.trim()); } } } catch (IOException e) { if (!(e instanceof SocketException)) { e.printStackTrace(); } } } public void close() throws Exception { isClosed = true; server.close(); } }