innovative Software seit 1996

Commons
überraschend vielseitig

Seanox Commons stellt allgemeine Funktionen und Komponenten zur Erweiterung der Java-laufzeitumgebung bereit. Diese unterstützen u.a. beim Zugriff auf Java-Objekte via Reflections, inklusive einer Erweiterung speziell für AJAX, Modifizieren Strings, Sortieren String-Arrays, Berechnen phonetische Werte von Strings, Generieren Daten mittels Templates, unterstützen das klassische und ein erweitertes Ini-Dateiformat, Protokollieren Informationen in Datenströme und Dateien, Lädt Daten aus dem Internet und Kodieren und Dekodieren BASE64, UTF8, MIME sowie DOT.

Die Bibliothek basiert nur auf Bibliotheken der Java Standard VM und ist damit von anderen Bibliothek unabhängig. Somit lassen sich die enthaltenen Funktionalitäten auch in anderen Java-Anwendungen problemlos einbinden und nutzen.

Mit den Paketen com.seanox.modules.tcp und com.seanox.modules.udp werden zudem eine Erweiterung der Seanox Devwex Server-API bereitgestell, welche die Implementierung von Server-Modulen vereinfachen. So kapseln diese elementare Funktionen wie die Basis-Konfiguration und das Connection-Handling.

Für die vereinfachte Implementierung von HTTP-Modulen steht zudem mit dem Paket com.seanox.moduleeine Erweiterung der Seanox Devwex HTTP-Module-API zur Verfügung. So kapselt das Paket zu den Modul-Einsprüngen und Modultype passende Laufzeitobjekte, bündelt HTTP-Anfragen in Request- und Server-Antworten in Response-Objekte, regelt die Zugriffe auf Ressourcen, unterstützt den Zugriff auf Post-Daten und Multipart-Objekte z.B. beim Upload von Daten, die Kodierung und Dekodierung von Daten und vieles mehr.

Stand: 07.09.2014

Historie

1.2013.1010

Kleiner Korrekturen und allgemeine Optimierung standen im Vordergrund.

  • Common Node::GetPath: Korrektur bei der Ermittlung vom Root-Element
  • Module-API Connector CGI/Servlet: Korrektur der initialen Einrichtung
  • Network HTTP-Conntector: Erweiterung um einen anonymen Konstruktor
  • Common Generator: Abgleich mit dem aktuellen Stand aus Seanox Devwex (keine funktionale Änderung)
  • Common Paging: Umstellung auf die innere Klasse Meta
  • Common Resource: Korrektur / Optimierung der Dokumentation

1.2013.0707

Diverse kleinere Fehler wurden behoben, die HTTP-Module-API wurde an die aktuelle Version von Seanox Devwex angepasst und zahlreiche Altlasten bereinigt.

  • Common Node: Korrektur des nicht übernommenen Namens bei Verwendung des Konstruktors
  • Common Node: Erweiterung um Optionen zur Angabe der Schreibweise von Pfaden/Namen/Attributen (Standard: Kleinschreibung)
  • Common Node: Änderung von Node::GetNodesByPath in Node::GetNodes
  • Common Node: Änderung von Node::GetNodeByPath in Node::GetNode
  • Common Node: Änderung von Node::Reset in Node::Clear
  • Common Node: Änderung von Node::GetNodesPaths in Node::GetAllNodesPaths
  • Common Node: Aktualisierung der Doku
  • Common Section: Änderung von Section::Reset in Section::Clear
  • Common Initialize: Änderung von Initialize::Reset in Initialize::Clear
  • Module-API CGI: Änderung von Environment::Reset in Environment::Clear
  • Module-API HTTP: Änderung von Environment::Reset in Environment::Clear
  • Module-API Servlet: Änderung von Environment::Reset in Environment::Clear
  • Module-API / Network HTTP: Änderung von Session::Reset in Session::Clear
  • Module-API / Network HTTP: Änderung von Cookie::Reset in Cookie::Clear
  • Module-API: Erweiterung um Response::Protocol zur Änderung vom Protokoll
  • Module-API: Minimierung von redundantem Code durch die Umstellung auf abstrakte Klassen
  • Module-API: Response::SendStatus delegiert nun die Beantwortung an den Server
  • Module-API: Erweiterung um Response::GetServerIdentity zur Abfrage der Serverkennung (bei Seanox Devwex), berücksichtig die Server-Option IDENTITY
  • Module-API: Response, Korrektur des Fehles wenn nach Response::SendStatus/Response::SendRedirect Response::Flush aufgerufen wird
  • Module-API: Wegfall der Modultypen COMMAND, LOGGING, STATUS, METHOD, LISTING
  • Module-API: Response::GetHeaderFields, Korrektur bei der Ermittlung der Werte
  • Module-API: Response::GetHeaderField, Korrektur bei der Ermittlung des Werts
  • Module-API: Context::FindLibraries, Korrektur bei der Trennung von Pfaden des Dateisystems
  • Module-API: Korrektur beim Auflösen von "extends" in der Konfiguration eines Moduls
  • Network HTTP-Conntector: Bereinigung der JSSE-Integration (vor Java 1.4)
  • Doku: Anpassung der Druckansicht

1.2013.0401

Neben der schon überfälligen Harmonisierung des Projekts wurden kleine Fehler und einige Altlasten bereinigt.

  • Common Pagging: Allgemeine Optimierung
  • Common Pagging: Erweiterung um rangeLeft, rangeRight, viewStart, viewEnd, viewCount
  • Common Pagging: Erweiterung um eine optionale Begrenzung vom Wertebereich
  • Common Codec: Wegfall vom Prefix CODING bei den Konstanten
  • Module-API: Optimierung in der Ermittlung der Parameter zu einem Modul
  • Module-API: Response::Encode; Wegfall der Methode, da redundant mit Codec::Encode
  • Module-API: Request::Decode; Wegfall der Methode, da redundant mit Codec::Decode
  • XML Stream: Änderung von Stream::WriteXMLHeader in Stream::WriteXmlHeader
  • Build: Allgemeine Harmonisierung vom Build-Skript

