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) |
Bepf (Diskussion | Beiträge) (→Standard-Datei) |
||
Zeile 1: | Zeile 1: | ||
+ | [[File:HWR-Chat-Logo.png|50px|right]] | ||
== Config-Manager == | == Config-Manager == | ||
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 12: | ||
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 | ||
+ | Gleichheitszeichen ("=") voneinander 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. | ||
+ | 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. | ||
− | + | Bsp.: | |
+ | ''DataBaseUserPassword = admin''<br> | ||
− | + | 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 Konfigurations-File es sich handelt. | ||
− | + | Die Konfigurationsdateien sollen standardmäß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 gefunden, wird eine Standard-Datei 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: | ||
+ | <pre> | ||
+ | ################################################################################## | ||
+ | #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 # | ||
+ | ################################################################################## | ||
+ | </pre> | ||
+ | |||
+ | Je nach Dateityp werden folgende Zeilen generiert: | ||
+ | (Die Werte entstammen den TestKonfigurationen) | ||
+ | <pre> | ||
+ | ################################Server-Config##################################### | ||
+ | DataBasePath = localhost:3306/hwr_chat | ||
+ | DataBaseUserName = chat_admin | ||
DataBaseUserPassword = admin | DataBaseUserPassword = admin | ||
+ | ServerPort = 11111 | ||
+ | UseDefaultUserPassword = false | ||
+ | DefaultUserPassword = Password | ||
+ | EmailSenderAddress = servus@lisa-debian-server.dyndns.org | ||
+ | EmailSmtpHost = lisa-debian-server.dyndns.org | ||
+ | EmailNeedAuthentication = false | ||
+ | </pre> | ||
+ | bzw. | ||
+ | |||
+ | <pre> | ||
+ | ################################Client-Config##################################### | ||
+ | ServerLocation = lisa-debian-server.dyndns.org | ||
+ | ServerPort = 5000 | ||
+ | FilePort = 1338 | ||
+ | ShowBullet = 1 | ||
+ | EnableLogging = 1 | ||
+ | </pre> |