sJF – saascom Java Foundation Version 2.1.1 Datum 11.05.2016 Erweiterungen 0 2 15 Korrekturen 0 1 5 19 0 Erweiterungen T1756 PenTest / Server: PasswortPolicy DB Authentisierung Die Validierung der PasswortPolicy wurde bei DB­Authentisierung erweitert. Mindestens 3 Kriterien müssen aus dem Alphabet erfüllt werden. Die Kriterien sind: 17 hoch 31.03.2016 Vasileios Dimitriadis mindestens 3 Großbuchstaben mindestens 3 Kleinbuchstaben mindestens 1 Zahl mindestens 1 Sonderzeichen Im Parameter PasswordPolicy kann eine zusätzliche Beschreibung zu den Bildungsregeln hinterlegt werden. Beispielsweise: minLength=8;minAge=0;maxAge=30;alphabet=[A-Za-z09!$#%];UIHint=mindestens 3 Großbuchstaben, mindestens 3 Kleinbuchstaben, mindestens 1 Zahl, mindestens 1 Sonderzeichen Der Text in UiHint im PasswordChangeDialog angezeigt. T1971 Client: Sichtbarkeit Methode WorkflowEditor.applyWireUp private­ >protected Die Methode .applyWireUp ist für ableitende Klassen von WorkflowEditor sichtbar. In Workflows, welche mit mehreren Models arbeiten, können die zusätzlichen Models dadurch mit dem aktuellen WorkingSet initialisiert werden. Standardmäßig wird nur das Haupt­Model automatisch initialisiert. T1757 PenTest / Server: Fehlermeldung für falsche Userkennung korrigieren Bei einem Anmeldeversuch mit einem unbekannten Login erscheint folgende Meldung hoch 27.04.2016 Toma Teves normal 31.03.2016 Toma Teves Anmeldung fehlgeschlagen. Überprüfen Sie ihren Benutzernamen oder Passwort und versuchen Sie es erneut. T1761 DSUtil: neue Methode maxPropertySubquery/minPropertySubquery Neue Methoden in DSUtil normal 01.04.2016 Toma Teves // Erzeugt Subquery mit Filter auf maximalem Wert der übergeben Property maxPropertySubquery(...) // Erzeugt Subquery mit Filter auf minimalem Wert der übergeben Property minPropertySubquery(...) T1789 Erweiterung Finanzmodul (Stufe 1) Erweiterung des Segments Kontosatz Über das Kontextmenü der Kontorecherche können folgende Funktionen aufgerufen werden: normal 07.04.2016 Christian Schultz Öffnen der korrespondierenden Finanztransaktion Löschen der Zuordnung zu der Finanztransaktion T1833 Server: DBDefaultData Migration darf keine Daten unter 00 löschen keine Konfiguration definiert wurde Wenn keine DB Default Daten definiert sind werden keine Entitäten unter 00 gelöscht. Neue Methode normal 11.04.2016 Toma Teves // Steuert ob die Default-Data Migration ausgeführt wird. //true = ausführen, false = nicht ausführen DBDefaultDataMigration.isExecutable() T1842 Server: Neue SQL Typen für DBMigrations unterstützen Neue SQL Typen: char nchar smallint tinyint T1843 Client: ViewBase, ListBase.PageSize konfigurierbar machen Neue Methode .setPageSize(int) wurde implementiert. normal 12.04.2016 Vasileios Dimitriadis normal 13.04.2016 Toma Teves T1923 Client: CombinedField ohne Parametrisierung !BC! CombinedField ist nicht mehr parametrisiert. Breaking Change normal 20.04.2016 Johannes Klaus CombinedField(<.*>) durch CombinedField ersetzen @SuppressWarnings({ "unchecked", "rawtypes" }) Warnungen entfernen CombinedField.getModel() ist unzulässig T1934 Foundation Client Workflows Infrastruktur für Foundation­Client­Workflows bereitgestellt. IMPORTANT: Alle Fachanwendungen müssen von dem Foundation Workflow­Configurator AppWorkflowConfigurator (Package sjf.client.gwt.app.clientside.workflows) ableiten. T1937 Wasserzeichen in PDF Dokumenten Erweiterung der PDFDocumentService um die Funktionen: normal 22.04.2016 Christian Schultz normal 24.04.2016 Christian Schultz public void addWatermarkWithPageNumbers(String watermark, InputStream logo); public void addWatermark(String watermark, InputStream logo); Wenn kein Logo mitgegeben wird, wird das Wasserzeichen ohne Logo erzeugt. T1938 Client: Erweiterung UiConst.orientation() !BC! UiConst wurde um neue Methode .orientation() erweitert. Standardinitialisierung: Orientation.Horizontal. normal 24.04.2016 Toma Teves Breaking Change Die Standardinitialisierung in FieldFactory wurde von Orientation.Vertical auf UiConst.orientation() (Horizontal) geändert! T1954 DBMigration: Überladbarkeit Klasse Table Für ableitende Klassen ist der Konstruktor Table(String tableName) sichtbar und überladbar. Neue Methode normal 26.04.2016 Toma Teves // Fügt Felder für Versionierung mit Attribut NOT NULL hinzu. public Table appendStandardVersionColumnsNotNull() T1966 HQLBuilder: neue Methode withSubquery, withPropertyNotInSubquery Neue Methoden wurden implementiert: normal 26.04.2016 Toma Teves withSubquery(String property, String operator, String subquery) withPropertyNotInSubquery(String property, String subquery) withPropertyNotInSubquery(Alias alias, String property, String subquery) T1967 Aufräumen und Auslagern von TextDefinitionen in SKatalog Übersetzungen für die Sprachen EN und TR wurden aus sJF entfernt. Zudem wurden die Textdefinitionen für Finanzmanagement und Regionaldaten in die DBDefaultData übertragen. T1975 Client: Neue Methode IClientWorkflow.workflowTransaktion(), WorkflowEditor.workflowTransaktion() Neue Methode implementiert: normal 26.04.2016 Tolga Yilmaz normal 27.04.2016 Toma Teves StackWorkflowEditor.workflowTransaktion() TabWorkflowEditor.workflowTransaktion() EmbeddedWorkflowEditor.workflowTransaktion() T1994 Client: neue Methode FunctionPopup.setFunctionEnabled Neue Methode implementiert: normal 27.04.2016 Toma Teves .setFunctionEnabled(Function, boolean) Korrekturen T1790 Fehlermanagement bei Abschluss einer Transaktion Alle Datenbankaktivitäten werden innerhalb einer Datenbanktransaktion ausgeführt und ggf. auch zurückgefahren. T1537 Client: SuggestTextField ist im View­Modus editierbar Das SuggestTextField ist im View­Modus nicht mehr editierbar. 25 notfall 07.04.2016 Christian Schultz hoch 07.02.2016 Christian Schultz T1618 EntityCollectionSingleVersion: falsche Implementierung Previous­/NextToCurrent !BC! Die Implementierung wurde überarbeitet. Breaking Change hoch 25.02.2016 Toma Teves EntityCollectionSingleVersion.getPreviousToCurrent() <-- liefert jetzt null, wenn kein Vorgänger vorhanden ist. EntityCollectionSingleVersion.getNextToCurrent() <-- liefert jetzt null, wenn kein Nachfolger vorhanden ist. T1933 EntityCollectionNoVersion: fehlerhafte Implementierung .asSet() / .getEntities() (Hibernate: collection not associated with any session) !BC! Interne Implementierung wurde komplett überarbeitet. .asSet und .getEntities geben immer die bereits vorhandene Instanz zurück. Implementierung orientiert sich an interner Logik von EntityCollectionSingleVersion/­MultiVersion. hoch 22.04.2016 Toma Teves Breaking Change 1. .asSet und .getEntities haben jeweils eine Sortierung durchgeführt. Die Sortierung wurde ersatzlos entfernt. Sortierung muss durch den Aufrufer selbst vorgenommen werden! 2. EntityCollectionNoVersion implementiert zudem IHasEntityFilter. Dies führt ggf. zu einem neuen Verhalten wenn der Filter aktiviert ist. T1976 Server: FileRepository HTTP 500 bei Datei­Download mit Typ=MERGED Serverseitige Überprüfung auf den DownloadTyp korrigiert. POI Dokument­Merge wird jetzt korrekt erkannt. Weitere Korrektur bei der Dateiendung im Mail­Merge. T1997 Client/Server: NPE beim Erzeugen des Menüs (mit ungültigen Katalogeinträgen) Server Implementierung überarbeitet. Einträge ohne Bezug zum Haupt­/Elternknoten werden ignoriert und im Server­Log ausgegeben. Kommt es beim Parsen des Menüs zu einer Exception, wird ein Dump erstellt: hoch 27.04.2016 Toma Teves hoch 28.04.2016 Toma Teves .........OE | ..Schlüssel | ..................Wert | .........WertAlternativ 00......... | 20......... | Programm.............. | ....................... 00......... | 2010....... | Passwort ändern....... | PasswordChangeDialog... 00......... | 30......... | Suche................. | ....................... 00......... | 3010....... | Offene Vorgänge....... | TabViewOffeneVorgaenge. 00......... | 50......... | Finanzmanagement...... | ....................... 00......... | 5020....... | Übersicht............. | TabViewFinanzmanagement Client Für den Fall, dass der Server kein Menu zurückgibt, wird dein Minimal­Menu zusammengestellt (Hilfe, Abmelden). T1361 Server: WorkflowMessages werden bei .abort(), .pause(), .resume() nicht an Client übermittelt !BC! Fehler werden auch bei .abort() / .resume() korrekt an den Client übermittelt. Breaking Change normal 17.12.2015 Toma Teves In der vorherigen Implementierung wurde das WorkfolowData Objekt bei .pause(), .resume() und .abort() gar nicht an den Client übermittelt. Grundsätzlich wird jetzt in allen Workflow-Steps das WorkflowData Objekt zurückgegeben, bei den vorgenannten Methoden jedoch **ohne Model**! T1758 PenTest / Client: Protokollierung/Audit Log Buttons Neu/Löschen/ Ändern aktiv Die Standard Listen Buttons sind in der Protokollierungsansicht ausgeschaltet. normal 31.03.2016 Toma Teves T1783 Public Server: StaticResourceForwardFilter gibt nicht Ressourcen aus der Datenbank zurück (Private­Server) Der Private Server beantwortet für eine StaticResouceRequest mit einem Status entweder 250 (gefunden) oder 251 (nicht gefunden). T1787 Client: DateField Prüfung VRuleValidDate fehlerhaft Korrektur der Prüfung ob ein vorhandenes Datum gültig ist. normal 05.04.2016 Toma Teves normal 06.04.2016 Johannes Klaus T1792 Client: Workflow Meldungen werden nicht korrekt angezeigt Fehler wurde korrigiert. Die Gruppen Fehler, Warnung und Information sind wieder sichtbar. normal 07.04.2016 Toma Teves T1797 Server: DBHqlDataServiceBase Count Implementierung fehlerhaft Die interne Count Implementierung wurde überarbeitet. Ableitende Klassen können über .useDistinctCount() das interne Verhalten steuern. Hierbei gibt es zwei Fallkonstellationen: Zählen der View­Entitäten, d.h. Mehrfachtreffer werden nicht berücksichtigt. Das Ergebnis ist DISTINCT. Zählen der tatsächlichen Treffer im Result­Set. Mehrfachtreffer werden mitgezählt. Das normal 07.04.2016 Toma Teves Ergebnis ist NICHT DISTINCT. Standardmäßig wird useDistinctCount = true verwendet. Achtung Das Zählen funktioniert nur richtig, wenn ebenfalls die Suche selbst korrekt gruppiert. Ansonsten kommt es zu abweichenden Ergebnissen. Desweiteren kann 'useDistinctCount=false' zu Mehrfachtreffern führen, was am Client zu unerwartetem Verhalten beim Auswählen von Einträgen führen, da mehrere Objekte mit identischem Key vorhanden sind (Abhilfe: manuelles Anpassen der Id/Objekt­Key) T1828 WSServicePortFactory NPE bei Auth­Validierung Während der Validierung der Authentifizierungsdaten kommt es zu keiner NPE mehr. normal 11.04.2016 Tolga Yilmaz T1841 Server: DBAuthenticationProvider protokoliert nicht die Fehlermeldungen Die Fehlermeldungen von Exceptions werden von DBAuthenticationProvider protokolliert. normal 12.04.2016 Vasileios Dimitriadis T1901 Client: Dokument Download in ViewWorkflowDokumentListDetail Dokument Download für Ansicht der Dokumente in ViewWorkflowDokumentListDetail auf neuen Provider umgestellt. T1902 Maven: Abhängigkeit javassist doppelt vorhanden Ausschließen der falschen javassist Abhängigkeit. normal 19.04.2016 Johannes Klaus normal 19.04.2016 Johannes Klaus T1903 Server: Erstellen von Dataservice bei doppeltem Namen fehlerhaft Die Auflösung eines Services in DSFactory ging bisher über getSimpleName(). Jetzt wird versucht die Bean direkt über den ApplicationContext zu bekommen und nur als Fallback der Name verwendet. T1935 Client: fehlerhaftes Verhalten bei Fokus im ersten Eingabefeld Implementierung wurde überarbeitet. Felder mit zusätzlichen Popups (DateField, SuggestField) wurden dahingehend angepasst, dass im Fall eines programmatischen Fokus die Popups nicht angezeigt werden. T1936 Aktualisierung von gebundenen Workflow­DataItems Im Fehlerfall, oder beim Abbruch von Warnungsmeldungen wird der UiContext über das ModelChangedEvent mit den neuen Objekten des Server­Workflows versorgt. T1957 Bereinigung Const.Person.Anrede !BC! Die Anredeschlüssel Anonym und Sonstiges wurden entfernt. Breaking Change Sollten die Anredeschlüssel in Fachanwendungen verwendet / benötigt werden, müssen diese in der Fachanwendung neu definiert werden. normal 19.04.2016 Johannes Klaus normal 22.04.2016 Toma Teves normal 22.04.2016 Christian Schultz normal 26.04.2016 Toma Teves T1965 DateUtil: NPE bei .dayBegin/.dayEnd normal Die Methoden .dayBegin, .dayEnd, .applyBegin, .applyEnd sind nun NULL­safe. 26.04.2016 Toma Teves T2019 NPE bei ServerException normal Im Konstruktor von der ServerException kam es zu einer NPE, falls kein Caused By enthalten war. Der Fehler ist nun behoben. T2048 DataService­Adressen ohne Postleitzahl 04.05.2016 Tolga Yilmaz normal 08.05.2016 Verbesserung der Suche. Exakte Adressprüfung auch ohne Postleitzahl möglich. Christian Schultz T2063 Server: CombinedStep fehlerhaft, trotz Fehler werden alle Steps ausgeführt !BC! Die fehlerhafte Initialisierung des CombinedSteps wurde korrigiert, somit ist in allen Steps der Workflow­Message Handler korrekt registriert. normal 10.05.2016 Toma Teves Breaking Change Aufgrund der Fehlerkorrektur kommt es zu einem neuen Verhalten bei der Ausführung von Combined-Steps! Die Ausführung von Folge-Steps wird gestoppt, sobald ein Fehler gespeichert worden ist. T2064 Server: Fehlerhafte Kommunikation zwischen Servern (Status 404) Der Master Server führt die Datenbankaktualisierung asynchron nur einmal 10 Sekunden nach dem Start der Applikation durch. Der Slave Server macht eine Statusabfrage asynchron alle 30 Sekunden nach dem Start der Applikation und ignoriert den Status 404. Dabei ist es möglich, dass die Applikation am Master Server noch nicht vollständig gestartet wurde. Erstellungsdatum 11.05.2016 normal 10.05.2016 Vasileios Dimitriadis Legende !BC! Breaking Change