HWR-Chat: Config-Manager
Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739
Aus It2010-g1
(Seite angelegt und beschrieben) |
(Funktion weiter beschrieben) |
||
Zeile 2: | Zeile 2: | ||
Für die technische Umsetzung des HWR-Chats wird eine Klasse benötigt, die | Für die technische Umsetzung des HWR-Chats wird eine Klasse benötigt, die | ||
− | |||
Konfigurationsdateien lesen und schreiben kann. Diese Funktion wird z.B. | Konfigurationsdateien lesen und schreiben kann. Diese Funktion wird z.B. | ||
− | |||
benötigt um die Verbindungsdaten der Datenbank einstellen zu können, ohne dass | benötigt um die Verbindungsdaten der Datenbank einstellen zu können, ohne dass | ||
− | |||
eine Java Klasse neu kompiliert werden muss. | eine Java Klasse neu kompiliert werden muss. | ||
− | |||
Es muss zweierlei Arten von Konfigurationsdateien geben. | Es muss zweierlei Arten von Konfigurationsdateien geben. | ||
− | |||
Zum einen für den Server und zum anderen für den Client. | Zum einen für den Server und zum anderen für den Client. | ||
Zeile 16: | Zeile 11: | ||
Damit bestimmte Konfigurationen sauber eingelesen werden können müssen Regeln formuliert werden. | Damit bestimmte Konfigurationen sauber eingelesen werden können müssen Regeln formuliert werden. | ||
− | |||
Pro Zeile gibt es maximal eine Konfiguration. | Pro Zeile gibt es maximal eine Konfiguration. | ||
− | |||
Eine Konfiguration setzt sich aus dem Schlüssel(ein Name) und einem Wert zusammen. Beides wird durch ein | Eine Konfiguration setzt sich aus dem Schlüssel(ein Name) und einem Wert zusammen. Beides wird durch ein | ||
− | |||
Gleichheitszeichen ("=") von einander getrennt. Der Schlüssel und der Wert müssen auf jeden Fall zusammen(ein Wort) | Gleichheitszeichen ("=") von einander getrennt. Der Schlüssel und der Wert müssen auf jeden Fall zusammen(ein Wort) | ||
− | |||
geschrieben werden. Jede Abweichung von dieser Konfiguration hat zur Folge, dass diese nicht eingelesen wird. | geschrieben werden. Jede Abweichung von dieser Konfiguration hat zur Folge, dass diese nicht eingelesen wird. | ||
− | |||
Es versteht sich von selbst, dass eine Konfiguration nur dann Sinn macht, wenn diese dem System (den Java-Klassen) | Es versteht sich von selbst, dass eine Konfiguration nur dann Sinn macht, wenn diese dem System (den Java-Klassen) | ||
− | |||
bekannt ist. Die Schlüssel (Namen) dürfen nicht variieren. | bekannt ist. Die Schlüssel (Namen) dürfen nicht variieren. | ||
Bsp.: | Bsp.: | ||
− | DataBaseUserPassword = admin | + | ''DataBaseUserPassword = admin'' |
+ | Zu beachten ist, dass ein Konfigurationsschlüssel somit nur einen Wert besitzen kann. Sollen nun mehrere Werte gespeichert werden | ||
+ | |||
+ | (z.B. Liste von geblockten Nutzern (nur ein Bsp.)) müssen diese als einzelner String (z.b. User1;User2;User3) eingetragen werden. | ||
+ | |||
+ | Die Aufsplittung muss dann wieder die entgegenehmende Java-Klasse bewerkstelligen. | ||
+ | Eine Raute am Zeilenanfang("#") wird als Kommentar gesehen und ignoriert. | ||
+ | |||
+ | === Laufzeitverhalten === | ||
+ | Beim instanziieren des Objekts muss angegeben werden, um welche Art des KonfigurationsFile es sich handelt. | ||
+ | |||
+ | Die Konfigurationsdateien sollen standard-mäßig im gleichen Verzeichnis liegen in dem die Java Klasse gestartet wurde. | ||
+ | |||
+ | Das Server-Config-File heißt "server.conf", das Client-Config-File heißt "client.conf" | ||
+ | Wird keine Datei gefuden, wird eine StandardDatei generiert und verarbeitet. | ||
+ | |||
+ | === Schnittstelle === | ||
+ | Für die Implementierung ist es wichtig geeignete Schnittstellen zu diesem Config-Manager herzustellen. | ||
+ | |||
+ | Alle gefundenen Konfigurationen werden in Form einer HashMap geliefert. Der erste String-Wert entspricht dem | ||
+ | |||
+ | Schlüssel, der zweite dem String-Wert. | ||
+ | Wurde das Objekt instanziiert steht eine Methode bereit um eine Konfiguration in das bestehende Config-File | ||
+ | |||
+ | zu schreiben. | ||
+ | |||
+ | === Standard-Datei === | ||
+ | Die Standardmäßig vorhandene Datei (bzw. die, die erstellt wird) sieht folgendermaßen aus: | ||
+ | |||
+ | |||
+ | |||
+ | ################################################################################## | ||
+ | #Diese Datei beinhaltet verschiedene Konfigurationsmöglichkeiten für den HWR-Chat# | ||
+ | #Eine Einstellung muss dem Schema: NameDerEinstellung = Wert entsprechen # | ||
+ | #Jede Abweichung wird ignoriert, nur bekannte Einstellungen werden berücksichtigt# | ||
+ | #Eine Raute (#) am Zeilenanfang wird ignoriert # | ||
+ | ################################################################################## | ||
+ | |||
+ | Je nach Dateityp werden folgende Zeilen generiert: | ||
+ | |||
+ | ################################Server-Config##################################### | ||
+ | |||
+ | ################################Client-Config##################################### |