5.9.0 20260411
??: Facelift: Status / Index / Templates
??: Review: Optimization and corrections
??: Competition: 25 years Devwex, raffle 10x 3.5" disk with Seanox Devwex
    Send an e-mail to devwex@seanox.com by 06/21/2026 and you could win one of
    the 10 disks for free.

5.8.0 2025xxxx
BF: HTTP(S): Update / standardization of HTTP status messages
BF: HTTP(S): Omission of status 424, which was simply incorrect
    Status 400 and 500 are now used correctly.
??: Windows: Update of service-32.exe / service-64.exe (prunsrv.exe 1.4.x)
??: Documentation: Update for Unix and Linux
??: Documentation: Architecture image
??: Service: devwex start [directory] (read all ini files from directory)
??: Automation (build, test, release) via GitHub actions

5.7.0 20241214
BF: Unix/Linux: Correction of the missing second start parameter in the bash script
BF: Windows: Correction of the missing second start parameter in the batch script
BF: HTTP(S): Correction of the Accept header when using CGI
    The server has incorrectly determined the content type for the CGI.
    Now the CGI must take care of the Accept header, as it should.
BF: Service: Optimization of automatic resource clean-up
BF: Service: Optimization for UTF-8
    In relation to RFC 20, RFC 1345, RFC 2616, RFC 7230: 7-bit US-ASCII and in
    extension ISO-8859-1 are supported for request and response.
CR: Unix/Linux: Optimization of bash scripts and runtime directory handling
    - Optimization of JRE determination in the runtime directory
      The Directory name does not matter, it is searched for files ./java,
      ./jre/bin/java and ./bin/java.
    - Optimization when including the runtime sub-directories
      The runtime directories and, if available, the bin subdirectory are added
      to the PATH variable.
    - Change of the automatic runtime-script integration
      The ./runtime/scripts directory is omitted, the *.sh files are searched
      in the root of the ./runtime directory.
CR: Windows: Optimization of batch scripts and runtime directory handling
    - Optimization of JRE determination in the runtime directory
      The Directory name does not matter, it is searched for files .\java.exe,
      .\jre\bin\java.exe and .\bin\java.exe.
    - Optimization when including the runtime sub-directories
      The runtime directories and, if available, the bin subdirectory are added
      to the PATH variable.
    - Change of the automatic runtime-script integration
      The .\runtime\scripts directory is omitted, the *.bat and *.cmd files are
      searched in the root of the .\runtime directory.
CR: HTTP(S): Optimization of the composition of the UNIQUE_ID
CR: Documentation: Switch to Markdown
CR: Test: Review and Integration in build.xml (preparation for automation)
CR: Windows: Update of service-32.exe / service-64.exe (prunsrv.exe 1.4.0.0)
    https://dlcdn.apache.org//commons/daemon/binaries/windows/
    https://commons.apache.org/proper/commons-daemon/changes-report.html

5.6.0 20231227
BF: Review: Optimization and corrections
    And the binary becomes a bit smaller again :-)
BF: Worker: Correction of the unwanted SocketException on stop and restart
    The behavior is correct, only the error output is wrong.
BF: Worker: Correction of logging if the client closes the connection unexpectedly
    In some cases, the http_host variable for logging was not yet set.
BF: HTML: Cleanup of the obsolete type attribute in the style tag
BF: Project: Update of slogan (Experimental Server Engine)
BF: (Class)Loader: Optimization and corrections of error handling
    Important errors such as UnsupportedClassVersionError are no longer swallowed.
BR: Windows: Optimization and corrections for case insensitive commands
    concerning service.cmd
CR: XAPI: Change method String Module.explain() to String Module.expose()
CR: SAPI: Change method String Server.explain() to String Server.expose()
CR: Documentation: Reduction to English
CR: Test: Integration of the test environment
    The related devwex-test project is obsolete.
CR: Windows: Update of service-32.exe / service-64.exe (prunsrv.exe 1.3.4.0)
    https://dlcdn.apache.org//commons/daemon/binaries/windows/
CR: Windows: Optimization of JRE determination

5.5.0 20221007
BF: Review: Optimization and corrections (without functional impact)
    The binary is getting a little smaller again. I did not expect that :-)
BF: Generator: Correction when parsing structures
    Structures deeper 65535 levels no longer cause an exception.
BF: SAPI: Correction of passed context to constructor
    Until now the context always ended with section :INI -- that was wrong.
BF: HTTP(S): Added status 301 in the list of status codes
BF: HTTP(S): BLOCKSIZE, INTERRUPT, ISOLATION, TIMEOUT is changeable by virtual host
BF: Build: Empty storage directory is included in the zip file
CR: Build: Releases are now only available on the release page
CR: Build: Simplification when inserting release infos
CR: License: Changed to Apache License Version 2.0
CR: Service: Added configuration file as optional program argument for startup
    usage: devwex [start] [file]
CR: SAPI: Constructors for servers support alternative signature(s)
    Server(String context, Object initialize)
    Server(String context, Initialize initialize)
CR: Windows: Update of service-32.exe / service-64.exe (prunsrv.exe 1.3.1.0)
CR: HTTP(S): Consolidation of TIMEOUT, DURATION, ISOLATION
    TIMEOUT timeout for sockets (SO_TIMEOUT), request, streams, option [S] is omitted
    ISOLATION maximum time of (X)CGI processes
    If exceeded, the request is isolated and closed with an HTTP error status.
    This also protects against blocked or extremely slow data streams.
    DURATION is omitted

5.4.0 20210411
BF: HTTP(S) Server Status: Update of class 4xx
BF: HTTP(S) CGI: Correction of REQUEST_URI
    Without normalization/decoding (unchanged as received from the client)
BF: HTTP(S) CGI: Correction of SCRIPT_URI / SCRIPT_URL
    Without normalization/decoding (unchanged as received from the client)
BF: Service: Optimization / correction of Service::Print
BF: Documentation: Update / corrections
CR: HTTP(S) CGI: Output of the error pipe of the CGI process
CR: HTTP(S) CGI: PATH_CONTEXT replaces PATH_ABSOLUTE (omitted)
CR: Build: Target release replaced archive (omitted)
CR: Windows: Integration and merge of Seanox Devwex Service project
    Maintenance, build and release of the Windows service integrated into this project.
    The implementation of the service has been completely revised.

5.3.0 20200831
BF: HTTP(S) AccessLog: Correction in the file name of the log file (use http_host instead of remote_host)
BF: HTTP(S) Content Types: Correction of xml/xsl/xslt to use application/xslt+xml
BF: HTTP(S) Request: Correction of the request validation
    In some cases the request is aborted with status 400 when the network connector is busy,
    because the worker assumed that no data is being sent.
    Statuses 408 and 413 may have been overwritten with status 400.
BF: Generator: Correction of expensive/hungry RegExp
    e.g. #[xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx]
BF: Manual: Correction for chrome-based browsers
CR: Manual: Improvement of the navigation
CR: Project: Automatic update of the version in README.md
CR: Build: Harmonization when updating the version
CR: HTTP(S) Status: Added option [H] (Header Only)
    The option is used in devwex.ini section STATUSCODES and indicates a status,
    so that requests with this status are answered only with a header and without body.
CR: HTTP(S) CGI: Not allowed/configured methods are now answered with status 405
    Previously the requests were answered with status 403.
CR: HTTP(S) CGI: Update of the PHP preparation
CR: HTTP(S) CGI: Change of the option [P] to [D]
CR: HTTP(S) Directory Index: Optimization / reduction of code
    Generation of the file list in the Generator instead of the Worker.
CR: HTTP(S) Directory Index: Change from placeholder 'files' to 'file'
CR: HTTP(S) Directory Index: Omission of the formatting of the file size
    Approach: The directory index should only provide locale independent data.
    The formatting can later be done with CSS.      
CR: HTTP(S) Directory Index: Realignment of the column 'type' 
CR: Worker: Optimization / reduction of code
CR: Remote: Optimization / reduction of code
CR: Sources: Update of the comment format
CR: XAPI: Integration of cascaded components
        e.g. com.seanox.xapi.Server > example.time.Server
    Components/classes are bound by delegated/cascaded calls instead of inheritance.
    This allows e.g. to use different constructors and the insertion of additional ClassLoaders.
    Inheritance can still be used, also in combination.

5.2.0 20190502
BF: HTTP(S) Correction
    - Basic Authentication / Digest Access Authentication: rules are used again case-insentive
BF: Generator: Correction when rendering successive placeholders #[...]#[...]
BF: HTTP(S) Request: Optimization/correction for invalid requests/connections without data streams
CR: Generator: Optimization / Review
    - Optimization: Handling of segments/scopes/fragements
      Improvement of dedicated and partial use
    - Omission of namespaces, replacement by the dedicated/partial use of segments
    - Change of syntax, omission of character ':' for segments   
      old: #[foo:[[...]]], new: #[foo[[...]]]
    - Enhancement by a deep/recursive processing of Hashtable + Collections  
    - Change of the parser/renderer:
      The template is initially prepared, the later addition of placeholders and/or
      segments is no longer supported.
CR: HTTP(S) AccessLog: Optimization
    - Change to a print formatted syntax
      date/time %t... variables %[...]
    - Change in default structure from filename to: <host>_<date>-access.log    
