}
/** {@inheritDoc} */
@Override
public synchronized void start(StartContext context) throws StartException {
final ProcessControllerClient client;
try {
final ProtocolClient.Configuration configuration = new ProtocolClient.Configuration();
configuration.setReadExecutor(Executors.newCachedThreadPool());
configuration.setServerAddress(new InetSocketAddress(environment.getProcessControllerAddress(), environment.getProcessControllerPort().intValue()));
configuration.setThreadFactory(Executors.defaultThreadFactory());
configuration.setSocketFactory(SocketFactory.getDefault());
client = ProcessControllerClient.connect(configuration, authCode, new ProcessMessageHandler() {
@Override
public void handleProcessAdded(final ProcessControllerClient client, final String processName) {
}
@Override
public void handleProcessStarted(final ProcessControllerClient client, final String processName) {
}
@Override
public void handleProcessStopped(final ProcessControllerClient client, final String processName, final long uptimeMillis) {
}
@Override
public void handleProcessRemoved(final ProcessControllerClient client, final String processName) {
}
@Override
public void handleProcessInventory(final ProcessControllerClient client, final Map<String, ProcessInfo> inventory) {
// TODO: reconcile our server list against the process controller inventory
}
@Override
public void handleConnectionShutdown(final ProcessControllerClient client) {
}
@Override
public void handleConnectionFailure(final ProcessControllerClient client, final IOException cause) {
}
@Override
public void handleConnectionFinished(final ProcessControllerClient client) {
}
});
client.requestProcessInventory();
} catch(IOException e) {
throw new StartException(e);
}
this.client = client;
}