1.2012.0815

Mit der aktuellen Version wurde die Server- und Module-API allgemein optimiert und überarbeitet. Die neue Version vereinfacht die Entwicklung eigener Erweiterungen für Seanox Devwex stark und kapselt viele elementare Mechanismen. Bei der Module-API wurde der HTTP-Context u.a. um einen Application-Classloader erweitert, womit sich HTTP-Module ohne Änderung in verschiedenen Versionen und mit unabhängiger Konfiguration laden lassen.

  • Allgemein: Anhebung auf Java Version 1.4, optionales SSE entfällt (sun-jcert.jar, sun-jnet,jar, sun-jsse,jar)
  • Allgemein: Umstellung auf Standard-Exceptions (Wegfall vom Exception Package)
  • Allgemein: Umstellung auf die neue Version von Accession
  • Allgemein: Umstellung auf Codec (Kodierung/Dekodierung)
  • Dokumentation: allgemeine Überarbeitung
  • Components: Erweiterung um Loader als ClassLoader
  • Components: Erweiterung um Codec für Kodierung/Dekodierung BASE65/MIME/UTF8/DOT
  • Components: Erweiterung um Resource für den vereinfachten Zugriff auf Ressourcen im ClassPath
  • Components: Umstellung von Accession auf rein statische Methoden
  • Server-API: Erweiterung um com.seanox.module.udp zur vereinfachten Implementierung von UDP-basierten Server-Modulen
  • Server-API: Erweiterung um com.seanox.module.tcp zur vereinfachten Implementierung von TCP-basierten Server-Modulen
  • Module-API: allgemeine Optimierung beim Umgang mit der Konfiguration
  • Module-API: vereinheitlichte Umstellung der Sichtbarkeit der Konstruktoren auf Paketebene
  • Module-API: Erweiterung von Context um das Laden von Modulen mit zusätzlichem (Application)ClassLoader
  • Module-API: Wegfall von Instanz nach der Erweiterung von Context
  • Network-HTTP: Umstellung von Address auf nur lesbares Objekt (Initiierung erfogt nun über Address::Parse)
  • Network-HTTP: Wegfall vom Security-Provider mit dem Wegfall vom com.sun.net.ssl.internal.ssl.Provider in Java 7

1.2010.1010

Die aktuelle Version enthält ausschliesslich Anpassungen zur geänderten Module-API von Devwex 1.2010.10xx sowie allgemeine Optimierungen bzw. geringfügige Korrekturen. Mit der Anpassung der Module-API kann es u.U. zur Inkompatibilität mit älteren Modulen kommen. Diese lässt sich durch die problemlose Umstellung von Parameters auf Section, der Übergabe der Modul-Parameter von "module_core" auf "module_opts" sowie der Umstellung in der Anbindung der HTTP-Modulen über die Methode Modul::Bind beheben.

  • Anpassung der Versionsverwaltung, Umstellung auf Mercurial
  • Anpassung der Module-API, allgemeine Harmonisierung mit Devwex 1.2010.10xx
  • Anpassung der Module-API, Umstellung von Parameters auf Section
  • Anpassung der HTTP-Module-API, Umstellung von Modul::Mount auf Modul::Bind
  • Anpassung der HTTP-Module-API, Umstellung der Modul-Initiierung von "module_core" auf "module_opts"
  • Anpassung der HTTP-Module-API, allgemeine Korrektur/Optimierung beim Zugriff auf die Datenströme
  • Anpassung der HTTP-Module-API, allgemeine Korrektur/Optimierung bei der Ermittlung vom Host
  • Anpassung des HTTP-Connectors, Änderung vom statischen Feld Content::FIELD_HEADER_FIRSTLINE in Content::FIELD_HEADER_REQUEST
  • Korrektur der HTTP-Module-API beim automatische Aufruf von Response::Flush

1.2010.0414

Umstellung der DCGI-Schnittstelle auf den verkürzten DCGI-Header sowie Änderung der Generator-Tags auf "set" als Anpassungen bzw. Harmonisierung mit Devwex 1.2010.xxxx.

1.2009.1015

Korrektur des versehentlich als final bereitgestellten 1.2009.1015 RC Binaries.

1.2009.1015

Seanox Commons wurden allgemein optimiert, teilweise erweitert und einige Fehler beseitigt. Im Paket com.seanox.module wurde die Objekt-Hierarchie entsprechend dem Modulkonzept optimiert, womit einige unsaubere Überschneidungen bei allgemeinen Modulen und den speziellen HTTP-Modulen bereinigt wurden. Damit ist das Paket com.seanox.module für HTTP-Module leider nicht mehr abwärtskompatibel. Zudem wurden die erweiterten Sequenzen zum Laden und Entladen von Seanox Devwex umgesetzt, die Initialisierung der Module sowie das Laden der Konfigurationen vereinfacht und die HTTP-Module um den Typ Instance erweitert. Mit diesem Modultyp lassen sich Module mit verschiedenen Instanzen zur Laufzeit einrichten.

com.seanox.common
  • Erweiterung um die Methode Accession::GetClassHerachie zur Ermittlung der vererbten Klassenhierarchie
  • Anpassung der Methode Accession::ToString, Umstellung auf ArrayList
  • Anpassung der Methode Accession::IsObjectRecursive, Umstellung auf ArrayList
  • Anpassung der Methode Accession::GetMethods, Umstellung auf ArrayList
  • Anpassung der Methode Accession::GetFields, Umstellung auf ArrayList
  • Anpassung der Methode Accession::GetField, Umstellung auf ArrayList
  • Anpassung der Methode Accession::GetConstructors, Umstellung auf ArrayList
  • Anpassung vom Feld Initialize::Entries, Umstellung auf volatile
  • Anpassung vom Feld Initialize::Resolve, Umstellung auf volatile
  • Anpassung vom Feld Initialize::List, Umstellung auf volatile
  • Anpassung von Nodes, allgemeine Umstellung der Konten auf die Haltung in einer Liste
  • Anpassung von Nodes, Umstellung von Content auf ein Objekt
  • Anpassung vom Feld Parameters::Entries, Umstellung auf volatile
  • Anpassung vom Feld Parameters::List, Umstellung auf volatile
  • Anpassung vom Feld Sequence::Entries, Umstellung auf volatile
  • Anpassung vom Feld Sequence::Stack, Umstellung auf volatile
  • Anpassung vom Feld Sequence::Volume, Umstellung auf volatile
  • Anpassung der Methode Violation::GetCause, liegt kein Ursprungsfehler (Cause) vor wird null und nicht mehr this zurückgegeben