CR: Project: Uniform use of ./LICENSE and ./CHANGES    
CR: KeyStore: Change to use PKCS12

5.1.0 20180505
BF: Initialize: Korrektur Smart-Modus
    - im Smart-Modus erstellte Sections werden wieder gehalten
BF: Section: Korrektur Smart-Modus
    - im Smart-Modus angeforderte ungueltige Schluessel liefern wieder null
CR: Projekt: Anpasung KeyStore
    - Entwicklung: Umstellung auf einen eigenen KeyStore unabhaengig vom Program(Release)-Verzeichnis
CR: HTTP(S): Optimierung/Korrektur
    - Worker: Umbennung der Methode Worder::Initialize in Worker::Initiate  
    - AccessLog: Optimierung der Maskierung vom ASCII Bereich 0x00-0x20 / 0x80-0xFF / 0x0100-0xFFFF
      0x00-0x20 / 0x80-0xFF verwenden \xXX und 0x0100-0xFFFF verwendet \uXXXX
    - Directory Index: Umstellung der BreadCrumb-Navigation von path/base/name auf location/path/name
CR: (X)CGI / HTTP-XAPI / Templates: Optimierung
    - Environment-Variable path_base wurde geaendert in path_url, analog zu script_url
CR: Konfiguration: Aenderung der Server/Service-Sektion
    - Aenderung der Server/Service-Sektion, diese muessen jetzt auf :INI enden, bisher war es :BAS
CR: SAPI: Anpassung bei Initialisieurng und Fehlerausgabe
    - Erweiterung der Fehlerausgabe beim Laden/Starten
    - Umstellung der Ausgabe beim Initialiseren auf den Namen der Sektiones
    - Umstellung der Initialisieurng per Konstruktor auf den vollstaendigen Context (Name der Sektion)
CR: Dokumenation: Allgemeine Korrektur und Anpassungen
    - Allgemeine Korrektur und Anpassungen      
    
5.0.0 20171206
BF: HTTP SERVER:SSL: Korrektur vom fehlenden TrustManager
BF: HTTP PUT: Korrektur/Optimierung in der Unterscheidung von Datei/Verzeichnis
    Die Ressource ist ein Directory, wenn keine Content-Length gesendet wird.
    Ob die URL auf Slash endet oder nicht, ist egal.
BF: HTTP Range: Korrekturen
    - HTTP Range x-x verrechnete sich ggf. um ein Byte
    - HTTP Range -x lieferte nicht die letzten Bytes
    - HTTP Range verwendet nun auch Status 416
    - Toleranz wurde verringert, ungueltige Werte werden nicht mehr interpoliert
BF: HTTP Locate: Korrektur der Pfadverarbeitung (Windows)
    Der Dot-(Back)Slash-Bug in Windows (Punkt vor dem (Back)Slash) wurde korrigiert.
    Beispiel: https://example.local/forbidden./foo.html konnte den Schutz von
    /forbidden aushebeln, da /forbidden. offiziell nicht existiert, Windows aber
    automatisch daraus /forbidden macht und ggf. hinterlegte Regeln und Direktiven
    nicht greifen, da diese nicht /forbidden. abdecken.
CR: Projekt: Optimierung
    - Umstellung auf Java5/8
    - Umstellung der Testumgebung auf JUnit
    - Umstellung der Historie auf den internen ChangeLog (release.txt)
    - Optimierung vom Build-Prozess/Skript
CR: Dokumentation / Layout: Ueberarbeitung/Optimierung/Erweiterung
CR: Service
    - CLEANUP Ueberarbeitung/Optimierung
      Unterstuetzt nur noch on/off, Standardwert: off
    - Wegfall der erweiterten Ausgabe (Startoption *)
    - Remote/Telnet-Client Ueberarbeitung/Optimierung
      Umstellung auf eine Standard (127.0.0.1:25000) oder frei waehlbare
      Netzwerkverbindung als Programm-Argument. Die Ermittlung der
      Remote-Verbindung aus der devwex.ini entfaellt. Wird der Client entfernt
      benutzt, wird nur noch devwex.jar benoetigt.
    - Aenderung der Methode Service.call(Class, String) in Service.load(Class, String)
    - Erweiterung um Service.print(String, boolean)        
CR: Generator: Ueberarbeitung/Optimierung/Erweiterung
    - Umbenennung in Template
    - Vereinfachung/Umstellung der Syntax auf #[...] #[0x...] #[...:[[...]]]
    - Erweiterung um maskierte Text/Daten/Zeichen
    - Generierung vom Segmenten wird jetzt direkt im mit der Set-Methode unterstuetzt
    - Optimierung vom Parser und in der Verarbeitung
CR: HTTP Session/Worker: Ueberarbeitung/Optimierung/Erweiterung
    - Umbenennung in Worker
    - Implementierung der der HTTP-Methoden in separaten do-Methoden
    - allgemeine Umstellung auf die einheitliche Verwendung von CGI-Variablen
      betrifft u.a. (X)CGI, Filter, Status, Tempaltes
      Request-Parameter/Header-Parameter werden direkt nach dem
    - Variable "realm" entfaellt, dafuer gibt es die CGI-Variablen: auth_user, auth_type, auth_realm
    - Variable "reference" geaendert in "location"
    - Variable "process" geaendert in "gateway"
CR: HTTP Request: Ueberarbeitung/Optimierung
    - Zusammenfassung von SLICING und TIMEOUT
      Das initiale Lesen vom Request wird nun durch TIMEOUT begrenzt.
      SLICING als eigenstaendiger Parameter entfaellt.
CR: HTTP DCGI: Ueberarbeitung/Optimierung/Umstellung auf XCGI
    - das CGI-Environment wird dem HTTP-Request vorangestellt
      CGI-Environment[CRLF][CRLF]Request-Header[CRLF][CRLF]Request-Body
    - DCGI/XCGI Option [I] geaendert in [X]
    - DCGI/XCGI Option [F] geaendert in [N] (Name)
    - DCGI/XCGI Option [E] entfaellt
CR: HTTP AccessLog: Ueberarbeitung/Optimierung/Umstellung
    - Erweiterung um benutzerdefinierte Ausgaben/Formate
      ASCII Bereich 0x00-0x06 wird als Leerzeichen verwendet
    - Erweiterung um die Verwendung von CGI-Variablen auch im Dateinamen
CR: HTTP Filter: Ueberarbeitung/Optimierung/Erweiterung
    - Erweiterung um "matches" und die Verwendung von RegEx
    - Umstellung der AND-Verknuepfung von [A] auf [+]
    - Umstellung auf die ausschliessliche Verwendung von CGI-Variablen
    Alle Request-Parameter / Header-Parameter werden als CGI-Variablen (http_...) bereitgestellt.
    Konvertierung: Parameter-A wird zu http_parameter_a
    Neu ist die CGI-Variable request, dieser entspricht der ersten Zeile vom HTTP-Request.
    Bsp. GET /... HTTP/1.0
CR: HTTP Virtual Paths: Optimierung
    - Virtuelle Pfade fuer einzelne Dateien wird wieder unterstuetzt         
CR: HTTP MIMETYPES: Umbenannt in MEDIATYPES
CR: HTTP SERVER:BAS/VIRTUAL:BAS: MIMETYPE umbenannt in MEDIATYPE
CR: HTTP VIRTUAL:BAS: SERVER definiert welche Server den virtuellen Host verwenden duerfen
CR: HTTP Templates: Ueberarbeitung/Optimierung/Erweiterung
    - als Variablen stehen nur noch die CGI-Variablen zur Verfuegung
    - Fehlerseiten/Statusseiten lassen sich gruppieren (status-000.html, status-0xx.html oder nur status.html).
      Die Ausgabe kann ueber die CGI-Variable http_status gesteuert werden.
CR: HTTP: Erweiterung der CGI-Variablen
    - neu: auth_user, auth_type, auth_realm
    - neu: remote_user = auth_user
CR: HTTP SERVER:SSL
    - STORE umbenannt in KEYSTORE
    - neues Standard-Passwort fuer den Keystore: changeIt
    - Erweiterung um die Umgebungsvariable AUTH_CERT zur Pruefung eingehender Zertifikate
      bei der Client-Authentication / Mutual-Authentication
    - CLIENTAUTH: Erweiterung um die Option AUTO fuer eine tolerantes Verhalten
      bei ungueltigen oder fehlenden Zertifikaten (Request wird vom Server beantwortet,
      ggf. mit einer Fehlerseite)   
CR: HTTP XAPI: Ueberarbeitung/Optimierung/Erweiterung     
    - Vereinfachung der API auf die Mehtoden Module.service() in Module.filter()
      zur Implementierung von Web-Modulen und Filtern          
CR: Initialize: Ueberarbeitung/Optimierung/Erweiterung
    - Erweiterung um multiples EXTENDS
    - Erweiterung um die Verarbeitung von Hex-Daten (Maskierung von Daten/Zeichen)
    - Erweiterung um eine wahlweises "smarte" Verhalten
      Schluessel werden automatisch angelegt, leere automatisch verworfen, ...
    - namensgleiche Sektionen und Werte fuehren nun zum konsequenten Ueberschreiben
      ein Teilen von Sektionen ist nicht mehr moeglich
