refactored server for dependancy injection, combined tests to run correctly in a multithreaded build
This commit is contained in:
parent
c599902ad5
commit
ea3f84b830
3 changed files with 95 additions and 107 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue