refactored server for dependancy injection, combined tests to run correctly in a multithreaded build

This commit is contained in:
Aidan Hahn 2019-05-21 15:04:18 -07:00
parent c599902ad5
commit ea3f84b830
No known key found for this signature in database
GPG key ID: 327711E983899316
3 changed files with 95 additions and 107 deletions

View file

@ -32,25 +32,17 @@ public class JobServServer {
private static final Logger logger = Logger.getLogger(JobServServer.class.getName());
private Server server;
private final int port;
private final SslContext ssl;
/*
* Constructor
* Sets port and builds sslContext
* builds server object
*/
public JobServServer(int port,
String serverCert,
String privateKey,
String trustStore) throws SSLException {
this.port = port;
SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(serverCert), new File(privateKey));
// Mutual TLS trust store and require client auth
sslContextBuilder.trustManager(new File(trustStore));
sslContextBuilder.clientAuth(ClientAuth.REQUIRE);
this.ssl = GrpcSslContexts.configure(sslContextBuilder).build();
public JobServServer(SslContext ssl, int port) throws IOException {
this.server = NettyServerBuilder.forPort(port)
.addService(new ShellServerService())
.sslContext(ssl)
.build()
.start();
}
/*
@ -59,11 +51,7 @@ public class JobServServer {
*/
private void start() throws IOException {
// TODO: this should be passed in from a configuration manager
server = NettyServerBuilder.forPort(port)
.addService(new ShellServerService())
.sslContext(this.ssl)
.build()
.start();
server.start();
logger.info("Server initialized!");
Runtime.getRuntime().addShutdownHook(new Thread() {
@ -112,7 +100,14 @@ public class JobServServer {
JobServServer server;
try {
server = new JobServServer(Integer.parseInt(args[0]), args[1], args[2], args[3]);
SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(args[1]), new File(args[2]));
// Mutual TLS trust store and require client auth
sslContextBuilder.trustManager(new File(args[3]));
sslContextBuilder.clientAuth(ClientAuth.REQUIRE);
server = new JobServServer(GrpcSslContexts.configure(sslContextBuilder).build(),
Integer.parseInt(args[0]));
} catch (InputMismatchException e) {
System.out.println("Invalid port!");
@ -121,9 +116,12 @@ public class JobServServer {
} catch (SSLException e) {
System.out.println(e.getMessage());
return;
}
} catch (IOException e) {
System.out.println(e.getMessage());
return;
}
server.start();
server.blockUntilShutdown();
}
}