CR: Section: Ueberarbeitung/Optimierung/Erweiterung
    - Erweiterung um die Verarbeitung von Hex-Daten (Maskierung von Daten/Zeichen)
    - Erweiterung um eine wahlweises "smarte" Verhalten
      Schluessel werden automatisch angelegt, leere automatisch verworfen, ...
    - Erweiterung um das Laden von Umgebungsvariablen (Reihenfolge: Wert, System-Properties, Umgebungsvariable)
    - namensgleiche Sektionen und Werte fuehren nun zum konsequenten Ueberschreiben
      ein Teilen von Sektionen ist nicht mehr moeglich
CR: Remote: Ueberarbeitung/Optimierung/Erweiterung
    - Response: Wegfall vom Praefix "INFO:" beim
    - STATE geaendert in STATUS
CR: XAPI: Ueberarbeitung/Optimierung/Erweiterung
    - Aenderung der Methode Module.getCaption() in Module.explain()
      Die Methode ist optional.
    - Aenderung der Methode Module.destroy() diese muss nun implementiert werden
    - Aenderung der Initialiserung
      Diese erfolgt nur noch ueber den Konstruktor Module(String options).
      Der Aufruf der Methoden Module.initialize(String options) entfaellt.
    - Erweiterung vom Logging beim Laden
CR: SAPI: Ueberarbeitung/Optimierung/Erweiterung
    - Aenderung der Methode Server.getCaption() in Server.explain()
      Die Methode ist optional.
    - Aenderung der Methode Server.destroy() diese muss nun implementiert werden 
    - Umstellung auf das Laden von Servern ueber gleichnamige Klassen
      optional kann ein Scope/Paket mit der Implementierung angegeben werden
    - Optimierung bei Initialisieurng
    - Optimierung bei Ueberpruefung der API vor dem Laden
    - Umstellung auf eine dynamische und objektbasiert Initialisieurng
      Der Name der moeglichen Server-Sektionen beginnen dabei mit Klassennamen
      der Server-Implementierung, zu der optional mit dem Schluessel SCOPE ein
      Paket angegeben werden kann. Dadurch entfallen bisher reservierte Sektionen
      wie z.B. SERVER:REMOTE:BAS und zusaetzliche Namen wie z.B. REMOTE in SERVER:REMOTE:BAS.
      Namen koennen auch weiterhin verwendet werden, sind aber nicht mehr Pflicht.
      Die Initialisierung erfolgt nun primaer ueber Sektionen mit der Endung BAS
      und wenn eine entsprechende Implementierung im ClassPath gefunden werden
      kann.
    - Beim Beenden der Server wartet der Service nun konsequent.
      Das Timeout und Entladen bei nicht endenden Servern wurde verworfen.

4.3.0 20130707
BF: HTTP Directory Index: Korrektur vom CSS der Templates fuer IE 9/10
CR: Service: Optimierung/Erweiterung
    - Optimierung der Sequenz von Start, Restart und Stop
    - Erweiterung um den ShutdownHook fuer CTRL+C zum kontrollierten Herunterfahren
CR: HTTP: Erweiterung um die Methode OPTIONS
CR: HTTP Configuration: Optimierung/Erweiterung
    - Umstellung der Syntax fuer Referenzen von >> auf >
      Betrifft u.a. SERVER:REF/FLT/CGI, VIRTUAL:REF/FLT/CGI
    - SERVER:BAS/VIRTUAL:BAS METHODS, Wegfall vom Alias ALL
    - SERVER:REF/VIRTUAL:REF, Erweiterung um die Options [X]
      Weitergabe aller HTTP-Methoden an ein Modul, unabhaengig von SERVER:BAS METHODS
      und VIRTUAL:BAS METHODS
CR: HTTP Module: Optimierung/Bereinigung
    - Wegfall der Einspruenge: COMMAND, PROCESS, LOGGING, METHOD, LISTING, STATUS

4.2.0 20130401
BF: HTTP Module: Korrektur in der Uebergabe der Konfiguration bei der Initialisierung
CR: Configration: Optimierung
    - COMMONS RELOADING geaendert in RELOAD
    - COMMONS CLEARING geaendert in CLEANUP
CR: HTTP Directory Index: allgemeine Umgestaltung von Sortierung und Navigation
CR: HTTP Module: Erweiterung der XAPI um die optionale Uebergabe der Modul-Parameter
CR: SERVERSTATUS: Erweiterung um Status 101
CR: Test: Erweiterung der Pruefung der XAPI
    Uebergabe der Konfiguration bei der Initialisierung

4.1.0 20120815
BF: HTTP Virtual Host: Korrektur in der Verwendung von VIRTUAL:BAS TIMEOUT
    Im Fehlerfall wurde der Wert nicht beruecksichtigt.
BF: Server: Korrektur/Optimierung der Session/Connection-Expansion
    Fuer den Fall, wenn kein MAXACCESS gesetzt wurde.
BF: HTTP GET/HEAD: Korrekturen
    - Verzeichnisse: Wegfall von Content-Length und Last-Modified im Response-Header
    - Verzeichnisse: If-Modified-Since/If-Unmodified-Since wird ignoriert
      Im Fehlerfall wurden Request fuer Verzeichnisse auch mit Status 304 beantwortet.
CR: Projekt: Umstellung der Ant-Tags auf das Format @@@ant-[property]
CR: Service: Erweiterung von -Dlibraries zum das Laden von Verzeichnisse
CR: Module: Optimierung/Bereinigung
    XAPI: Wegfall der optionalen Methoden mount/unmount
CR: Server: Erweiterung
    - Option [S] fuer SERVER:BAS TIMEOUT / VIRTUAL:BAS TIMEOUT zur strikten Trennung
      ausgehender Datenstroeme bei Leerlauf oder minderer Transferraten (z.B. < 4096 b/s)
CR: HTTP: Optimierung/Korrektur
    - Anpassung der CGI-Variablen SCRIPT_NAME bei der Verwendung absoluter Pfaden
      mit fester Skriptzuordnung.
CR: HTTP Configuration
    - SERVER:BAS IDENTIFY geaendert in IDENTITY
    - SERVER:BAS IDENTITY OFF deaktiviert die Serverkennung im Response-Header
    - das System-Verzeichnis als ist virtuelles Verzeichnis standardmaessig deaktiviert
    - AccessLog: Verlagerung ins Root-Verzeichnis
CR: HTTP GET/HEAD: Optimierung/Erweiterung
    - Verarbeitung wurde zusammengefuehrt
    - Erweiterung um "Partial Content"
    - Erweiterung um den HTTP-Header If-Unmodified-Since
CR: HTTP Directory Index
    - Template system.index.html geaendert in index.html
    - Einbettung der Icons in die HTML-Datei (data:image/x-icon;base64)
CR: HTTP Templates: Optimierung
    - HTML5/CSS: allgemeine Optimierung; Reduktion der Transferdaten bis zu 20%
    - Status-Templates: Aenderung vom Format des Dateinamen status-[code].html

4.0.0 20110701
BF: HTTP Basic Authentication: Korrektur
    - Status 401/302: Geschuetzte Bereiche konnten ueber Status 302/401/404 "abtaste"
      werden (kein Sicherheitsrisiko). Nun wird konsequent Status 401 zurueckgegeben.
    - leerer Realm-Text: Im Fehlerfall erzeugte ein leerer Realm-Text einen
      fehlerhaften/ungewollten Pseudo-Realm.
BF: HTTP Response: Korrektur von Content-Length/Content-Type/Last-Modified
    - Content-Length/Content-Type/Last-Modified nur bei Status 200
    - Content-Length/Content-Type entfaellt in Fehler- und Status-Header, da keine
      angeforderten Ressourcen/Daten/Verzeichnisse uebertragen werden.
    - Content-Length/Content-Type nur bei existierenden Ressourcen/Verzeichnissen
    - Last-Modified, nur bei existierenden Ressourcen
CR: Projekt: Umstellung auf Java 1.4
    Die optionale Verwendung von SSE entfaellt.
CR: Configuration: Optimierung
    - Wegfall vom Komma, Werte werden durch Leerzeichen getrennt
      Betriff besonders die Sektionen / Schluessel: METHODS/DEFAULT/MIMETYPES
CR: Server: Optimierung
    - Konfiguration: Schluessel SERVER:SSL CONTEXT entfaellt
CR: HTTP Configuration: Optimierung
    - Sektion SERVER:REF/VIRTUAL:REF Option [access:...] geaendert in [acc:...]
    - SERVER:BAS/VIRTUAL:BAS DEFAULT Trennung der Werte durch Leerzeichen
    - SERVER:BAS/VIRTUAL:BAS METHODS Trennung der Werte durch Leerzeichen
CR: HTTP Filter: Optimierung/Erweiterung
    - direkt Verwendung von Modulen ueber XAPI
    - neue Bedingungen: CONTAINS, ALWAYS, EMPTY
      Die Konstante EMPTY entfaellt und wird ersetzt durch die Bedingung EMPTY.
      Die Bedingung INDEX wurde in CONTAINS geaendert.
CR: HTTP Authentication: Optimierung/Erweiterung
    - Erweiterung um Digest Access Authentication (DAA)
    - Basic Authentication: im Realm-Text enthaltene " werden jetzt maskiert
      Das vermeidet Fehlinterpretationen beim Client.
    - Erweiterung um die Verwendung von Gruppen (Sektion REF + ACC)
      Benutzer lassen sich zu Gruppen zusammenfassen.
CR: HTTP AccessLog: Erweiterung um die Unterstuetzung von ' im Datei-Namen/-Pfad
CR: MIMETYPES: Trennung durch Leerzeichen statt Komma
CR: Manual: Verbesserung der Druckausgabe

3.5.0 20101010
BF: Devwex: Korrektur
    - Startskript (Windows): Korrektur, wenn Variablen auf Backslash enden
      Im Fehlerfall fuehrte es zum Fehler beim Aufrufer der Java-VM.
    - Startskript (Windows): Korrektur beim Nachladen von Skripten
BF: HTTP Module: Korrektur
    Der Einsprung COMMAND wird noch aufgerufen, wenn COMMAND definiert wurde.
BF: HTTP DCGI/CGI: Korrektur
    Gleichnamige Request-Header werden jetzt korrekt uebergeben.
CR: Projekt: Umstellung der Versionsverwaltung auf Mercurial
CR: Devwex: Optimierung/Erweiterung
    - Optimierung der Groesse
    - Umstellung der Konfiguration auf Initialize + Section
      Die Umstellung der SAPI fuehrt u.U. zur Inkompatibilitaet von alten Modulen.
    - Startskript (Windows): Erweiterung um das Laden weiterer Batch-Skripte
CR: Service: Optimierung
    - Usage: Optimierung/Verkuerzung der Konsolenausgabe
    - Garbage Collector: wird nur noch bei abfallender Systemlast angefordert
CR: Module: Optimierung
    - Methode Module::Mount zur Anbindung geaendert in Module::Bind
      fuehrt u.U. zur Inkompatibilitaet von alten Modulen
    - Umgebungsvariable module_core mit Konfiguration geaendert in module_opts
      fuehrt u.U. zur Inkompatibilitaet von alten Modulen
CR: HTTP Server: Optimierung/Erweiterung
    - Ueberarbeitung/Optimierung von Connection-Pool/Connection-Management
    - Erweiterung um SERVER:BAS BACKLOG
      Maximale Anzahl zurueckgestellter Anfragen beim Erreichen von MAXACCESS
      max. Anzahl zeitgleicher Verbindungen
    - Erweiterung um ISOLATION
      Maximale Leerlaufzeit von Verbindungen bis zur Bereinigung
CR: HTTP: Optimierung
    - Anpassung der Request-Verarbeitung
    - Wegfall vom Request-Objekt, funktionale Verlagerung in das Session-Objekt
CR: HTTP Module: Optimierung
    - Methode Session::Swap zur Einbindung von HTTP-Modulen geaendert in Session::Call
CR: HTTP Filter: Optimierung
    - allgemeine Optimierung der Interpretation/Verwendung/Performanz
    - Parameter FIRSTLINE geaendert in REQUEST
CR: HTTP Directory Index: Ueberarbeitung/Optimierung
    - Ueberarbeitung/Optimierung der Sortierung
    - Wegfall der Spalte Description (wird per Icon abgebildet)
    - Variable http-location entfaellt, alternativ kann script_uri verwendet werden
    - Ueberarbeitung der Symbole fuer Temporaere Daten/Komprimierte Daten/Multimedia
CR: HTTP Templates
    - Parameter des Request-Headers sind nur noch mit dem original Namen nutzbar,
      der bei CGI uebliche Praefix http_ entfaellt

3.4.3 20100410
CR: Generator: Verkuerzung/Vereinfachung der Syntax
CR: HTTP: Optimierung der Generierung der UNIQUE_ID
CR: HTTP DCGI: Verkuerzung der Protokoll-Signatur
CR: HTTP Directory Index: Ueberarbeitung vom Template und Integration von Icons
    Seanox-Symbols wurde damit migriert.
CR: MIMETYPE: Erweiterung

3.4.2 20091003
BF: HTTP DCGI/CGI: Korrektur der max. Ausfuehrungszeit
    Diese schliesst nun die Uebertragung der Request-Daten an das DCGI/CGI ein.
CR: Module: Erweiterung der XAPI/Sequenz und den Aufruf der Methoden mount/unmount
CR: Konfiguration: Umstellung auf FastCGI
    - Umstellung der PHP-Distribution auf FastCGI

3.4.1 20090516
CR: Projekt: Umstellung der Testumgebung auf SSX
BF: Service: Korrektur vom ClassLoader
    Im Fehlerfall wurde die Paketinformation nicht korrekt ermittelt.
CR: Service: Optimierung vom Ressourcen- und Speicher-Management

3.4.0 20090301
CR: Projekt: Umstellung der Lizenz auf die GPL 2.0
CR: Devwex: Optimierung vom Start-Skript
    Vorbereitung fuer Erweiterung der Laufzeitumgebung durch PHP, Perl, ...
CR: Generator: Verkuerzung der Generator-Syntax
CR: HTTP Directory Index: Umstellung auf die vereinfachte Generator-Syntax

3.4.0 20081224
BF: HTTP SSL: Korrektur der Option SERVER:SSL CLIENTAUTH
    Im Fehlerfall wurde die Einstellung nicht beruecksichtigt.
BF: HTTP Response: Korrektur der Verwendung von Content-Type
    Der Response-Header wird noch gesetzt, wenn der Content-Type ermittelbar ist.
CR: Devwex: allgemeine Optimierung bei Performanz und Groesse
CR: Service: Erweiterung um einen Application-ClassLoader
     Module werden unabhaengiger und lassen sich zur Laufzeit laden und entladen.
CR: Konfiguration: Optimierung
    - Schluessel COMMON SMARTCLEARING geaendert in CLEARING
CR: Generator: Ueberarbeitung/Optimierung
CR: Server: Optimierung der Konfiguration
    Der Schluessel SOCKET wird nicht mehr unterstuetzt, da die Art des Sockets jetzt
    vom Server selbst erkannt wird.

3.3.0 20080524
BF: HTTP DCGI/CGI: Korrektur in der Belegung der CGI-Umgebungsvariablen SCRIPT_NAME
BF: Server: Korrektur der Konfiguration
    - Korrektur bei der Vererbung der Sektionen MIMETYPES und STATUSCODES
BF: Configuration: Korrektur der Option + zur Fortfuehrung eines Schluessels
CR: Devwex: allgemeine Optimierung bei Performanz und Groesse
CR: Server: Optimierung/Erweiterung der Konfiguration,
    - Verlagerung der SSL/TLS Konfiguration in die eigenstaendige Sektion SERVER:SSL

3.2.0 20080329
BF: HTTP Basic Authentication: Korrektur
    Basic Authentication kann wieder auf einzelne Dateien angewandt werden
BF: Server: Korrektur vom Schluessel SERVER:BAS DEFAULT
    Pfade mit Slash bzw. Backslash werden nicht mehr unterstuetzt, da diese auf
    andere Verzeichnisse verweisen koennen.
BF: HTTP References: Korrektur/Optimierung
    - das Sperren von Verzeichnissen erfolgt nun ausschliesslich auf Basis virtueller
      Verzeichnisse, die Angabe physischer ist nicht mehr erforderlich
CR: Configuration: Optimierung/Erweiterung
    - Erweiterung eine allgemeine Vererbung von Sektionen
      Die Vererbung ueber den Schluessel IMPLEMENTS wird nicht mehr unterstuetzt.
    - Sektion BASEOPTIONS geaendert in COMMON
    - Erweiterung um die Option +
      Beginnt eine Zeile mit dieser Option, wird der vorherige Schluessel fortgesetzt.
CR: Module: Optimierung/Erweiterung
    - SAPI: Optimierung der Service::UseModul im Umgang mit InvocationTargetException
      Der Cause wird jetzt weitergereicht und die Methode muss nicht mehr mit
      Throwable behandelt werden.
CR: Server: Optimierung
    - Konfiguration: Mit der allgemeinen Vererbung innerhalb der Konfigurationsdatei
      wird der Parameter IMPLEMENTS nicht mehr unterstuetzt
    - Endet der Server, werden alle Connections/Sessions ebenfalls zwangsweise
      geschlossen/beendet und ggf. laufende DCGI/CGI-Prozesse beendet
CR: HTTP DCGI/CGI: Optimierung
    - allgemeine Optimierung der Anbindung
    - DCGI-Header: CGI-ENVIRONMENT geaendert in CGI
    - Umgebungsvariable GATEWAY_INTERFACE wird nur noch beim (D)CGI-Aufruf gesetzt
    - Umgebungsvariable MODULE_CORE wird nur noch bei Modulen gesetzt und enthaelt
      den kompletten Modulaufruf mit allen Optionen und Parametern
    - Enden Request und/oder Server-Instanz, wird der DCGI/CGI-Prozess ebenfalls
      zwangsweise geschlossen/beendet
CR: HTTP AccessLog: Erweiterung um OFF bei SERVER:BAS ACCESSLOG zur Abschaltung
CR: HTTP Basic Authentication: Ueberarbeitung/Optimierung/Erweiterung
    - Aufteilung in die Sektionen REF und ACC (Access Control Center)
    - Sektion ACC: zur Verwaltung von Benutzer, Passwoerter und Gruppen
    - Sektion REF: zur Deklaration der Basic Authentication und der Realm-Text