com.seanox.module
  • Erweiterung um Instance zur Implementierung von instanzierbaren Modulen
  • Anpassung der Methode Context::UseModul, Umbenennung in Context::Call
  • Erweiterung um Methode Context::ExtendsOptions zur automatischen Erweiterung der Modulkonfiguration bei Verwendung von "extends"
  • Anpassung um Methode Context::Initialie, Erweiterung um die direkte Übergabe der Kofniguration als Parameter
com.seanox.module.cgi
  • Anpassung vom Paket com.seanox.module.cgi.commons, die Objekte wurden nach com.seanox.module.cgi verschoben
  • Anpassung der Methode Connection::ToString, Umstellung auf StringBuffer
  • Anpassung der Methode Connection::ToString, Umstellung auf StringBuffer
  • Anpassung der Methode Connection::ToStringValue, Umstellung auf StringBuffer
  • Anpassung der Methode Environment::ToString, Umstellung auf StringBuffer
  • Anpassung der Methode Environment::ToStringValue, Umstellung auf StringBuffer
  • Erweiterung um das Feld Request::Locked zum kompletten Sperren (Readonly) eines Requests
  • Erweiterung um das Feld Request::Attributes mit den entsprechenden Zugriffmethoden zum Ablegen von Attributen beim Request
  • Anpassung der Methode Request::ToString, Umstellung auf StringBuffer
  • Anpassung vom Feld Response::Bounded, mit Setzen des Feld ist der Response nur noch ein lesender Zugriff möglich
  • Anpassung der Methode Response::ToString, Umstellung auf StringBuffer
com.seanox.module.http
  • Anpassung vom Paket com.seanox.module.http.commons, die Objekte wurden nach com.seanox.module.http verschoben
  • Anpassung von Command.java, Umstellung auf Extension
  • Anpassung der Methode Command::Mount, Umstellung auf die Verwendung von Request::Locked
  • Erweiterung um den Konstruktor Server::Server als Standard
  • Anpassung von Context (com.seanox.module.http.commons), die Klasse wurde in Extension geändert
  • Anpassung von Context (com.seanox.module), klare Abtrennung von com.seanox.module.http.commons.Context als Basis zur Implementierung von Modulen
  • Anpassung der Methode Environment::ToString, Umstellung auf StringBuffer
  • Anpassung der Methode Environment::ToStringValue, Umstellung auf StringBuffer
  • Anpassung von Filter.java, Umstellung auf Extension
  • Anpassung der Methode Filter::Mount, Umstellung auf die Verwendung von Request::Locked
  • Anpassung von Listing.java, Umstellung auf Extension
  • Anpassung der Methode Listing::Mount, Umstellung auf die Verwendung von Request::Locked
  • Anpassung von Logging.java, Umstellung auf Extension
  • Anpassung der Methode Logging::Mount, Umstellung auf die Verwendung von Request::Locked
  • Anpassung von Method.java, Umstellung auf Extension
  • Anpassung von Process.java, Umstellung auf Extension
  • Anpassung der Methode Request::Read, Korrektur in der Berechnung der gelesenen Datenmenge
  • Erweiterung um das Feld Request::Locked zum kompletten Sperren (Readonly) eines Requests
  • Erweiterung um das Feld Request::Attributes mit den entsprechenden Zugriffmethoden zum Ablegen von Attributen beim Request
  • Anpassung der Methode Request::ToString, Umstellung auf StringBuffer
  • Anpassung vom Feld Response::Bounded, mit Setzen des Feld ist der Response nur noch ein lesender Zugriff möglich
  • Anpassung der Methode Response::ToString, Umstellung auf StringBuffer
  • Anpassung von Server.java, Umstellung auf Extension
  • Anpassung der Methode Server::ToString, Umstellung auf StringBuffer
  • Anpassung von Status.java, Umstellung auf Extension
  • Anpassung der Methode Status::Mount, Umstellung auf die Verwendung von Request::Locked
com.seanox.module.servlet
  • Anpassung vom Paket com.seanox.module.servlet.commons, die Objekte wurden nach com.seanox.module.servlet verschoben
  • Anpassung der Methode Connection::ToString, Umstellung auf StringBuffer
  • Anpassung der Methode Environment::ToString, Umstellung auf StringBuffer
  • Anpassung der Methode Environment::ToStringValue, Umstellung auf StringBuffer
  • Erweiterung um das Feld Request::Locked zum kompletten Sperren (Readonly) eines Requests
  • Erweiterung um das Feld Request::Attributes mit den entsprechenden Zugriffmethoden zum Ablegen von Attributen beim Request
  • Anpassung der Methode Request::ToString, Umstellung auf StringBuffer
  • Anpassung vom Feld Response::Bounded, mit Setzen des Feld ist der Response nur noch ein lesender Zugriff möglich
  • Anpassung der Methode Response::ToString, Umstellung auf StringBuffer
com.seanox.network.ajax
  • Anpassung von Stream.java, allgemeine Umstellung auf ArrayList
com.seanox.network.http
  • Anpassung der Methode Address::SetQuery, allgemeine Umstellung auf ArrayList

1.2009.0425

Mit der Umstellung der Lizenz auf die GPL 2.0 sind Seanox Commons nun offiziell Open Source. Funktional wurden einige Komponenten überarbeitet oder korrigiert.

  • Umstellung der Lizenz auf die GPL 2.0
  • allgemeine Optimierung des Build-Skripts
  • Anpassung, der Template-Generator wurde funktional optimiert und die Syntax verkürz
  • Korrektur in der von Gross-/Kleinschreibung unabhängigen Auflösung von Pfaden im Objket Node
  • Korrektur beim CGI-Request zur korrekten Ermittlung der Request-Parameter

