The router management has been much easier with this approach as it uses launchd to do the dirty work. This code also uses java_home as a wrapper instead of locating the java binary by itself. This also contribute to the improvements.