3.1.0 20071017
CR: Projekt: Anpassung zur Kompatibilitaet Java 1.2.x bis 1.6.x
CR: Devwex: allgemeine Optimierung bei Performanz, Fehlerausgabe und Groesse
CR: Devwex: neuer finaler Stand der SAPI (Server-API) und XAPI (Module-API)
CR: Service: Umstellung der Server-API
    - Server muessen Runnable sowie die Methode Server::GetCaption und Server::Destroy
      implementieren. Die Signatur vom Konstruktor wurde in Server::Server(String, Object)
      geaendert. Die Konfiguration wird als Initialize-Objekt uebergeben.
    - Verwaltung und Kontrolle der Server-Instanzen wurde ueberarbeitet. Die Server-Instanzen
      werden kontrolliert gestartet. Das selbsttaetige Starten mit dem Konstruktors
      ist nicht mehr zulaessig.
CR: Service: Erweiterung
    - In der erweiterten Ausgabe werden nun die geladenen Ressourcen aufgelistet.
CR: Configuration: Optimierung der Fehlerbehandlung
    Scheitert beim Neustart das Laden der Konfiguration, wird die zuletzt erfolgreich
    geladene verwendet.
CR: Remote: Ueberarbeitung/Optimierung
    - Umstellung auf die neue SAPI
    - Ueberarbeitung/Optimierung von Connection-Pool/Connection-Management
CR: Module: Optimierung/Erweiterung
    - Erweiterung um die Option [*] bei der Initialisierung von Modulen
      So gekennzeichnete Module sind optional und fuehren zu keiner Fehlerausgabe,
      wenn diese nicht verfuegbar sind.
      Bsp. MODULE EXAMPLE = com.seanox.module.Example [*]
    - allgemeine Verbesserung bei Erkennung und Verarbeitung der Modul-Optionen
CR: Server: Ueberarbeitung/Optimierung
    - Umstellung auf die neue SAPI
    - Ueberarbeitung/Optimierung von Connection-Pool/Connection-Management
CR: HTTP Directory Index: Optimierung der Sortierung fuer eine schnellere Generierung
CR: HTTP DCGI/CGI: Optimierung der Fehlerbehandlung fuer detailliertere Status-Codes

3.0.0 20061230
BF: HTTP COMMAND/DCGI/CGI: Korrektur vom Symbol [P]
    Im Fehlerfall wurde der komplette Pfad verwendet.
BF: HTTP DCGI/CGI: Korrektur vom Server-Status beim Ueberschreiten der max. Verarbeitungszeit
    Im Fehlerfall wurde Status 503 statt Status 500 gesetzt.
BF: HTTP DCGI/CGI: Korrektur bei der Verwendung der Methode ALL in der Deklaration
CR: Devwex: Optimierung in: Kompatibilitaet zu Java 1.2.x, Performanz und Groesse
CR: Service: Optimierung
    - Umstellung als Singleton zur einfachere Integration in andere Anwendungen
CR: Service: Optimierung der Sequenz von Start, Restart und Stop
        Sequenz (komplett):
    Server Beenden, Module Beenden, Konfiguration laden, Bibliotheken laden, Module
    initialisieren, Server Instanzen starten
    - Mit Restart und Stop nun alle registrierten Module beendet
    - Ausgabe: Erweiterung um die Dauer vom (Re)Start
    - Ausgabe: Optimierung der Kommandozeilenausgabe
      Diese erfolgt nun zeilenweise mit Zeitstempel, zusammenhaengende Informationen
      werden strukturiert ausgegeben.
CR: Konfiguration: Optimierung
    - Umstellung auf eine strenge zeilenweise Verarbeitung.
    Die Reihenfolge der Sektionen und Schluessel bestimmt nun u.a. die Reihenfolge
    der Initialisierung von Server und Modulen sowie die Abfolge der HTTP Filter.
CR: Remote: Ueberarbeitung/Optimierung/Erweiterung
    - Umstellung auf die SAPI (Server API) und damit in eine modulare Server Instanz
    - Konfiguration: Umstellung auf die eigene Sektion SERVER:REMOTE:BAS
      Die Schluessel REMOTEPORT und REMOTEADDRESS der Sektion BASEOPTIONS entfallen
    - Aenderung vom Timeout von 65535 auf 10 Sekunden
    - Kommando STOP: Erweiterung um die Ausgabe vom Rueckgabewert
CR: Server: der Schluessel SERVER:MOD SERVER:CONNECTOR wurde verworfen
    Die Deklaration von Servern wird nur noch ueber SERVER:BAS CONNECTOR unterstuetzt
CR: HTTP Server: Konfiguration: Sektion VIRTUALHOST geaendert in VIRTUAL
CR: HTTP Module: Update der XAPI auf Seanox Module-API 1.2006.12xx oder hoeher
CR: HTTP Module: Vereinfachung der Sektion SERVER:MOD
    - Wegfall vom Praefix SESSION:
      SESSION:FILTER ist FILTER, SESSION:LOGGING ist LOGGING, ...
      FILTER, LOGGING, COMMAND, PROCESS, METHOD, LISTING, STATUS, SERVICE
    - SERVER:CONNECTOR ist entfallen
CR: HTTP Module: Erweiterung um detailliertere Fehlermeldungen
CR: HTTP Filter: Konstante NULL geaendert in EMPTY
CR: HTTP Directory Index
    - Optimierung der Performanz
    - die absteigenden Sortierung bezieht nun alle Kriterien ein
CR: HTTP AccessLog: Optimierung der Fehlertoleranz bei Zeitsymbolen im Pfad
CR: HTTP: Optimierung der UNIQUE_ID
CR: HTTP COMMAND/DCGI/CGI: Erweiterung um detailliertere Fehlermeldungen
CR: SDK: Vereinfachung der Verzeichnisstruktur

2.10.0 20060415
BF: Service: Korrektur beim Laden einer nicht vorhandenen Konfiguration
BF: Configuration: Korrektur beim initialen Aufloesen der Systemvariablen
BF: Remote: Korrektur vom Restart (Kompatibilitaetsproblem bei Java 1.2.x)
BF: Generator: Korrektur beim Loeschen/Bereinigen von Segmeneten
BF: HTTP SSL: Korrektur beim Schliessen des InputStream vom Keystore im Fehlerfall
BF: Devwex: Optimierung im Umgang mit Steuerzeichen (Bereinigung/Behandlung/Verwendung)
CR: Service: Erweiterung/Optimierung
    - Erweiterung um den Startparameter -Dlibraries zum Laden zusaetzlicher Bibliotheken
    - Erweiterung vom Startbefehl um die Option * (Bsp. start*) zur Aktivierung
      der erweiterten Fehlerausgabe
    - Optimierung der Fehler- Behandlung/Ausgabe
CR: HTTP SSL: Erweiterung um SERVER:SSL CONTEXT zur Angabe der SSL-Implementierung
    Standard: javax.ssl.net

2.9.0 20051220
BF: HTTP: Korrektur im Umgang mit der mitteleuropaeischen Sommer- und Winterzeit
BF: HTTP: Korrektur im Umgang mit unerwartet wegbrechenden bzw. beendeten Verbindungen
    In einigen Faellen blieben Verbindungen als Objekt erhalten und wurden nicht
    beraeumt. Dies konnte zum permanenten Status 503 sowie zu einer untypischen
    hohen CPU Belastung fuehren (Danke Rainer Geigenberger).
BF: HTTP: Korrektur der Pfad-Verarbeitung
    Unter Windows XP existiert ein Bug wenn Pfade \ \ \ enthalten. Diese verweisen
    dann auf nicht physische Verzeichnisse. Daher werden Pfade jetzt auf physische
    Existenz geprueft. Ein Sicherheitsrisiko bestand dadurch nicht.
CR: Devwex: Optimierung bei Stabilitaet und Performanz
CR: Service: Erweiterung der Konfiguration um den Schluessel BASEOPTIONS RELOADING
    (De)Aktiviert den automatischen Neustart bei Aenderungen an der Konfigurationsdatei.
CR: Service: Erweiterung der Konfiguration um den Schluessel SERVER:BAS SLICING
    Dient zur zeitlichen Begrenzung der Serveranfrage.
CR: Generator: Optimierung in Performanz und Ressourcenbedarf
    Das Parsen der Templates erfolgt erst vor dem ersten Zugriff auf Segmente
    und Strukturen.
CR: Module: Optimierung/Erweiterung
    - Verfall der Initialisierung ueber SERVER:MOD SERVER:INITIALIZE:*
    - Die Initialisierung wird nur noch ueber die Sektion INITIALIZE unterstuetzt.
    - dem Konstruktor werden nun Konfiguration und Modultyp uebergeben
      das entspricht der kommende Version der Seanox Devwex Modul API
CR: Konfiguration: Schluessel mit der Option [?] sind nun optional und werden
    ohne Wert nicht mehr uebernommen. Somit ist eine optionale Konfiguration mit
    dem Start des Servers moeglich und dient als Vorbereitung der in Zukunft bereitgestellten
    Laufzeitmodule fuer Java, PHP, Perl und andere.

2.8.0 20050801
BF: HTTP Response: Korrektur der Zeitangabe im Header bei Verwendung von GMT
BF: Generator: Korrektur bei der Verarbeitung unbekannter Parameter und Segmente
    Im Fehlerfall wurden Requests, welche Templates verwenden, ohne Response geschlossen.