1.2008.1221

Die Bibliothek wurde allgemein in Vorbereitung auf die kommenden Versionen von Seanox Devwex 1.2008.1224 und Seanox WebDav 1.2008.1224 erweitert. Zudem wurden einige kleinere Fehler behoben.

  • Erweiterung um die Methode Parameters::Export, zur Rückgabe als Hashtable
  • Erweiterung um die Methode Context::LoadClass zum Laden von Klassen über den servereigenen ClassLoader
  • Erweiterung um die Methode Parameter::Export, zum Exportieren in eine Hashtable
  • Erweiterung um die Methode Enviroment::Export (cgi, http, servlet), zur Rückgabe als Hashtable
  • Erweiterung um die Methode Request::GetContentLength (cgi, http, servlet) zur Ermittlung der mit dem Request übergebenen Datenmenge
  • Erweiterung Stream (XML) zum einfachen Schreiben von XML-Daten
  • Anpassung, Umstellung des statischen HTTP Connectors (com.seanox.network.http) auf eine normale instanziierbare Version
  • Anpassung, komplette Überarbeitung des Generators, komplette Überarbeitung, es fällt weg "var"/"adn"/"adf", es wird nur noch "val"/"ins"/"add" unterstützt
  • Anpassung der Methode Context::UseModul, Umstellung auf Service::Call
  • Anpassung der Methode Content::Decode, Umstellung auf die Verwendung der Konstanten
  • Anpassung der Methode Content::Encode, Umstellung auf die Verwendung der Konstanten
  • Korrektur der Methode Messenger::Print beim Umgang mit dem Context "null"

1.2008.0508

Die Konfiguration wurde allgemein optimiert und um neue Funktionen für die Vererbung von Parameterblöcken und zur Fortführung von Werten auf Folgezeilen erweitert. Allgemein wurde die Modul- und Server-API für die Verwendung von Seanox Devwex 1.2008.x optimiert.

  • Erweiterung um das Feld Initialize::Resolve zum Auflösen von Vererbungen
  • Anpassung der Methode Initialize::Parse, Erweiterung um die Ermittlung der Vererbung
  • Anpassung der Methode Initialize::Get, Umstellung auf die allgemeine Auflösung der Vererbung
  • Anpassung der Methode Initialize::Set, Umstellung auf die neue Version von Initialize::Add
  • Anpassung der Methode Initialize::Add, Erweiterung um die optionale Angabe eines Verweis auf einen anderen Parameterblock (Vererbung)
  • Anpassung der Methode Initialize::Remove, Erweiterung um die Einbeziehung von Initialize::Resolve
  • Anpassung der Methode Initialize::Join, Änderung in Initialize::Merge
  • Anpassung der Methode Initialize::Join, Erweiterung um die Einbeziehung von Initialize::Resolve
  • Anpassung der Methode Initialize::ToString, Erweiterung um die Einbeziehung von Initialize::Resolve und die Ausgabe von "EXTENDS"
  • Anpassung der Methode Parameters::Parse, Erweiterung um die Option + zum Fortsetzen einer Wertzuweisung in der Folgezeile
  • Anpassung der Methode Parameters::Join, Änderung in Parameters::Merge
  • Anpassung der Methode Parameters::ToString, Erweiterung um die Ausgabe der Option [+] beim Vorkommen vom Semikolon im Wert
  • Anpassung der Methode Context::UseModule umstellung auf die Weitergabe von Fehler als Exception
  • Anpassung der Methode Server::MountInitialize, Erweiterung um die Einbeziehung von Initialize::Resolve
  • Anpassung der Methode Environment::Join (cgi/http/servlet), Änderung in Environment::Merge
  • Anpassung der Methode Environment::ToStringValue (cgi/http/servlet), allgemeine Optimierung des Quelltexts
  • Anpassung der Methode Request::ParseInterface (cgi), Umstellung auf den DCGI Header "CGI"
  • Anpassung der Methode Connector::CreateSocket (network), allgemeine Optimierung der Fehlerausgabe
  • Anpassung der Methode Connector::Commit (network), allgemeine Optimierung der Fehlerausgabe

1.2008.0101

Das Modul Paket wurde um Sessions, zur Verwaltung von sitzungsbezogenen Daten, erweitert. Zur Einbindung von Modulen stellt die Context Klasse nun eine weitere Methode zur Verfügung. Die Response Klassen für CGI, HTTP und Servlet wurden zudem um Konstanten für die Serverstatus NON AUTHORITATIVE INFORMATION (203), NO CONTENT (204) und RESET CONTENT (205) erweitert.

1.2007.1017

Allgemeine wurde die komplette Fehlerbehandlung überarbeitet. Mit Ausnahme vom Paket com.seanox.module werden nun ausschliesslich Java Standardfehlerobjekte verwendet. Fast alle Komponenten wurden optimiert und die Dokumentation erweitert. Die Module-API wurde auf die neue Server-API von Devwex umgestellt. Somit müssen Server nun Runnable sowie die Methode Server::GetCaption und Server::Destroy implementieren. Der Konstruktor wurde auf die Signature Server::Server(String, Object) geändert. Die Konfiguration wird nun als Initialize Objekt übergeben.

