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##################################### | ||