in src/main/java/org/apache/sling/maven/feature/launcher/ProcessTracker.java [44:63]
public void startTracking(String launchId, Process process) {
synchronized (sync) {
if ( processes.containsKey(launchId) )
throw new IllegalArgumentException("Launch id " + launchId + " already associated with a process");
processes.put(launchId, process);
if ( ! hookAdded ) {
Runtime.getRuntime().addShutdownHook(new Thread("process-tracker-shutdown") {
@Override
public void run() {
for ( Map.Entry<String, Process> entry : processes.entrySet() ) {
System.err.println("Launch " + entry.getKey() + " was not shut down! Destroying forcibly from shutdown hook..");
process.destroyForcibly();
}
}
});
hookAdded = true;
}
}
}