
fitnesse.testsystems.fit.SocketCatcher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
package fitnesse.testsystems.fit;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import fitnesse.http.HttpException;
import fitnesse.http.Request;
import fitnesse.socketservice.SocketServer;
public class SocketCatcher implements SocketServer {
private static final Logger LOG = Logger.getLogger(SocketCatcher.class.getName());
private final SocketAccepter accepter;
private final int ticketNumber;
public SocketCatcher(SocketAccepter accepter, int ticketNumber) {
this.accepter = accepter;
this.ticketNumber = ticketNumber;
}
@Override
public void serve(Socket s) throws IOException {
InputStream input = s.getInputStream();
Request request = new Request(input);
try {
request.parse();
} catch (HttpException e) {
LOG.log(Level.INFO, e.getMessage());
return;
}
if (!"socketCatcher".equals(request.getInput("responder"))) {
throw new IllegalArgumentException("Not a valid responder: " + request.getInput("responder"));
}
if (!Integer.toString(ticketNumber).equals(request.getInput("ticket"))) {
throw new IllegalArgumentException("Not a valid ticket: " + request.getInput("ticket"));
}
try {
accepter.acceptSocket(s);
} catch (InterruptedException e) {
LOG.log(Level.SEVERE, "Fit client interrupted");
Thread.currentThread().interrupt();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy