TODO - Liste Satellite - Deamon. Befehlszeilenoptionen: [x] * Wird der sat-daemon ohne Optionen gestartet, soll er versuchen, eine existierende Identität zu laden. Sofern die Organization nicht gesetzt ist, oder das laden des Keys durch den AsymKeyHolder fehlschlägt, beendet sich der Daemon sofort wieder. [x] * Option --checkconfig Überprüft, ob die Identity richtig konfiguriert ist, d.h. eine Organization gesetzt, gültiger ladbarer Private+Public key. Wenn ja, System.exit(0), sonst System.exit(>0) [x] * Option --genid Generiert eine neue Identity mit dem übergebenen Organization-Name, und generiert ein neues Schlüsselpaar. Alles in die identity.properties speichern und bei Erfolg System.exit(0), sonst >0. [x] * Option --import Die Übergebene Identity in identity.properties speichern. Dabei sollte auch überprüft werden, ob es sich um ein gültiges Schlüsselpaar handelt. Wenn alles klappt. wieder exit(0), sonst >0. [x] * Option --submitkey Lädt die Identity, prüft Keypair auf Gültigkeit, und ruft anschließend per Thrift die Methode registerSatellite auf. Die übergeben IP Adresse wird einfach ungeprüft übermittelt. Für den Aufruf dieser Methode ist keine gültige Session nötig (da der Master ja die Identität dieses Satelliten noch gar nicht kennt). Tritt irgendwo ein Fehler auf, System.exit(>0), wenn der Aufruf klappt und die Methode true zurück gibt, .exit(0) [x] * Option --updateaddress Ruft mittels Thrift die Methode updateSatelliteAddress auf. Im Gegensatz zu submitkey braucht man hier eine gültige Session mit dem Master, wie bei z.B. getUploadInfos... Ebenfalls nur System.exit(0) aufrufen, wenn alle Schritte klappen und der Methodenaufruf true zurückgibt, sonst >0. Kannst dir noch überlegen, ob du für wiederkehrende Aufgaben Hilfsfunktionen baust. Für die einzelnen Optionen dürften weitere statische Methoden in der App.java ausreichen, damit es nicht eine fette main() gibt.