Neuigkeiten in der Apache OFBiz Community

Der 3. Apache OFBiz Community Day im September war wieder sehr erfolgreich, die neue Webseitenstruktur nimmt Formen an und im vergangenen Monat wurden wieder viele Fehlerbehebungen und Verbesserungen bereitgestellt.

OFBiz Community Day 03/2015

Der vergangene OFBiz Community Day im September war wieder ein großer Erfolg! In den Sprint wurden 47 Issues aufgenommen, von denen letztlich 32 geschlossen werden konnten. Ein gutes Ergebnis! Hier ein paar Sprint Reports:

Sprint Retrospective
Control Chart

Herzlichen Dank an alle, die zusammen mit dem Team der ecomify GmbH am Community Day teilgenommen haben, um OFBiz weiterzuentwickeln!

Der nächste Community Day ist für den 19. Dezember 2015 geplant.

Neue Webseitenvorschläge

Die Arbeit an der neuen Webseitenstruktur läuft weiter. Es wurden verschiedene Vorschläge für die neue Strukur gemacht und diskutiert. Das Ergebnis ist eine überarbeitete Webseitenstruktur für Apache OFBiz. Im nächsten Schritt soll ein Designvorschlag für die Webseite erarbeitet werden.

Der Fortschritt kann in der Mailingliste verfolgt werden.

Im Folgenden nun die detaillierten Erweiterungen und Bugfixes im September 2015.

Neue Features und Verbesserungen

Funktionelle Erweiterungen und Optimierungen sowie Updates von Bibliotheken und Source Code Refactoring:

  • Apache Solr Implementierung (OFBIZ-5042).
    • Apache Solr wurde zum zweiten Hauptmenü hinzugefügt.
    • Hinzufügen der Berechtigungsprüfungen für die /update, /update/json, /update/csv und /update/extract Requests.
  • Aktualisierung der site-conf.xsd zur Priorisierung von Groovy vor BSF (OFBIZ-6597).
  • Ersetzen des BSF Event Type Handlers mit Groovy (OFBIZ-6598).
  • Ant build:
    • Entfernen der Ant targets build-website und docs, copy-dtds ist ausreichend.
    • „docs-all“ Ant target wurde auskommentiert, da dies nun automatisch vom Buildbot durchgeführt wird.
  • Aktualisierung von Apache Tomcat auf das aktuelle Bugfix Release der 7er Serie: 7.0.64.
  • Aktualisierung der Solr und Lucene Bibliotheken auf Version 5.
  • Verwenden des offiziellen Content Type für JSon Requests (OFBIZ-6608).
  • Verschieben der PartyRelationshipAndPartyDetail Entity in die Party Komponente (OFBIZ-5814). Zudem wurde die PartyRelationshipType Entity zur View hinzugefügt (OFBIZ-6610).
  • MapContext.entrySet() war sehr inperformant, wenn sich ByteBuffer Objekte im Context befanden (OFBIZ-6621). Lösung ist die Einführung einer privaten Inner Class ListSet zur Bereitstellung eines List gestützten Sets anstatt einer HashSet Implementierung.
  • Formular RequestRolesInfo wurde in den Screens nicht verwendet (OFBIZ-5970). Es wurde entfernt.
  • Optimierung von ShoppingCart.removeCartItem (Überspringen der Preiskalkulation und der Inventarprüfung) (OFBIZ-6631).
  • partymgr/control/EditPartyRelationships: Hinzufügen von odd-row=“alternate-row“ für ListPartRelationships und Entfernen des navigation-form-name zur Verwendung eines Screenlets für ein verbessertes User Interface (OFBIZ-6515). Zeigt nun die Beziehungstabelle in alternierenden Farben zur besseren Unterscheidung und verwendet die Screenlet Blätter-Kontrollelemente zu Beginn und am Ende der Liste.
  • Hinzufügen der Kalenderwoche in den Datumsauswahlelementen(OFBIZ-5361). Für einige Benutzer ist die Darstellung der Kalenderwoche wichtig. Das in OFBiz verwendete Datumsauswahlelement (DateTimePicker) bietet eine entsprechende Option dazu an. Dies wird durch Hinzufügen von „showWeek: true“ in den DateTimePicker Aufrufen in framework/widget/templates/htmlFormMacroLibrary.ftl aktiviert.
  • Fehlende CountryCodeData.xml Werte für Länder des ehemaligen Jugoslavien (OFBIZ-6641). Statt dem ehemaligen Jugoslavien ist es nun Serbien. Zudem fehlten CountryTeleCode und CountryCapital für Montenegro.

Bugfixes