CR: Remote: allgemeine Optimierung in der Request-Verarbeitung und der Konsolenausgabe
CR: HTTP: Erweiterung der MIME-Types
CR: HTTP Templates: wenige Anpassungen bei Markup und Style
CR: HTTP Directory Index: Erweiterung um die BreadCrumb-Navigation zum Verzeichnis-Pfad
CR: HTTP Methods: Erweiterung vom Schluessel SERVER:BAS METHODS um die Unterstuetzung
    vom Wert ALL zur Annahme/Verarbeitung aller HTTP-Methoden. Ist eine angeforderte
    Methode nicht implementiert, wird der Request mit Status 501 beantwortet.
CR: HTTP Request: Optimierung/Erweiterung der Verarbeitung von Pfaden und Referenzen
    Virtuelle Pfade werden nun auch innerhalb von absoluten Pfaden unterstuetzt.

2.7.0 20050315
BF: HTTP Request: Korrektur vom Ausbrechen aus dem DocRoot ueber einen Mix aus
    Text, MIME- und UTF-8-Kodierung in den Pfaden. Die dynamische Ermittlung der
    Kodierung vom Pfad wurde zu Gunsten der Sicherheit auf eine feste umgestellt.
    Der Mix von Text, MIME- und UTF8-Kodierung wird weiterhin unterstuetzt.
CR: Devwex: allgemeine Optimierung in Performanz und Groesse
CR: Service: Erweiterung um detailliertere (Fehler)Ausgaben beim Start vom Service
CR: Remote: Kommando TIME ist entfallen
    Die Informationen vom Kommando TIME sind komplett in STATE enthalten.
CR: Remote: Erweiterung von STAT und VERS zur Ausgabe der Version vom Servers
CR: HTTP Directory Index: Optimierung/Erweiterung
    - Aenderung der Richtung in der Sortierung
      Template: system.index.html
    - Erweiterung des Schluessel SERVER:BAS INDEX um die Option [S] zur Unterdrueckung
      versteckter (System)Dateien/Verzeichnisse, womit diese nicht mehr im File-Index
      angezeigt werden. Ein direkter Zugriff auf diese ist weiterhin moeglich.
CR: Module: Erweiterung um Start-Parameter und -Optionen
    Module vom Type Process unterstuetzen nun auch Start-Parameter und -Optionen,
    die mit der Umgebungsvariablen MODULE_CORE uebergeben werden.

2.6.0 20041224
CR: Service: Erweiterung um SmartClearing
    Eine ueber den Schluessel BASEOPTIONS SMARTCLEARING konfigurierbare intelligente
    Bereinigung der Ressourcen.
CR: HTTP Request: Optimierung der UTF-8 Dekodierung
CR: HTTP Directory Index: Optimierung
    - Tag files:arts geaendert in files:base
      Aenderung der Sortierung von a/A in b/B
    Die Module Compress und Symbols muessen aktualisiert werden.
CR: HTTP DCGI/CGI: Optimierung/Erweiterung
    - Begrenzung vom Response-Header auf 65535 Bytes
      ein Ueberlauf fuehrt zum Status 500 (laut RFC sind nur 32768 Bytes moeglich)
    - Entkopplung des Timeout der Skript-Ausfuehrung vom Datenstrom
      Erweiterung um den Schluessel SERVER:BAS DURATION zur Begrenzung der maximalen
      Ausfuehrungszeit
CR: Remote: Optimierung
    - Umstellung der Erkennung vom Datenleerlauf auf SO_TIMEOUT
    - Requests sind nur noch mit gueltigem Ende der Kommandozeilen (CR/LF) zulaessig
      Die tolerante Ausfuehrung mit dem Timeout ist nicht mehr moeglich.

2.5.0 20040803
CR: HTTP Request: Optimierung in der Verarbeitung
    Zur primaeren Verarbeitung wird nur noch der Request-Header gelesen.
    Der Body wird nur noch bei Bedarf direkt an den Anforderer uebergeben, womit
    der Request nicht mehr komplett in den Speicher geladen wird.
CR: AccessLog: Erweiterung um die Unterstuetzung von Symbolen der Zeit im Dateipfad
CR: Module: Bereitstellung vom Devwex SDK
    - neue Bibliothek als Basis zur Modulentwicklung

2.4.0 20040525
BF: Server: Korrektur der Initialisierung von der Sektion SERVER:MOD
    Beruecksichtigte die Eintraege mit SERVER:INITIALIZE nicht.
BF: Server: Erweiterung der Vererbung
    Ohne werden definierte Connectoren nicht korrekt ermittelt.
BF: Server: Optimierung/Verbesserung der Performanz vom Restart
    Der theoretische Fall des Haengens (laengere Wartezeit) wurde beseitigt.
BF: HTTP Module: Korrektur der Anbindung per Session::Swap
    Bei den per SERVICE definierten Modulen wird nun der Konstruktor und auch
    wieder die Methode Module::Service aufgerufen.
BF: HTTP: Korrektur vom Response der Status-Klasse 1xx
    Entsprechend der RFC 2616 wird nur eine Header aber kein Body gesendet.
    Eventuelle fuer diese Klasse definierte Templates werden ignoriert.
CR: Server: Optimierung/Erweiterung
    - COMMAND: Erweiterung um die Option [M] der Moduldeklaration
    - Konfiguration: Sektion RESPONSECODES geaendert in STATUSCODES
    - Konsolenausgabe: Erweiterung der Kennung um das Protokoll (TCP, UDP, ...)
CR: Module: Optimierung/Erweiterung
    - API: Erweiterung der Schnittstelle(n)
          zur einfachen Implementierung von:
      Server, Service, Filter, Command, Process, Method, Index, Status und Logging
          Bereitstellung von:
      Connection, Cookie, Environment, Fragment, Request, Response und Server
      Diese unterstuetzen u.a. Multipart-Objekte, (De)Kodierung BASE64, UTF8, MIME
    - Einsprung: Optimierung von SERVER:BAS SERVICE / SERVER:MOD SESSION:SERVICE
      Das Schliessen des Sockets, das Abmelden aus der Sessionliste vom Server
      und die AccessLog werden generell von Session::Destroy ueberommen.
    - Initialisierung: Optimierung
      Module/Ressourcen werden nur einmalig geladen und bei mehrfacher Deklaration
      geteilt verwendet
    - Benachrichtigung / Sequenz: Optimierung
      Mit dem Beenden des Servers wird nun auch der Modul Container und somit
      die dort registrierten Module informiert.
    - Container: Umstellung vom Standard Modul Container wurde auf das Paket
      com.seanox.module.Container; dieser wird nun immer zuerst initialisiert
    - Moduleinsprung SERVICE: Verlagerung von Session::Service in Session::Run
      Services werden unabhaengiger. Der Server uebernimmt nur noch die Registrierung
      und Verwaltung der Session und das optionale Schliessen des Sockets.
      Request-Verarbeitung, Protokollierung und Fehlerbehandlung muessen im Service
      implementiert werden.
CR: HTTP DCGI: Umstellung vom Datenformat
    0x07 0x07 <Variable> 0x07 <Wert> 0x07 <Variable> 0x07 <Wert> 0x07 ... 0x01
    Das Byte 0x07 ist das Trennungszeichen der einzelnen Fragment.
    Das Environment wird dem klassischen CGI-Daten vorangestellt, beginnt mit
    der Doppelfolge 0x07 0x07 und endet mit 0x01.
CR: HTTP DCGI/CGI: Erweiterung um den Response-Header HTTP/STATUS
    Beginnt der Response-Header mit HTTP/STATUS (Gross- und Kleinschreibung wird
    ignoriert), wird das Skript komplett abgearbeitet und der Datenstrom vom Server
    ausgelesen, nicht aber an den Client weitergereicht. Die Beantwortung vom
    Request uebernimmt entsprechend dem Status der Server. Templates und Weiterleitungen
    werden dabei unterstuetzt.

2.3.0 20040212
CR: Devwex: Erweiterung um das optionale Startmodul Starting
    Eine Java basierte Alternative zur dynamischen Erweiterung des ClassPaths.

2.2.0 20040124
BF: HTTP DCGI/CGI: Korrektur vom AccessLog bei Server-Status ungleich 200
CR: Server: Optimierung/Erweiterung
    - Konfiguration: Sektion BASEOPTIONS Schluessel EMAIL, Sektion SERVER:BAS Schluessel
      NAME, Sektion VIRTUALHOST:BAS Schluessel NAME sind entfallen
    - BASEOPTIONS EMAIL entfaellt, kann mit SERVER:ENV SERVER_ADMIN gesetzt werden
    - automatische Ermittlung vom Namen des Servers
      Die Option kann ueber SERVER:BAS IDENTIFY und VIRTUALHOST:BAS IDENTIFY fuer
      das CGI (de)aktiviert werden.
    - kann fuer SERVER:BAS SYSROOT/DOCROOT bzw. VIRTUALHOST:BAS SYSROOT/DOCROOT
      kein phys. Verzeichnis ermittelt werden, wird das Arbeitsverzeichnis verwendet
    - Mimetypes: Optimierung und Ueberarbeitung der Einrichtung und Ermittlung
    - Basic Authentication: Korrektur der Intoleranz in der Gross- und Kleinschreibung
      vom ACCESS-Tag in den Sektionen SERVER:REF und VIRTUALHOST:REF
      Nutzer, Passwort und Realm-Text sind davon nicht betroffen
    - Konfiguration: SERVER:BAS MAXACCESS
      ungueltigen Werten (< 1) werden mit dem Standard 100 verwendet
