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
Admin (Diskussion | Beiträge) |
Bepf (Diskussion | Beiträge) (→Standard-Datei) |
||
Zeile 4: | Zeile 4: | ||
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. | ||
Zeile 13: | Zeile 13: | ||
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 ("=") | + | 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. | 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) | ||
Zeile 20: | Zeile 20: | ||
Bsp.: | Bsp.: | ||
− | ''DataBaseUserPassword = admin'' | + | ''DataBaseUserPassword = admin''<br> |
+ | |||
Zu beachten ist, dass ein Konfigurationsschlüssel somit nur einen Wert besitzen kann. Sollen nun mehrere Werte gespeichert werden | Zu beachten ist, dass ein Konfigurationsschlüssel somit nur einen Wert besitzen kann. Sollen nun mehrere Werte gespeichert werden | ||
Zeile 26: | Zeile 27: | ||
Die Aufsplittung muss dann wieder die entgegenehmende Java-Klasse bewerkstelligen. | Die Aufsplittung muss dann wieder die entgegenehmende Java-Klasse bewerkstelligen. | ||
− | Eine Raute am Zeilenanfang("#") wird als Kommentar gesehen und ignoriert. | + | Eine Raute am Zeilenanfang ("#") wird als Kommentar gesehen und ignoriert. |
=== Laufzeitverhalten === | === Laufzeitverhalten === | ||
− | Beim | + | Beim Instanziieren des Objekts muss angegeben werden, um welche Art des Konfigurations-File es sich handelt. |
− | Die Konfigurationsdateien sollen | + | 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" | + | Das Server-Config-File heißt "server.conf", das Client-Config-File heißt "client.conf". |
− | Wird keine Datei | + | Wird keine Datei gefunden, wird eine Standard-Datei generiert und verarbeitet. |
=== Schnittstelle === | === Schnittstelle === | ||
− | Für die Implementierung ist es wichtig geeignete Schnittstellen zu diesem Config-Manager herzustellen. | + | 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 | Alle gefundenen Konfigurationen werden in Form einer HashMap geliefert. Der erste String-Wert entspricht dem | ||
Schlüssel, der zweite dem String-Wert. | Schlüssel, der zweite dem String-Wert. | ||
− | Wurde das Objekt instanziiert steht eine Methode bereit um eine Konfiguration in das bestehende Config-File | + | Wurde das Objekt instanziiert, steht eine Methode bereit um eine Konfiguration in das bestehende Config-File zu schreiben. |
− | + | ||
− | zu schreiben. | + | |
=== Standard-Datei === | === Standard-Datei === | ||
− | Die | + | 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 | ||
+ | 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> |