com.seanox.common
  • Anpassung der Methode Messenger::Print, Erweiterung um die Auflösung von nur InvocationTargetException
  • Anpassung von Accession.java, allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung der Methode Accession::GetConstructor, Erweiterung um die Unterscheidung von Klassen und Objekt Instanzen
  • Anpassung der Methode Accession::GetConstructors, Erweiterung um die Unterscheidung von Klassen und Objekt Instanzen
  • Anpassung der Methode Accession::StoreField, für die Methode ist kein Rückgabewert mehr vorgesehen
  • Anpassung der Methode Accession::StoreField, scheiternde Zugriffe müssen als IllegalAccessException behandelt werden
  • Anpassung der Methode Accession::NewInstanze, Erweiterung um die Weitergabe der beim Zugriff per Reflections überlichen Fehler
  • Anpassung der Methode Accession::Get, Erweiterung um die Weitergabe der beim Zugriff per Reflections überlichen Fehler
  • Anpassung der Methode Accession::Set, Erweiterung um die Weitergabe der beim Zugriff per Reflections überlichen Fehler
  • Anpassung der Methode Accession::Invoke, Erweiterung um die Weitergabe der beim Zugriff per Reflections überlichen Fehler
  • Anpassung der Methode Accession::IsObjectRecursive um die erforderliche Fehlerbehandlung bei der Verwendung von Accession::Get
  • Anpassung der Methode Accession::IsObjectRecursive im Umgang Arrays von einfachen Datentypen
  • Anpassung von Components.java, allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung der Methode Generator::DefineInternal für die Verwendung von Tags mit weniger als 4 Bestandteilen
  • Anpassung von Initialize.java, Erweiterung um die Implementierung von Cloneable
  • Anpassung der Methode Initialize::Load, scheiternde Zugriffe auf eine Konfigurationsdatei führen nun zur IOException
  • Anpassung der Methode Initialize::Load, für die Methode ist kein Rückgabewert mehr vorgesehen
  • Anpassung der Methode Initialize::Save, scheiternde Zugriffe auf eine Konfigurationsdatei führen nun zur IOException
  • Anpassung der Methode Initialize::Save, für die Methode ist kein Rückgabewert mehr vorgesehen
  • Anpassung des Konstruktors Messenger::Messenger, die Einrichtung mit File und Outputstream wird nicht mehr unterstützt
  • Anpassung der Methode Messenger::GetFile, die Methode wird nicht mehr unterstützt und wurde entfernt
  • Anpassung der Methode Messenger::GetStream, die Methode wird nicht mehr unterstützt und wurde entfernt
  • Anpassung der Methode Messenger::GetContext, die Methode wird nicht mehr unterstützt und wurde entfernt
  • Anpassung der Methode Messenger::Write, die Methode ist nicht mehr öffentlich
  • Anpassung der Methode Messenger::Add, Erweiterung um das Auflösen von Fehlerobjekten
  • Anpassung der Methode Messenger::Add, die Methode wurde in Messenger::Print geändert
  • Anpassung von Node.java, allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung von Parameters.java, Erweiterung um die Implementierung von Cloneable
  • Anpassung von Sequence.java, allgemeine Umstellung auf Java Standardfehlerobjekte
  • Erweiterung um Violation.java als allgemeines Fehlerobjekt
com.seanox.exceptions
  • Anpassung von InvalidAccess.java, Umstellung auf Violation
  • Anpassung von InvalidArgument.java, Umstellung auf Violation
  • Anpassung von InvalidDuration.java, Umstellung auf Violation
  • Anpassung von InvalidSituation.java, Umstellung auf Violation
  • Anpassung von InvalidSpace.java, Umstellung auf Violation
  • Anpassung von InvalidState.java, Umstellung auf Violation
  • Anpassung von InvalidStructure.java, Umstellung auf Violation
  • Anpassung von InvalidSyntax.java, Umstellung auf Violation
  • Anpassung von InvalidType.java, Umstellung auf Violation
com.seanox.module
  • Anpassung der Methode Context::Initialize, Erweiterung um die Weitergabe von auftretenden Fehlern
  • Anpassung der Methode Context::Destroy, Erweiterung um die Weitergabe von auftretenden Fehlern
  • Anpassung der Methode Context::Mount, Erweiterung um das finale Reponse::Flush
  • Anpassung der Methode Context::Print (com.seanox.module), Erweiterung um das Auflösen von InvocationTargetException
  • Anpassung der Methode Context::Mount (com.seanox.module), Erweiterung um das automatische setzen des Fehlerstatus im Fehlerfall
  • Anpassung der Methode Response::IsUsable (com.seanox.module.cgi.common), Erweiterung um die Einbeziehung von Response::Bounded
  • Anpassung der Methode Response::IsUsable (com.seanox.module.http.common), Erweiterung um die Einbeziehung von Response::Bounded
  • Anpassung der Methode Response::IsUsable (com.seanox.module.servlet.common), Erweiterung um die Einbeziehung von Response::Bounded
  • Anpassung der Methode Response::SendStatus (com.seanox.module.http.common), allgemeine Korrektur/Optimierung für den Umgangs mit NullPointerExceptions
  • Anpassung der Methode Response::SendStatus (com.seanox.module.servlet.common), allgemeine Korrektur/Optimierung für den Umgangs mit NullPointerExceptions
  • Anpassung der Methode Response::SendRedirect (com.seanox.module.servlet.common), allgemeine Korrektur/Optimierung für den Umgangs mit NullPointerExceptions
  • Anpassung der Methode Response::Flush (com.seanox.module.servlet.common), allgemeine Korrektur/Optimierung für den Umgangs mit NullPointerExceptions
  • Anpassung der Methode Connector::CreateSocket (com.seanox.network.http), allgemeine Korrektur/Optimierung für den Umgangs mit NullPointerExceptions
  • Anpassung der Methode Context::GetConfiguration (com.seanox.module), Umstellung auf Context::MountField und Accession::StoreField
  • Erweiterung um die Methode Context::MountField (com.seanox.module) für den einfachen Zugriff auf Felder per Reflections
  • Anpassung der Methode Context::UseModule (com.seanox.module), Optimierung der Fehlerbehandlung/-weitergabe
  • Anpassung der Methode Context::Service (com.seanox.module), Umstellung auf die Weitergabe nicht behandelter Exceptions
  • Anpassung von Server.java (com.seanox.module), Umstellung auf die neue Server-API
  • Anpassung von Server.java (com.seanox.module), Umstellung auf die Implementierung vom Runnable
  • Erweiterung um die Methode Server::MountInitialize (com.seanox.module) für den einfachen Zugriff auf die Server Konfiguration bzw. zum Konvertieren von Devwex Initialize
  • Anpassung vom Feld Response::Volume (com.seanox.module.cgi.common), Umstellung des Datentyps von int auf long
  • Anpassung der Methode Command::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Command::Mount, Umstellung auf Context::MountField
  • Anpassung der Methode Context::CopyEntries (com.seanox.module.http), die Methode wird nicht mehr verwendet und wurde entfernt
  • Erweiterung um die Methode Context::MountField (com.seanox.module.http) für den Zugriff auf Felder eines Objektes per Reflections
  • Anpassung der Methode Filter::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Filter::Mount, Umstellung auf Context::MountField
  • Anpassung der Methode Listing::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Listing::Mount, Umstellung auf Context::MountField
  • Anpassung der Methode Logging::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Logging::Mount, Umstellung auf Context::MountField
  • Anpassung der Methode Method::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Method::Mount, Umstellung auf Context::MountField
  • Anpassung der Methode Process::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Process::Mount, Umstellung auf Context::MountField
  • Anpassung der Methode Service::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Status::Service, die Methode wird nicht mehr verwendet und wurde entfernt
  • Anpassung der Methode Status::Mount, Umstellung auf Context::MountField
  • Anpassung von Cookie.java (com.seanox.module.http.common), Umstellung auf com.seanox.network.http.Cookie mit Adaption der auftretenden Fehler
  • Erweiterung um das Feld Response::Statuscodes (com.seanox.module.http.common) zur Haltung der serverseitigen StatusCodes
  • Anpassung vom Feld Response::Volume (com.seanox.module.http.common), Umstellung des Datentyps von int auf long
  • Anpassung vom Konstruktor Response::Response (com.seanox.module.http.common), Erweiterung um die Übernahme der serverseitigen StatusCodes
  • Anpassung der Methode Response::GetStatusMessageInterna (com.seanox.module.http.common), die Methode wird nicht mehr verwendet und wurde entfernt
  • Erweiterung um die Methode Response::SynchronizeTransfer (com.seanox.module.http.common) zur Synchronisation der Transferdaten mit der Server Instanz
  • Anpassung der Methode Response::AddTransferVolume (com.seanox.module.http.common), Auslagerung der Synchronisation der Transferdaten in Response::SynchronizeTransfer
  • Anpassung der Methode Response::SendStatus (com.seanox.module.http.common), Umstellung auf Accession::StoreField
  • Anpassung vom Konstruktor Server::Server (com.seanox.module.http.common), Umstellung auf Context::MountField
  • Anpassung vom Feld Response::Volume (com.seanox.module.servlet.common), Umstellung des Datentyps von int auf long
com.seanox.network
  • Anpassung der Methode Stream::IsObjectRecursive um die erforderliche Fehlerbehandlung bei der Verwendung von Accession::Get
  • Anpassung der Methode Stream::IsObjectRecursive im Umgang Arrays von einfachen Datentypen
  • Anpassung von Address.java, allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung von Connector.java (com.seanox.network.http), allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung der Methode Connector::CreateSocket (com.seanox.network.http), Umstellung auf com.seanox.network.http.security / com.seanox.network.http.security.old
  • Anpassung der Methode Connector::CreateSocket (com.seanox.network.http), Korrektur beim Zugriff auf die bestehende Factory, dieser konnte unter Umständen zur NullPointerException führen
  • Anpassung von Content.java (com.seanox.network.http), allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung von Cookie.java (com.seanox.network.http), allgemeine Umstellung auf Java Standardfehlerobjekte
  • Anpassung der Methode Fragment::GetContent, Umstellung auf die Rückgabe eines InputStreams, unabhängig ob die Daten im Speicher vorgehalten oder als Datei ausgelagert werden
  • Erweiterung um die Methode Fragment::GetLength zur Ermittlung der vorgehaltenen Datenmenge, unabhängig ob die Daten im Speicher vorgehalten oder als Datei ausgelagert werden
  • Anpassung von Trusting.java (com.seanox.network.http.security.b), die Klasse wurde nach com.seanox.network.http.security verschoben
  • Anpassung von Context.java (com.seanox.network.http.security.b), die Klasse wurde nach com.seanox.network.http.security verschoben
  • Anpassung von Trusting.java (com.seanox.network.http.security.a), die Klasse wurde nach com.seanox.network.http.security.old verschoben
  • Anpassung von Context.java (com.seanox.network.http.security.a), die Klasse wurde nach com.seanox.network.http.security.old verschoben

1.2007.0511

Die Bibliothek wurde allgemein optimiert und um Funktionen für Ajax, Paging erweitert. In der Module-API wurden die Request- und Response Objekte nun direkt um InputStream bzw. OutputStream erweitert. Für einen noch einfachen Zugriff Objekte im allgemeinen, wurden die Funktionalitäten vom Accession im Umgang mit Felder, Methoden und Konstruktoren erweitert.

  • Erweiterung um das Package com.seanox.network.ajax zur Ausgabe von Daten von Objekten als JSON
  • Erweiterung um Paging.java zur Berechung von seitenorientierten Wertenbereichen
  • Erweiterung um die Methode Accession::ToString zur Ausgabe aller öffentlichen Felder eines Objekts als String
  • Erweiterung um die Methode Accession::GetFields zur Ermittlung aller Felder eines Objekts
  • Erweiterung um die Methode Accession::GetMethods zur Ermittlung aller Methoden eines Objekts
  • Erweiterung um die Methode Accession::GetConstructors, zur Ermittlung aller Konstruktoren einer Klasse
  • Anpassung von Request.java (cgi/http/servlet), Erweiterung vom InputStream
  • Anpassung von Response.java (cgi/http/servlet), Erweiterung vom OutputStream
  • Anpassung der Konstrutoren der Fehlerobjekte Invalid* um eine Version mit dem einzelnen Argument Throwable
  • Anpassung der Methode Accession::GetField, diese gibt nur noch eine eindeutige Liste von Feldern zurück wenn diese z.B. mehrfach überschrieben wurden
  • Anpassung der Methode Accession::GetConstructor, allgemeine Optimierung im Hinblick auf die Vererbung von Konstruktoren

1.2007.0217

Die Bibliothek wurde allgemein optimiert, einige Komponenten überarbeitet und Fehler in der Verarbeitung von Strings mittels den Components und der Dokumentation beseitigt.

  • Erweiterung um die Methode Generator::ContainsElement zur Prüfung der Existenz von Elementen
  • Erweiterung um die Methode Generator::ContainsSegment zur Prüfung der Existenz von Segmenten
  • Änderung von Messenger.java, die Klasse wurde elementar überarbeitet
  • Änderung der Methode Generator::DelElement in Generator::RemoveElement
  • Änderung der Methode Generator::DelAllElements in Generator::RemoveAllElements
  • Änderung der Methode Response::DelHeaderField in Response::RemoveHeaderField
  • Änderung der Methode Connector::DeleteStorageFile in Connector::RemoveStorageFile
  • Änderung der Methode Node::DelNodes in Node::RemoveNodes
  • Änderung der Methode Node::DelAttributes in Node::RemoveAttributes
  • Änderung der Methode Node::DelAllAttributes in Node::RemoveAllAttributes
  • Änderung der Methode Generator::DelElement in Generator::RemoveElement
  • Änderung der Methode Generator::DelAllElements in Generator::RemoveAllElements
  • Anpassung von Initialize.java allgemein Optimierung
  • Anpassung von Parameters.java allgemein Optimierung
  • Anpassung von Generator.java allgemein Optimierung
  • Anpassung von Messenger.java allgemein Optimierung
  • Anpassung von Node.java allgemein Optimierung
  • Anpassung der Methode InvalidSituation::GetOriginThrowable, die Methode gibt wenn kein Ursprungsfehler vorhanden ist, ihre eigene Referenz zurück
  • Anpassung von Environment (cgi/http/servlet), allgemeine Optimierung
  • Korrektur der Methode Components::Strcln in der Rückgabe des bereinigten Strings
  • Korrektur der Methode Components::Strprs in der Maskierung der Sonderzeichen
  • Korrektur allgemein in der Quelltextdokumentation

1.2006.1223

Das Konzept der HTTP Module wurde komplett überarbeitet und die Module-API für HTTP Module entsprechend geändert (siehe auch Seanox Devwex SDK). Der ursprünglich als eigenständiges Projekt geführte und später in Seanox Commons übernommene Container wurde in Seanox Devwex integriert und entfällt somit.

  • komplette Überarbeitung des Konzepts der HTTP Module (siehe Devwex Konzept)
  • Anpassung der Module-API (HTTP) entsprechend dem neuen Modul Konzept
  • Wegfall von Container.java (com.seanox.module) nach die Integration in Seanox Devwex
  • allgemeine Optimierung der Module-API (HTTP/Servlet/CGI)
  • allgemeine Optimierung der Komponenten in com.seanox.commons
  • allgemeine Optimierung vom HTTP Connector (com.seanox.network.http)
  • Erweiterung um InvalidStructure als allgemeine Ausnahme
  • Anpassung von Note.java, Umstellung von Note::Options in Note::Attributes
  • Umstellung des Projekts auf Apache Ant

1.2006.0616

Die Bibliothek wurde allgemein in Hinblick auf Stabilität, Fehlerbehandlung, Toleranz sowie Performance und Grösse optimiert. Einige Funktionalitäten wurden erweitert und Fehler im Generator, Initialize, Parameters, Request sowie Response behoben.

  • Allgemeine Optimierung in Hinsicht Stabilität, Fehlerbehandlung, Toleranz sowie Performance und Grösse
  • Erweiterung von Accession um NewInstance für den Zugriff auf Konstruktoren
  • Erweiterung von Components um strprs, strprn, strcln und strmsc für den einfachen Umgang mit Steuerzeichen
  • Erweiterung von Initialize um Size zur Ermittlung der Anzahl gehaltener Datenblöcke
  • Erweiterung von Parameters um Size zur Ermittlung der Anzahl gehaltener Einträge
  • Erweiterung von InvalidSituation um GetOriginThrowable zur Rückgabe der Ursprungsausnahme
  • Erweiterung um InvalidSyntax für syntaktische Ausnahmen
  • Erweiterung um das Paket com.seanox.network.http, das einen HTTP(S) Connector zur Verfügung stellt
  • Erweiterung von Response (com.seanox.module.*) um die Konstante STATUS_REQUEST_ENTITY_TO_LARGE
  • Anpassung vom Messenger, Umstellung von AddMessage auf Add mit der Option zur Ausgabeglättung, der interne Puffer wurde entfernt, da dieser über den OutputStream selbst eingerichtet werden kann, die Methoden Read und Reset sind in diesem Zusammenhang weggefallen
  • Anpassung von Fragment (com.seanox.module.*), das Objekt wurde als Bestandteil der HTTP Schnittstelle in das Paket com.seanox.network.http verschoben
  • Korrektur vom Generator im Umgang mit den Segmenten und bei der Auswertung zu löschender Blocknamen
  • Korrektur von Initialize beim Laden einer nicht vorhandenen Konfiguration
  • Korrektur von Parameters beim initialen Auflösen der Systemvariablen
  • Korrektur von Request (com.seanox.module.*) beim Parsen von Multiparts
  • Korrektur von Response in GetStatusMessage und Flush

1.2005.0212

Bei der Verwendung von Request (com.seanox.module.cgi/http/servlet) konnte es unter Umständen zum Fehlen der letzten Request-Variablen bei der HTTP Methode POST kommen. Das Problem wurde behoben.

1.2005.0205