CR: Module API: Ueberarbeitung/Optimierung
    - Erweiterung der Konfiguration um die Sektion INITIALIZE zur Initialisierung
      von Modulen mit dem (Re)Start vom Service
    - Erweiterung der Sektion SERVER:MOD um SERVER:INITALIZE zur Initialisierung
      von Modulen mit dem Start des Servers
    - Erweiterung der Sektion SERVER:MOD um SERVER:CONNECTOR sowie der Sektion
      SERVER:BAS um CONNECTOR zur Einbindung eigener Server-Connectoren
    - Verlagerung der Synchronisation von Objekten in die Module
CR: Generator: Ueberarbeitung/Optimierung
    Leistungssteigerung: bis zu 100-fache Steigerung der Template-Verarbeitung
CR: Configuration: Ueberarbeitung/Optimierung/Erweiterung
    Umstellung auf Initialize und Parameters
CR: Remote: Kommando STAT geaendert in STATE
CR: Devwex: Optimierung bei Stabilitaet, Performanz, Groesse und Konsolenausgabe

2.1.0 20030901
BF: HTTP HEAD: Korrektur von IF-MODIFIED-SINCE
    - Optimierung/Erweiterung der Methode HEAD und DELETE
CR: Devwex: allgemeine Optimierung der Groesse
CR: HTTP Server: Aenderung der Sektion SERVER:BAS
    - Schluessel SCHEME geaendert in SOCKET (Wert: SECURE oder NORMAL) und kann
      nicht mehr durch einen virtuellen Host ueberschrieben werden
CR: HTTP Directory Index: allgemeine Optimierung
    - Aufteilung vom Template system.index.in die Segmente "index" und "file"
    - Variable file-arts liefert den Wert "directory" oder "file"
CR: HTTP Templates: allgemein Anpassungen/Optimierung (Markup und Style)
CR: Initializeblock: Optimierung in der Ermittlung von Systemproperties
CR: Manual: Optimierung/Erweiterung
    - Erweiterung um die englische Dokumentation
    - Erweiterung um das Verzeichnis "manuals" fuer Modul- und Server-Dokumentation

2.0.0 20030620
BF: HTTP Request: Korrektur der Pfad-Verarbeitung von < und > unter Windows
    - Bug in der Windows Java VM
BF: HTTP Filter: Korrektur der Intoleranz in der Schreibweise der Methoden
BF: Server: Anpassung der Konsolenausgabe und Korrektur der Dokumentation
CR: Projekt: Umstellung auf Package com.seanox.devwex
CR: Devwex: Intergration vom Modulkonzept
    Die neuen APIs unterstuetzen beim Hinzufuegen neuer oder beim Erweitern und
    Aendern bestehender Funktionen.
CR: HTTP CGI: Erweiterung um die Methode ALL
    Mit diesem Alias werden alle eingehenden HTTP-Methoden an das CGI weitergeleitet.
CR: HTTP Command: Begrenzung der Verarbeitung auf den Request-Header
    Die Daten des Request werden nicht mehr durchgereicht.
CR: Devwex: allgemeine Optimierung der Groesse
CR: Remote: allgemeine Optimierung (inkl. der Ausgabe)
CR: HTTP Filter: Optimierung und Erweiterung
    - Filter werden bei nun jedem Server-Status angewandt, nicht 400 und 5xx
    - Erweiteurung um die Methode ALL, womit alle Methode greifen
    - Verweise auf Scripte und Resourcen werden direkt und ohne Redirection ausgefuehrt
CR: HTTP Request: Ueberarbeitung vom Handling der Referenzen

1.16.0 20030415
BF: HTTP HEAD: Korrektur des u.U. doppelten Header
CR: Service: allgemeine Optimierung
    Ressourcen-Management, Performanz, Datenzugriffe, Fehlerbehandlung
CR: Configuration: Erweiterung um die Option [?]
    Entsprechend gekennzeichnete Schluessel werden ueber die Systemproperties der
    Java Laufzeitumgebung Umgebung aufgeloest. Ist dies nicht moeglich wird ein
    optional angegebener Wert verwendet.
CR: HTTP SSL/TLS: Integration SSL/TLS mit JSSE
CR: HTTP Server: Optimierung vom Request- und CGI-Handling (Performance, Systemauslastung)
CR: HTTP Server: Timeout wirkt bei SO_LINGER und DCGI/CGI
    DCGI/CGI endet mit Status 500, wenn keine Daten zurueckgegeben werden.
CR: Service: Erweiterung der Ausgabe von Systeminformationen auf der Konsole
CR: Remote: Begrenzung der Verbindungsdauer auf max. 65535 ms

1.15.0 20030219
BF: HTTP Request: Gross- und Kleinschreibung der Request-Methoden wird nun ignoriert
CR: HTTP Templates: Anpassung der Systemtemplates
    - Inhalt und Struktur der Dateinamen
CR: Manual: Umstellung auf HTML
CR: HTTP REF: Optimierung vom Handling der Referenzen
CR: HTTP Request: Vereinfachung in der Normalisierung der Pfade
CR: HTTP DCGI/CGI: Erweiterung
    - neu CGI-Variable PATH_ABSOULTE
      absolute Pfadinformation der URL bei absoluten Referenzen
    - PATH_INFO wird durch PATH_URL ersetzt
      Templates welche diese verwenden, z.B. index.htm, muessen angepasst werden.
    - PATH_INFO wird erst bei absoluten Referenzen mit der erweiterten Pfadinformation
      zur Verfuegung gestellt

1.14.0 20021224
BF: HTTP REF: Korrektur bei Redirections in Kombination mit Basic Authentication
    und absoluten Verweisen
BF: HTTP CGI/DCGI: Korrektur vom Response der HEAD Methode
    Der Response war. u.U. unvollstaendig, wenn die Methode nicht fuer das Interface
    eingerichtet wurde.
CR: HTTP REF: allgemeine Ueberarbeitung in der Kontrolle und Steuerung der Referenzen
CR: HTTP REF: Erweiterung der Sektion der Referenzen um die Option [access:none]
    Die Basic Authentication kann damit partiell aufgehoben werden.
CR: HTTP Basic Authentication: Optimierung/Erweiterung
    Basic Authentication laesst sich bis auf Dateien anwenden, was jedoch nicht
    von alles Browsern problemlos unterstuetzt wird.
CR: HTTP AccessLog: Optimierung
    Der Zeilenumbruch wird nun passend zum Betriebssystem im Format verwendet.
    MAC: [CR], UNIX/Linux: [LF], Windows: [CRLF]
CR: HTTP DCGI/CGI: Entkopplung der HTTP-Methoden
    Somit koennen weitere HTTP-Methoden implementiert werden.

1.13.0 20021024
BF: HTTP: Korrektur beim Schutz vom Verzeichnis \"/\" mit der Option [access]
CR: Remote: Optimierung/Ueberarbeitung
    Der Telnet-Zugriff wurde optimiert und ressourcensparender gestaltet.
CR: HTTP Request: Begrenzung vom Header auf 65535 Bytes und 100 Sekunden fuer
    die Initialisierung
CR: HTTP: Optimierung vom Decode fuer BASE64 und DOT

1.12.0 20020917
CR: HTTP: Optimierung der UNIQUE_ID
CR: HTTP Request: allgemeine Optimierung/Ueberarbeitung vom Handler
CR: Devwex: allgemeine Optimierung der Groesse
CR: HTTP: Erweiterung um Basic Authorization
    Der Zugriff auf Verzeichnisse kann mit Benutzer und Passwort geschuetzt werden.
CR: HTTP: Optimierung/Ueberarbeitung vom Handling der virtuellen Verzeichnisse

1.11.0 20020819
BF: HTTP HEAD: Korrektur bei gesperrten Verzeichnissen
    Es werden keine Informationen mehr ueber enthaltene Dateien ausgegeben.
CR: HTTP Filter: Erweiterung um Referenzen erweitert
    Die Filter unterstuetzen damit gemeinsame Templates und Adresse Weiterleitung.
CR: Devwex: allgemeine Optimierung der Groesse
CR: HTTP Request: allgemeine Optimierung der Request-Verarbeitung
CR: HTTP DCGI/CGI: Begrenzung der Laenge vom Datenstream durch Content-Length
    Ist diese im Request nicht enthalten werden alle Bytes an das DCGI/CGI uebergeben.

1.10.2 20020728
BF: Configuration: Schluessel INTERUPT wurde in INTERRUPT geaendert
BF: HTTP AccessLog: Synchronisation der Protokollierung
    Fuer einen besseren Dateizugriff bei parallelen Request.

1.10.1 20020601
BF: HTTP Request: Korrektur/Ueberarbeitung
    - sicherer und fehlertolerantere Pfad-Verarbeitung
    - Korrektur vom Absturz der MS Java VM bei ueberlangen Requests/Pfaden