Funktionale und technische Fehlerbehebungen:

  • OFBiz kompilierte nicht (OFBIZ-6591). Grund war das Fehlen von Jar Dateien in applications/content/build/lib und specialpurpose/lucene/lib.
  • Die Solr Weiterleitung funktionierte in der Trunk Demo nicht (OFBIZ-6596).
    • Verwendung von response.sendRedirect zum Weiterleiten der Url an die Login Seite anstatt response.setHeader(„location“, url), dies vermeidet die Warnmeldungen aus EntityUtilProperties.
    • Entfernen der https Schemaprüfung
  • Example Komponente erzeugt Ausnahmefehler (OFBIZ-6601).
    • Hinzufügen von specialpurpose/webapp/exampleext/error/error.jsp zum Anzeigen der Fehlerseite.
    • Verschieben von specialpurpose/example/widget/exampleext nach specialpurpose/exampleext/widget/example.
  • Scrum Komponente
    • Gesamtabrechnung erzeugt Ausnahmefehler (OFBIZ-6600). Der Import für java.sql.Timestamp fehlte.
    • View Sprint Overview zeigte Fehler (OFBIZ-4861). Beim Anzeigen der Sprint Überblicksseite wurden Fehler angezeigt, die mit dem Burndown Chart und der Sprint Backlog Liste zusammenhingen.
    • Scrum Produktstatistiken zeigen Fehler (OFBIZ-4863).
    • Entfernen von nicht verwendeten view-maps aus dem Scrum controller (OFBIZ-6478).
  • Einigen Groovy Dateien, die Timestamp.valueOf verwenden, fehlt der entsprechende Import. (OFBIZ-6606). Der Import für java.sql.Timestamp fehlte in CommissionReport.groovy und CommissionRun.groovy.
  • Der EntityListIterator muss in EntityQuery.query() geschlossen werden (OFBIZ-6615).
  • createQuoteRole, createContentRole, und createRequirementRole erlaubten das Hinzufügen von Rollen zu einer Party ohne entsprechende Berechtigung (OFBIZ-6605). Diese Funktionen fügen eine PartyRole hinzu wenn diese noch nicht existiert, auch wenn der userLogin die entsprechenden PARTYMGR_UPDATE oder PARTYMGR_CREATE Berechtigungen nicht besitzt. Es wurde eine Berechtigungsprüfung hinzugefügt, bevor die neue Role angelegt wird.
  • PurgeJob.java löscht die RecurrenceRule nicht, da sie noch von RecurrenceInfo referenziert wird (OFBIZ-6619).
  • Fehler in UtilValidate.isValidEan (OFBIZ-6624). Der charAt Offset in calcChecksum war falsch.
  • Auswahl einer Umfrage für ProductStore erzeugt Ausnahmefehler (OFBIZ-6460). Ursache war die falsche Verwendung der EntityQuery Methode, das Query Statement wurde korrigiert.
  • PartyGeoLocation zeigt Menü beim Zugriff (OFBIZ-6438).
  • Modales Fenster für Lookup erlaubt keine Auswahl (OFBIZ-6499). Das Hinzufügen des z-index Wertes in der Dialogklasse behebt den Fehler.
  • Angebotsposition Anpassung: falsche Farbe und Ausrichtung auf der View Seite (OFBIZ-6348).
  • Doppelte Berechnung und Schreibfehler in ShoppingCart.getGrandTotal() (OFBIZ-6629). Der Fix entfernt doppelten Code, korrigiert einen Schreibfehler im Methodennamen und fügt Typsicherheit für einen Iterator hinzu.
  • Fehler beim Verarbeiten von Refund & Void (java.lang.ClassCastException: java.lang.String cannot be cast to java.math.BigDecimal) (OFBIZ-5927).
  • Bevorzugte Währung des Lieferanten wurde für die Drop-ship Bestellung nicht berücksichtigt (OFBIZ-6091).
  • findOrders Service gibt falschen orderCount und damit falsche viewSize zurück (OFBIZ-6526). Diese Änderung ersetzt das HashSet mit einem LinkedHashSet für fieldsToSelect, da ansonsten die statusId zum Beginn des Sets hinzugefügt und übergeben wird. Diese führte zu falschen Datensatzmengen. Das LinkedHashSet behält die Reihenfolge bei, in der Einträge hinzugefügt werden, so dass die orderId nun immer zu Beginn des Sets steht, um die count distinct Abfrage durchzuführen.
  • Accounting Reports schlagen fehl (OFBIZ-6212). Ursache war ein Schreibfehle rund ein fehlender Screen. Zudem wurde ein Decorator Screen für die Nutzung mit dem Accounting Report estellt.
  • Aktualisieren der ShoppingCartItem Sprache wenn die ShoppingCart Sprache geändert wird (OFBIZ-6630). Der Fix führt die setLocale Method für ShoppingCartItem ein und setzt die Sprache für jede Warenkorbposition, wenn die ShoppingCart setLocale Method aufgerufen wird.
  • Die Laufzeitbibliotheken für die Solr Komponente fehlen im Eclipse .classpath (OFBIZ-6633). Sie wurden hinzugefügt, so dass OFBiz mit der SOlr Komponente aus Eclipse heraus gestartet werden kann.
  • Eclipse .classpath enthält internen Groovy Library Classpath Container (OFBIZ-6640). Diese wurden unbenötigterweise im Eclipse .classpath referenziert. Dies konnte zu Konflikten mit den „original“ OFBiz Bibliotheken im Framework führen und erzeugte Fehler beim Ausführen von OFBiz innerhalb von Eclipse.
  • Falscher Vergleich im TemporalExpressionWorker.java (OFBIZ-6632). Die Korrektur führt einige Konstanten für die Ausdrucktypen ein und korrigiert den falschen Vergleich.
  • Alter UserLogin aus Änderung der userLoginId wurde nicht korrekt deaktiviert (OFBIZ-6635). Wenn die userLoginId eines vorhandenen Benutzers über LoginServices.updateUserLoginId aktualisiert wird, wird ein neuer UserLogin mit den Daten des vorhandenen UserLogin erzeugt und anschließend der alte UserLogin deaktiviert. Dazu wird das enabled flag auf „N“ gesetzt und zusätzlich das Deaktivierungsdatum disabledDateTime auf das aktuelle Datum gesetzt. Dies ist nicht korrekt, weil dadurch das Reaktivieren des alten UserLogin ermöglicht wird, indem man sich einfach erneut mit dem alten UserLogin anmeldet (Standardmechanismus zum Sperren des Login für eine gewisse Zeit nach mehreren erfolglosen Anmeldeversuchen ).
  • Mehrfachauswahl-Dropdown zeigt nur einen Eintrag (OFBIZ-6627). Die Änderung erweitert die vorhandene Dropdown Implementierung mit einem einfachen FTL, um mehrere Dropdowns in demselben Formular zu ermöglichen. Der Find Request verwendet nun das neue FTL.
  • Korrektur von Deprecations in framework/entity (OFBIZ-6276). Entfernt die Verwendung der deprecated API und die deprecated API selbst aus dem Delegator und GenericDelegator. Einführung der EntityStoreOptions Klasse zum Ersetzen der createDummyFks Parameter der storeAll Methode, um doppeldeutige API nach dem Entfernen der deprecated doCacheClear Parameter zu vermeiden.
  • FOP Renderer verwendet den title-area-style nicht (OFBIZ-6356). NotoSans ist die defaultFontFamily für FOP aber die zusätzlichen Styles und font-weight=“bold“ wurden nicht korrekt gerendert, wenn nicht zu einer anderen FontFamily umgeschaltet wurde.
  • FOP Renderer unterstützt keinen alternierenden Zeilenstil (OFBIZ-6355).
  • Nicht-umbrechende Leerzeichen wurden in Formularen nicht korrekt encodiert (OFBIZ-6642).
  • Bestellpositionen für GZ-1006-5 via eCommerce/Ordermanager erzeugt Fehler (OFBIZ-6643). Wenn eine Bestellung für GZ-1006-5 in der eCommerce Komponente aufgegeben wird, wird ein Fehler im Bereich der Bestellpositionen angezeigt. Ursache war die Verwendung von enferntem, deprecated Code in Scripts und Templates.
  • Fehler in ProductSummary.groovy (OFBIZ-6652). In allen Releases versucht der Code in ProductSummary.groovy Preise für Varianten zu ermitteln. Dabei wird NumberFormat.format() zur Umwandlung des Basispreises in einen String verwendet, der Teil eines eingebetteten Javascripts ist. Im Fall eines Kaufauftrags ist dieser Preis leer und erzeugt einen Ausnahmefehler im Formatter. Es wird nun N/A ausgegeben wenn kein Preis verfügbar ist.
  • Behebung einer möglichen XSS Attacke über die Methode ProductContentWrapper.getProductContentAsText(), welche in mehreren FTL Dateien verwendet wird. Diese Schwachstelle ist auch in weiteren *ContentWrapper.java Klassen vorhanden. Die Lücke ist jedoch sehr schwer auszunutzen, da es sich um ein Stored XSS handelt. Dies bedeutet, dass zunächst entsprechender Code in die Datenbank eingeschleust werden muss. Dies ist in allen *ContentWrapper Klassen behoben.

Dokumentation

  • Hinzufügen von framework/base/lib/zxing-core-3.2.0.jar in LICENSE.
  • Hinzufügen aller Jars unter specialpurpose/solr/ in LICENSE (OFBIZ-5042).
  • Falsche Dokumentation für Temporal Expressions (OFBIZ-6594). Der Integer-Wert für HOUR war in der Dokumentation falsch angegeben.