Das Projekt wird nun unter dem neuen Namen Seanox Commons und mit überarbeiteter Paketstruktur weitergeführt. Bei der Umstellung wurde das Paket allgemein in Hinblick auf Performance und Ressourcen (Speicher) Nutzung optimiert. Diverse Fehler wurden behoben und Funktionalitäten vereinheitlicht.

  • Das Projekt wird nun unter dem neuen Namen Seanox Commons weitergeführt.
  • Das Paket wurde allgemein in Hinblick auf Performance und Ressourcen (Speicher) Nutzung optimiert. Nicht finale deklarierte Konstanten wurden in der Klasse Accession (com.seanox.commons) entsprechend als final deklariert. Das Feld Response::Environment (com.seanox.module.cgi/http/servlet) wurde unbeabsichtigt public deklariert, dieses wurde in geplantes private geändert.
  • In der Klasse Generator (com.seanox.commons) wurden die Methoden Generator::Fragment und Generator::GetDefinitons unter dem Begriff Segmente vereinheitlicht und in dem Zusammenhang in Generator::DefineSegment und Generator::GetSegments umbenannt. Die Klasse Request (com.seanox.module.cgi/http/servlet) wurde im Bereich der Multipart Verarbeitung überarbeitet. Diese erfolgt nun entschieden performater bei geringerer Speicherauslastung. Zusätzlich ist nun auch die gezielte Auslagerung der Multipart Fragmente möglich. Dazu wurde die Klasse um die Methode Request::SetStorage und Request::GetStorage zum setzten bzw. lesen des Auslagerungsverzeichnis erweitert. Diese Angabe muss vor dem ersten Zugriff auf Parameter oder Fragmente erfolgen. Nachträglich gesetzte Werte werden ignoriert. Die Fragmente (com.seanox.module.cgi/http/servlet) wurde ebenfalls optimiert und um die Methode Fragment::GetStorage erweitert welches die entsprechende Auslagerungsdatei zurückgibt sofern eine vorliegt.
  • Weiter implementiert nun Fragment (com.seanox.module.cgi/http/servlet) wie auch die Klasse Cookie java.io.Serializable und können somit serialisiert werden.
  • Bei der Methode Request::Decode (com.seanox.module.cgi/http/servlet) wurde bei der Kodierung von UTF8 wurde automatisch immer ein nachträgliche Kodierung in MIME vorgenommen. Dieses Problem wurde korrigiert.
  • Bei der Verwendung der Methode Environment::SetEntry optimierte diese den übergebenen Wert ähnlich wie Parameters (com.seanox.commons). Dieses Verhalten wurde korrigiert somit werden die Werte wieder unbehandelt übernommen.

1.2004.0924

Einige Komponenten und Felder der Module-API wurden fälschlicherweise als öffentlich deklariert. Die Fehler wurden behoben. Components wurde zudem in der Berechnung der Phonetik verfeinert.

  • com.seanox.module - Die Felder Request::Environment der Pakete com.seanox.module.cgi und com.seanox.module.servlet wurden versehentlich public deklariert und wurden nun wieder privatisiert.
  • com.seanox.common - die Methode Components::StrSnd wurde in der Verarbeitung optimiert und in der Phonetik verfeinert.

1.2004.0803

Die Bibliothek wurde allgemein optimiert. Der Zugriff auf Objekt mittels Accessin wurde weiter ausgebaut und verbessert. Die Components wurden um Funktionalitäten für die Berechnung von phonetischen Werten erweitert. Die Module-API wurde um Adaptionen für CGI und Servlet erweitert.

  • com.seanox.common.Accession - Anpassung der Methode Accession:: GetConstructor wodurch diese nun Superklassen bei der Ermittlung des Konstruktors einbezieht. Anpassung der Methode Accession::GetField wodurch diese nun Superklassen bei der Ermittlung des Felds ein bezieht. Anpassung der Methode Accession::GetMethod wodurch diese alle Superklassen bei der Ermittlung der Methode einbezieht. Anpassung der Methode Accession::Get wobei diese auf die aktualisierte Methode Accession::GetField umgestellt wurde. Anpassung der Methode Accession::Set wobei diese auf die aktualisierte Methode Accession::GetField umgestellt wurde. Erweiterung um die argumentenlose und datentypbezogene Variante der Methode Accession::Invoke für die Verwendung einfacher Datentypen.
  • com.seanox.common.Components - Erweiterung um die Methode Components::StrSnd zur Ermittlung phonetischer Werte von Strings. Erweiterung um das Feld Components::LANGUAGE_GERMAN für die Sprachauswahl der Methode Components::StrSnd. Optimierung der Methoden Components::StrCrs und Components::StrSet.
  • com.seanox.module.http.common.Connection - Anpassung der Methode Connection::ToString zur korrekten Ausgabe des Felds ServerAddress.
  • com.seanox.module.http.common.Request - Umstellung von Request::StrSet/StrCrs auf Components::StrSet/StrCrs. Anpassung der Quelltextdokumentation. Umstellung des Konstruktors von IllegalStateException auf die einheitlichen InvalidAccess Ausnahme. Anpassung der Methode Request::ParseBody. Nach dem Devwex nur noch den Header nicht aber mehr den Body des Requests liest wird beim Lesen des Request Bodys nicht mehr der Puffer des Server Request berücksichtigt. Anpassung der Methode Request::SetBounded wobei diese von IllegalStateException auf die einheitliche InvalidAccess Ausnahme umgestellt wurde. Erweiterung um verschiedene Varianten der Methoden Request::Read. Anpassung der Quelltextdokumentation.
  • com.seanox.module.http.common.Response - Erweiterung der Konstanten des ServerStatus. Umstellung der bisherigen Methode Response::GetStatusMessage in Response::GetStatusMessageInternal. Erweiterung um die Methode Response::GetStatusMessage. Anpassung der Methode Response::Flush wobei der Methodenaufruf Response::GetStatusMessage in Response::GetStatusMessageInternal umgestellt wurde. Anpassung der Quelltextdokumentation.
  • com.seanox.module.cgi - Implementierung der (D)CGI Schnittstelle zur Module-API
  • com.seanox.module.servlet - Implementierung der Servlet Schnittstelle zur Module-API

1.2004.0525

Module steht als Release bereit.

Copyright 2012 Seanox Software Solutions
Alle Rechte vorbehalten