1.10.0 20020520
BF: HTTP Request: Optimierung fuer eine flexiblere Verarbeitung
BF: HTTP DCGI: Korrektur vom fehlerhaften CRLF Eintrag im DCGI-Header
BF: HTTP Mimetype: Optimierung in Ermittlung/Aufloesung
BF: HTTP HEAD: Korrektur der fehlenden CONTENT-LENGTH
BF: HTTP DCGI/CGI: Korrektur vom AccessLog
    Der per DCGI/CGI gesetzte Serverstatus wird jetzt richtig uebernommen.
    Ohne Serverstatus wird 200 verwendet.
BF: HTTP DCGI/CGI: Korrektur in der Verarbeitung vom Serverstatus
BF: HTTP AccessLog: Optimierung
    Die Protokollierung wurde der Request-Verarbeitung nachgelagert.
    U.a. blockiert somit die Connection nicht mehr bei ggf. laengeren Auffuehrungszeiten
    beim Aufloesen vom REMOTE-HOST in grossen Netzwerken.
CR: Devwex: allgemeine Optimierung der Groesse
CR: Server: Optimierung in der Verwendung vom Parameter SERVER:BAS:ADDRESS
    Dynamische Adressen werden nun auch ohne Neustart des Servers bei AUTO beruecksichtigt.
CR: SERVER/VIRTUALHOST: Erweiterung der Sektion REF
    Die Option [A] wird nun fuer Verzeichnisse und Dateien unterstuetzt.
    Bsp. APPS = /apps >> ../apps/index.php [A]

1.9.0 20020422
BF: HTTP Reference: Optionen/Direktiven werden nun vor der Verwendung entfernt
BF: HTTP Directory Index: bei Verzeichnissen wurde der Dateityp entfernt
BF: HTTP AccessLog: wegbrechende Request werden jetzt mit Status 400 protokolliert
CR: HTTP DCGI/CGI: Optimierung/Erweiterung/Korrektur
    - beginnt der DCGI/CGI-Response mit HTTP/ gefolgt vom Satus-Code, wird dieser
      vom Server uebernommen
    - REMOTE-HOST wird nicht mehr vom Server ermittelt, da es in grossen Netzwerken
      zu langen Antwortzeiten fuehren konnte
      Die Ermittlung vom REMOTE-HOST fuer den Accesslog wurde beibehalten.
CR: HTTP Filter: Optimierung/Erweiterung
    - Erweiterung um die Funktionen STARTS und ENDS
    - Erweiterung um die Verwendung der CGI-Variablen
CR: Devwex: allgemeine Optimierung der Groesse
CR: Initialize / Initializeblock: Optimierung/Erweiterung
    - Erweiterung um die Option [+]
      Enden Schluessel oder Werte mit [+] wird nun der komplette Werteeintrag verarbeitet
      wodurch auch das Semikolon verwendet werden kann. Kommentare sind in diesen
      Zeilen dann nicht mehr moeglich.
CR: SERVER/VIRTUALHOST: Erweiterung um die Sektion REF
    - die Sektion REF unterstuetzt die Konfiguration von Systemreferenzen
    Details sind bitte der Dokumentation zu entnehmen.

1.8.0 20020320
BF: HTTP Directory Index: Optimierung der Sortierung
    Standard: Dateityp (Verzeichnis/Datei) + Kriterium + Name
BF: HTTP DCGI/CGI: nicht verwendete CGI Variablen wurden entfernt
BF: HTTP: Anpassung der Prioritaeten der Fehlercodes
BF: HTTP Request: Location verwendet ohne Host die Adresse des Servers verwendet
BF: Service: Korrektur der OutOfMemoryException bei zu vielen Servern
    Der Server war dann auch ueber das Remote Control nicht mehr erreichbar.
BF: HTTP Server: Korrektur der Konfiguration
    Die Vererbung von ACCESSLOG und BLOCKSIZE funktioniert wieder.
CR: Session: allgemeine Optimierung
CR: Response: allgemeine Optimierung

1.7.0 20020220
BF: HTTP DCGI/CGI: Optimierung/Korrektur der Pfade
    Bei den Pfaden der Scripte wird nun abhaengig vom Dateisystem Slash oder Backslash
    verwendet.
CR: Initialize: Ueberarbeitung/Optimierung/Erweiterung
CR: Initializeblock: Ueberarbeitung/Optimierung/Erweiterung
CR: Server: Parameter SERVER:BAS:ADDRESS unterstuetzt nun auch den Wert AUTO
    Damit werden alle im System verfuegbaren IP Adressen verwendet.

1.6.0 20020128
BF: Server: Korrektur der u.U. scheiternden parallelen Zugriffe
CR: HTTP DCGI: Umstellung auf StdIO, SWAPROOT entfaellt damit
CR: HTTP DCGI/CGI/COMMAND: Umstellung der Parameter auf [I] [C] [P] [F] [E]
CR: HTTP: Optimierung/Verkuerzung der UNIQUE_ID (Umstellung alphanumerisch)
CR: Devwex: allgemeine Optimierung in Groesse und Performance
CR: Server: Schluessel SERVER:BAS:PROCESSES ist entfallen
CR: HTTP DCGI/CGI/COMMAND: SERVER_SOFTWARE enthaelt nun die Serverversion

1.5.0 20011228
BF: Service: Korrektur der OutOfMemoryException bei zu vielen Services-Threads
BF: HTTP Request: Decodierung wurde ausgebaut und flexibler gestaltet
    Die Filterfunktionen komplett mit einbezogen wurden.
BF: HTTP Request: Korrektur in der Verarbeitung vom �
BF: HTTP Redirection: Korrektur im Umgang mit einer Query
BF: HTTP CGI: Korrektur in der Verarbeitung/Ueberwachung vom Timeout
BF: HTTP DCGI/CGI: Korrektur bei der Erstellung der swap-Files
    Diese wurden seit 1.3.0 20011201 mit jedem Zugriff angelegt.
    Die Erstellung der swap-Files erfolgt nur noch fuer das DCGI.
BF: HTTP Generator: Korrektur der Fehler-/Status-Templates
    Der ERROR-Block wurde nicht beruecksichtigt.
CR: Devwex: allgemeine Optimierung der Groesse
CR: HTTP Filter: Erweiterung um:
    - die Option [A] zur AND Verknuepfung
    - den Vergleichswert NULL zur Pruefung auf Leer
      Bsp. FILTER = GET IS NULL ... [A] GET ... [A] ...

1.4.0 20011201
CR: HTTP DCGI/CGI: Erweiterung um die Optionen [U] und [S] um Java-Applications
    per DCGI verwenden zu koennen
    Bsp. WAP = POST GET >> java -cp [S].wap [U] [I]

1.3.1 20011112
BF: HTTP DCGI/CGI: Abgleich der Parameter/Optionen
    Bei Aufruf ohne Parameter/Optionen wird der Anwendung die Script-Datei nur
    in den Umgebungsvariablen uebergeben.
    [C] CGI Aufruf der Anwendung mit Scriptdatei
    [I] DCGI Aufruf der Anwendung mit der Swapdatei

1.3.0 20010803
BF: Service: Korrektur der OutOfMemoryException bei zu vielen Service-Threads
CR: Devwex: allgemeine Optimierung
CR: Generator: Ueberarbeitung/Optimierung/Erweiterung
CR: HTTP REF: Erweiterung der virtl. Verzeichnisse um den Parameter [R] fuer Redirections
CR: Messenger: Ueberarbeitung/Optimierung/Erweiterung
CR: Initialize: Ueberarbeitung/Optimierung/Erweiterung
CR: Logging: SystemLogWriter wurde entfernt

1.2.0 20010529
BF: HTTP Filter: Filter-Parameter entsprechen nun in der Syntax den Header-Parametern
BF: HTTP: Korrektur der abgebrochenen Request-Datenstroeme owhohl noch Daten vorlagen
BF: HTTP Directory Index: Korrektur in der Template-Generierung bei leeren Verzeichnissen
CR: Devwex: Allgemeine Optimierung der Groesse
CR: SERVER:BAS/VIRTUALHOST:BAS: Erweiterung der Sektion um den Schluessel IMPLEMENTS
    Die Konfiguration des nachfolgend benannten Server oder virtuellen Hosts wird
    dann als Basiskonfiguration geladen und Konfigurationen koennen vererbt werden.
CR: HTTP Request: Erweiterung um der Parameter VERSION
    ohne Auswirkungen auf die Funktionalitaet
CR: HTTP SERVER:BAS: Erweiterung der Serverkonfiguration um den Schluessel Timeout
    Dieser gibt den maximal zulaessige Datenleerlauf in Millisekunden an.
    Der Wert 0 bedeutet das der Timeout nicht beruecksichtigt wird.

1.1.0 20010425
BF: HTTP: Korrektur vom Response mit Code 304/302
CR: HTTP REF: Erweiterung der virtl. Verzeichnisse um den Parameter [C] zum sperren
    Anfragen zu solchen Verzeichnissen werden mit Status 403 beantwortet.
CR: HTTP DCGI: Erweiterung um an das CGI 1.1 angelehnte Schnittstelle fuer Applikation
    die z.B. keine Umgebungsvariablen lesen koennen
CR: HTTP COMMAND: Erweiterung um Parameter [I] zur Aktivierung/Nutzung vom DCGI
CR: HTTP CGI: Erweiterung um Parameter [I] zur Aktivierung/Nutzung vom DCGI

1.0.0 20010411
NT: Devwex steht als Release bereit.