Change Log for OpenXava project =============================== OpenXava 7.3 (2024-4-12) ------------------------ - ZAP web security scanner from OWASP passed at 100%. - New section in documentation to configure your application to be OWASP compliant. - Removed the use of eval() and equivalents completely from OpenXava JavaScript code. - Content Security Policy does not allow the use of eval() in JavaScript code by default. - New property unsafeEvalInScripts in xava.property to enable the use of eval() in JavaScript. - Archetypes for creating new projects have error pages and cookies configuration compatible with OWASP. - DWR engine tuned to remove the use of eval() in its JavaScript code. - Fixed 1 critical security vulnerability in dependencies, now we have 0 vulnerabilities. - Fixed 2 critical security vulnerabilities in third party JavaScript libraries. - A X button in each tab to close the latest visited modules on top. - Navigation in collections with buttons to see the next or previous record from the dialog. - Dialogs fit in the screen, so dialog bottom buttons are always visible without scrolling. - Single number typed in a date editor is assumed as day, with current month/year auto-completed. - @Email and @EmailList editors use a mask to ensure in real time that the emails are correctly typed. - New and modern Dark theme. - The width of the calendar in list mode dynamically adjusts to occupy the entire available space. - Year navigation buttons added to calendar list format for fast year navigation to distant dates. - When several dates in an entity the user can choose which to use in calendar list format with a combo. - Drag & drop support for calendar list format. - Support for java.time.LocalTime as a type for properties, with a special editor for time. - Improved editor for the time part of DateTimeSeparatedCalendar including a popup to change the time. - has-type/has-annotation/has-stereotype in for-tabs of editors.xml to discriminate list formats by entity. - Archetypes for creating new projects include the welcome.jsp page and a sample custom editor. - New method createWebClient() in ModuleTestBase. - DWR upgraded to 3.0.2. - Commons Logging upgraded to 1.3.1. - Commons Validator upgraded to 1.8.0. - Groovy upgraded to 4.0.20. - JSoup upgraded to 1.17.2. - Lombok upgraded to 1.18.32. - Embedded Tomcat used in development upgraded to 9.0.87. - Jersey upgraded to 2.42. - Log4j upgraded to 2.23.1. - Json upgraded to 20240303. - Commons IO upgraded to 2.16.0. - JasperReports and font upgraded to 6.21.2. - HtmlUnit upgraded to 4.0.0. - PdfBox upgraded to 2.0.31. - TinyMCE JavaScript library upgraded to 6.8.3. - Driver version in doc and new projects upgraded for PostgreSQL, AS/400, Microsoft SQL Server, Firebird. - MySQL and MS SQL Server configuration documentation includes video. - Reverse engineering documentation includes video. - AS/400 connection documentation improved to cover performance problems in Windows Server. - Customization documentation adapted to no script inclusion in HTML editor code. - Documentation for database configuration improved to include schema/database creation. - Fix: Error page in browser when some problem destroys a servlet request. - Fix: Inoffensive string "null" in the HTML code for editors. OpenXava 7.2.3 (2024-1-26) -------------------------- - Some new common use labels to be used in applications. - Warning in the log or exception thrown if failOnAnnotationMisuse=true if using @Condition for @ManyToMany. - Warning message in log when an old version of OpenXava is being used. - Groovy upgraded to 4.0.17. - Embedded Tomcat used in development upgraded to 9.0.85. - Driver version in doc and new projects upgraded for MySQL. - Removed dependencies to JAXB core and JAXB impl. - Reference documentation for references in the model article improved. - Fix: View.setLabelId() does not work for @ElementCollection header labels. - Fix: Focus not in the correct place after searching a reference in an @ElementCollection. - Fix: @DescriptionsList combos do not open if a \ is in one of the values. - Fix: Qualified properties in baseCondition of @Tab fails if those properties are not in the list. - Fix: Filtering in the list by a numeric property of a reference of a reference (3 levels or more) fails. - Fix: Some incorrect translations for Spanish labels. - Fix: No trace with the root cause of the problem when the logic in a getter of an entity fails. - Fix: Poor performance in list using required references with big tables because of left joins. - Fix: Card broken in list cards format if it contains a file with a link. - Fix: Discussion does not add messages from a dialog from time to time, without warning the user. - Fix: Value not saved correctly if the property name is 'application' or 'module'. - Fix: Popup calendar for date fields when opened from a dialog hides behind the dialog sometimes. - Fix: Format for date with @DateTime or Timestamp in Chinese is different for Java 8 and 11+. - Fix: UnsupportedClassVersionError: com/sun/istack/Pool with latest versions of Java 8. OpenXava 7.2.2 (2024-1-5) ------------------------- - Some new common use labels to be used in applications. - Embedded Tomcat used in development upgraded to 9.0.84. - Driver version in doc and new projects upgraded for PostgreSQL and Informix. - Article in documentation about automatically generating all Java entity code from an existing database. - Fix: When multiple @RowStyle applies to the same row only one is considered. - Fix: The state of the tree (open or closed) is not remembered on some occasions. - Fix: @ListProperties does not support several properties when used with @Tree or @Editor("TreeView"). - Fix: @ListProperties used with @Tree or @Editor("TreeView") does not support camel case property names. - Fix: Harmless Error 404 in log executing ModulTestBase tests. - Fix: Buttons in @Discussion editor do not react when in a dialog with Firefox in some circumstances. - Fix: Database connection leaks produced when using calendar list format. - Fix: JavaScript dialog error in calendar list format from time to time. - Fix: Date/time fields in Chinese produce a parsing error on saving. - Fix: Popup windows for showing more events in calendar day is transparent with Dark theme. - Fix: Filter in list fails with a date with @DateTime in Dutch. - Fix: Date/time fields in Chinese change the value of AM/PM when viewing a record in detail mode. - Fix: @ReadOnly properties are always editable on creation. - Fix: The module freezes when there are many dates for a month in calendar format. OpenXava 7.2.1 (2023-12-7) -------------------------- - HtmlUnit upgraded to 3.9.0. - Commons IO upgraded to 2.15.1. - POI and POI OOXML upgraded to 5.2.5. - Groovy upgraded to 4.0.16. - Embedded Tomcat used in development upgraded to 9.0.83. - Driver version in doc and new projects upgraded for PostgreSQL, Db2 and Firebird. - Fix: @OnChange on @ManyToOne not work if referenced model has nested composite keys with only references. - Fix: Remote Code Execution (RCE) vulnerability via XSTL from dependencies. - Fix: Attribute idProperties of @Tree annotation ignored. - Fix: Application name in automated testing doc starts with uppercase, so tests do not work with v7. - Fix: Spanish screenshot in English @Tree reference documentation. - Fix: Modules with dates annotated with DATETIME or FECHAHORA stereotypes do not show week and day views. - Fix: When navigating by records with the tree editor the tree collapses. - Fix: Attribute pathSeparator of @Tree annotation ignored. - Fix: @OnChange action in @Coordinates does not work. - Fix: Vulnerable JavaScrit code using eval() in @Coordinate editor. - Fix: Popup calendar for data fields is not in Greek when browser language is Greek. - Fix: @OnChange action in upload editor (@File, @Files, PHOTO, etc) does not work. - Fix: Incorrect placement of subcontroller popup in collections. - Fix: Charts do not show a bar for each row in list mode, but only shows a bar for the first row. OpenXava 7.2 (2023-11-17) ------------------------- - Week and day views in calendar list format enabled if the entity has some property with date and time. - New JavaScript editor for @Tree collections with modern look & feel and drag & drop support. - Java 21 support. - New property turnOffWebSecurity in xava.properties to disable the use of CSP in web headers. - Removed Content Security Policy errors in browser console. - All inline JavaScript events removed from OpenXava code. - Links with href="javascript:" removed from OpenXava code. - Inline events in JavaScript no longer work for custom views and editors. - Links with href="javascript:" no longer work for custom views and editors. - Minimized the use of eval() in JavaScript code. - Old Yahoo JavaScript libraries removed for security reasons. - Removed or updated all vulnerable third party JavaScript libraries. - Clicking a time in day or week calendar view creates a new record with the date and time preset. - Tooltips for records shown in calendar list format. - Explicit plus icon in each day in list calendar format to create a new record for a day. - JasperReports and JasperReports Fonts upgraded to 6.20.6 - jQuery upgraded to 3.7.1. - jQuery UI upgraded to 1.13.2. - JUnit upgraded to 4.13.2 - Commons IO upgraded to 2.15.0 - POI and POI OOXML upgraded to 5.2.4 - Groovy upgraded to 4.0.15 - JSoup upgraded to 1.16.2 - HtmlUnit upgraded to 3.7.0 - PdfBox upgraded to 2.0.30 - JAXB-upgraded to 4.0.4 - Lombok upgraded to 1.18.30 - Embedded Tomcat used in development upgraded to 9.0.82. - Jersey client, hk2, media upgraded to 2.41. - Log4j API and core upgraded to 2.21.1. - Driver version in doc and new projects upgraded for MySQL, Oracle, AS/400 and Microsoft SQL Server. - Remove and rename column icons when customizing lists are aligned to the right. - New method executed() in IAccessTrackerProvider so now action executions can be tracked too. - Removed getHrefAttribute() method from HtmlUnitUtils. - Fix: When removing a column with a calculated property from a list a blank column is left on right. - Fix: Default action with takes-long=true does not show the takes long image if the user presses ENTER. - Fix: IForwardAction with inNewWindow() not in new window when pressing ENTER and it's the default action. - Fix: Clicking 'Add' in the row in the dialog to adding custom columns to list does not work if we filter. OpenXava 7.1.6 (2023-9-15) -------------------------- - New method cloneWith59999 in the Dates utility class to set seconds to 59 and milliseconds 999. - Embedded Tomcat used in development upgraded to 9.0.80. - Groovy upgraded to 4.0.14. - Driver version in doc and new projects upgraded for AS/400. - Doc about internationalization (i18n) improved. - Fix: Actions for a @DescriptionsList inside an @ElementCollection are displayed in the next cell. - Fix: 3 level property in @ElementCollection fails if base reference is shown too and as @DescriptionsList. - Fix: @DescriptionsList with condition doesn't show value for existing data if the condition no longer met. - Fix: ModuleTestBase.execute() does not work for row actions in Cards format. - Fix: Module is not well initialized after Tomcat restart sometimes (__MODIFIED_CONTROLLER__ not defined). - Fix: When @File property stores an image still shows the id with Generate PDF or Generate Excel. - Fix: @DescriptionsList message if missing property doesn't indicate model, reference nor reference model. - Fix: IForwardAction does not work if the application is behind a proxy. - Fix: URLValidator for WEBURL stereotype falsely triggers for correct URLs. - Fix: View.selLabelId() for references as @DescriptionsList fails from time to time. - Fix: Grouping after filtering or sorting the list fails if the @Tab has a baseCondition and an IFilter. - Fix: Going back to "No grouping" in list fails if we have used setBaseCondition() on the Tab object. - Fix: Filtering by date and time in list does not found the record if it has seconds or milliseconds in db. OpenXava 7.1.5 (2023-8-25) -------------------------- - If there are too many records in a day in calendar only a few ones are shown with a link to show the rest. - New CompositeFilter to sum two IFilter to set with Tab.setFilter() or as base for an IFilter for @Tab. - New environment variable XAVA_CALENDAR_VIEWEVENT_ACTION to define the action on click in a calendar event. - New method cloneWith999() in the Dates utility class to set milliseconds of a date to 999. - Driver version in doc and new projects upgraded for Microsoft SQL Server. - Documentation to configure MariaDB for OpenXava applications. - Fix: Id number instead of document name for @File properties when calling Generate PDF or generate Excel. - Fix: Generate Excel sometimes exports dates with 2 digits for year, so it's misinterpreted by Excel. - Fix: Servlet request not updated on view just after showing a new view or a dialog. - Fix: @OnChange action called twice in collection element dialog with groups inside a section. - Fix: Using @SearchListCondition in a reference the columns customization done on the search list is lost. - Fix: @Editor("ValidValuesRadioButton") for an enum produces an IndexOutOfBoundsException in the log. - Fix: Popup calendar for date properties is not shown in the correct language sometimes after refreshing. - Fix: Dynamic combos created adding valid values using View class stopped working in 7.1. - Fix: Property csvEncoding of xava.properties has no effect when importing CSV files. - Fix: Low performance in calendar view with large datasets when the @Tab has an IFilter. - Fix: Duplicate member in @View inside a group does not show the warning message and stacktrace. - Fix: CSS files are not cached by the browser. - Fix: Calendar icon for a date property filtering in list shown when filtered by year. OpenXava 7.1.4 (2023-8-5) ------------------------- - Embedded Tomcat used in development upgraded to 9.0.78. - Driver version in doc and new projects upgraded for MySQL. - Fix: xava:button tag to use in custom JSPs breaks the page if you use argv attribute. - Fix: Ordering a list or collection by a property of a reference of a reference (3 levels or more) fails. - Fix: When uploading several files at same time on creating a new entity some of the files may get lost. - Fix: Email subscription icon difficult to see with some themes. - Fix: @DisplaySize with a value greater than 50 ignored when used with @Column(length=255). - Fix: Moving columns to customize a list does not work if the application name contains underscores. - Fix: Default label for the application in new projects starts with a lowercase letter. - Fix: Error in log on server restart from time to time: Controller __MODIFIED_CONTROLLER__ not found. - Fix: Property (a getter + a setter) not backed by a field with the same name produces error in list mode. - Fix: Private attributes cannot be mapped with @AttributeOverride. - Fix: Alarming stacktrace in log when no longer existing properties are stored in list user preferences. - Fix: @File properties do not remove deleted content from OXFILES or file system. - Fix: Searching dialog for references shows data of incorrect entity if nested composite keys are used. OpenXava 7.1.3 (2023-7-14) -------------------------- - HtmlUnit upgrade to 3.3.0. - Groovy updated to 4.0.13. - PDFBox updated to 2.0.29. - Embedded Tomcat used in development upgraded to 9.0.76. - Driver version in doc and new projects upgraded for AS/400 and Firebird. - Fixed 1 critical security vulnerability in dependencies, now we have 0 vulnerabilities. - Fix: Queries saved by the user in a list with the name of an existing one are stored repeatedly. - Fix: @OnChange on the first property of a collection view in a @OneToMany with no cascade shows an error. - Fix: Text color in @HtmlText and @Discussion is ignored after saving and reading the record again. - Fix: Insert link in a @HtmlUnit editor from inside a dialog does not work. - Fix: Top module menu shows ??? for module titles when server encoding does not match language encoding. - Fix: Page generating PDF with no records shows ??? when server encoding does not match language encoding. - Fix: NullPointerException in log when adding sum to a collection from the user interface. - Fix: When a user adds a sum to a collection column, the corresponding label is not shown. - Fix: Project does not start if the workspace is in a path with special characters or accents. - Fix: Low performance entering in a list format other than list, like Calendar, with calculated properties. - Fix: @HtmlUnit and @Discussion editors do not follow the style of the current theme. - Fix: Lot of CSS rules related to the no longer existent CKEditor. - Fix: CSS and JS files for editors not loaded with Weblogic. OpenXava 7.1.2 (2023-6-23) -------------------------- - New property trustedHostsForImages in xava.properties for exceptions in CSP for source of images. - New property trustedHostsForScripts in xava.properties for exceptions in CSP for source of scripts. - New property trustedHostsForStyles in xava.properties for exceptions in CSP for source of CSS files. - New property trustedHostsForFrames in xava.properties for exceptions in CSP for frame and iframes. - HSQLDB updated to 2.7.2. - Lombok updated to 1.18.28. - Jersey media updated to 2.39.1. - Article in documentation to integrate Spring Boot with OpenXava. - Fix: @OnChange on several date properties applies only to the last date when using the popup calendar. - Fix: Simple layout when flowLayout=true is not applied if the view is inside a group, section or embedded. - Fix: After clicking on the calendar navigation icon the icon border is left displayed. - Fix: Mouse hover calendar days does not display any background color. - Fix: Day dividing lines in calendar are not seen well with Terra theme. - Fix: Background color of calendar current day is not theme dependent. - Fix: Color event icon in calendar is not theme dependent. - Fix: Calendar list format doesn't take the first date property as the date for the calendar sometimes. - Fix: Calendar list format problems when more than 2 date properties in the entity. - Fix: Some mistypes in code keywords (nonce) in migrations instructions to 7.1. - Fix: IForwardAction for executing JavaScript no longer supported not included in migration doc to 7.1. - Fix: Migration documentation from 6 to 7 misses some resources to copy and to exclude. - Fix: Customizing doc for Welcome and First Steps pages references master branch, sometimes not compatible. OpenXava 7.1.1 (2023-6-2) ------------------------- - It's possible to go to the page from a link in @HtmlText. - Button for changing font color added to button bar for @HtmlText editor. - JasperReports and fonts upgraded to 6.20.5. - Groovy upgraded to 4.0.12. - Pdfbox upgraded to 2.0.28. - Jaxb impl upgraded to 2.3.8. - Embedded Tomcat used in development upgraded to 9.0.75. - Driver version in doc and new projects upgraded for MySQL, PostgreSQL, Oracle, Informix. - MS SQL documentation improved to deal with secure connection problems. - Fix: Sign in form does not work if the user presses ENTER to login. - Fix: Custom style from custom.css file in xava/style of your project is no longer recognized. - Fix: Impossible to add links in @HtmlText. - Fix: X for closing dialogs is no longer shown. - Fix: The simple attribute in @HtmlText has no effect. - Fix: Applications no longer work in root context (AppServer.run("") or ROOT.war). - Fix: Server error in calendar when the property name for date does not contain 'date' or 'fecha'. - Fix: @OnChange in date property not fired sometimes when using popup calendar. - Fix: When @OnChange in a date property on modifying date year is set to current year. - Fix: Default action is not executed on pressing ENTER. - Fix: @Icon badly aligned in ManyToMany, @OrderColumn or calculated collections. - Fix: All resources other than CSS from xava/style folder ignored. - Fix: Broken link in reference guide main menu to Overview, a no longer existing section. - Fix: Wrong classifier in dependency for AS/400 JDBC driver in template projects and doc. - Fix: FirstSteps module does not show left modules menu with narrow screen. - Fix: Missing space in group filter name, now instead of "in group(v1, v2)" it's "in group (v1, v2)". - Fix: Mixed encoding introduced by new Brazilian Portuguese messages translation. OpenXava 7.1 (2023-5-12) ------------------------ - Calendar format for list mode automatic for every module whose entity contains a date. - New @Mask annotation to define the valid format for entering data in a text field. - New action in references to clear the reference value just clicking on a button. - New action in @DescriptionsList to clear the selected value of the combo just by clicking on a button. - New EditableValidValues editor for View.addValidValue() that allows editing the value and having a combo. - CKEditor replaced by TinyMCE for @TextHtml and @Discussion for security reasons. - FilePond JavaScript library used by the upload editor upgraded to 4.30.4 for security reasons. - Leaflet JavaScript library used for maps upgraded to 1.9.3. - HtmlUnit upgraded to 2.70. - Embedded Tomcat used in development upgraded to 9.0.73. - Log4j-api and core upgraded to 2.20.0. - Jersey client, hk2 and media upgraded to 2.39. - Lombok upgraded to 1.18.26. - Jsoup upgraded to 1.15.4. - Groovy upgraded to 4.0.10. - Hibernate upgraded to 5.6.15.Final. - Commons-fileupload upgraded to 1.5. - Driver version in doc and new projects upgraded for PostgreSQL, Oracle, AS/400. - New article in documentation to use Kotlin to develop with OpenXava in English, Spanish and Chinese. - New @ZerosFilled annotation equivalent to ZEROS_FILLED/RELLENADO_CON_CEROS stereotype. - Automatic translation of English labels improved for qualified properties. - defaultDescriptionPropertiesValueForDescriptionsList in xava.properties for @DescriptionsList defaults. - New property signInJSP in naviox.properties to define a custom login page. - Inline style is no longer allowed in HTML. - Inline style removed from all generated HTML code by OpenXava. - Many methods from org.openxava.web.Style removed, used internally by the UI generator. - Data and time for posts in @Discussion use the format of date fields. - Attribute cssStyle ignored in and taglibs. - New classes in base.css to use as alternative to inline style, like ox-display-none, ox-width-100, etc. - New taglib to generate a nonce number for use in inline JavaScript. - New getDefaultBrowser() method in HtmlUnitUtils. - New getSignInURL() method in ISignInHelperProvider. - Return type for init() method in ISignInHelperProvider now is String[] instead of String. - New start(String dbName, int port) method with port number in DBServer. - New defaultValues property in NewAction to send default values in a string with key/value format. - Some new common use labels to be used in applications. - Fix: Denial of service vulnerability. - Fix: Inline JavaScript for events in HTML elements. - Fix: XSLT injection vulnerabilities. - Fix: X-Content-Type-Options header missing. - Fix: Cookie without SameSite attribute. - Fix: Application error disclosure. - Fix: Session ID in URL rewrite. - Fix: Cross-Site Scripting (XSS) vulnerabilities. - Fix: Data filtering in .htaccess for some URLs. - Fix: Content Security Policy (CSP) header not set. - Fix: Broken links in customizing doc of reference guide. - Fix: UI with no CSS style at all if the user has as preference a no longer existing theme. - Fix: Link in migration English doc for migration from OpenXava 6.6.3 to OpenXava 7.0 to incorrect section. - Fix: @Editor has no effect calling View.addValidValue() on the property. OpenXava 7.0.6 (2023-2-17) -------------------------- - Embedded Tomcat used in development upgraded to 9.0.71. - Groovy upgraded to 4.0.8. - Driver version in doc and new projects upgraded for MySQL, PostgreSQL, Microsoft SQL Server, Firebird. - Documentation about using standard Eclipse with OpenXava updated to work with OpenXava 7 and Maven. - Appendix A of course about architecture and philosophy updated to version 7. - Fix: When adding OpenXava as dependency in a Spring Boot application CSS styles are not applied. - Fix: Adding a third party library with servlet filters (@WebFilter) can break the filters chain. - Fix: Key field not editable for searching in a reference if marked as @ReadOnly in the referenced entity. - Fix: Reference in a key to an entity with a @ReadOnly id does not show search action on New from detail. - Fix: Although duplicate members are illegal in @View no warning message or stacktrace is shown in log. - Fix: Root cause not shown in message when JavaScript error refreshing a part of the page. - Fix: Date3Type converter for mapping does not read/assign the day well for get/setPropertyValue(). - Fix: @DefaultValueCalculator dependent on other properties modifies @Id properties of existing entities. - Fix: Purged not used entries in labels and messages i18 files. - Fix: Some labels missing in English translation. - Fix: @Column(precision/length=x, scale=0) the scale part is ignored and assumed 2 instead when formating. - Fix: Incorrect encoding when sending emails with attachments using Emails utility class. - Fix: @File inside @ElementCollection is too tall even if it only stores files that are not images. OpenXava 7.0.5 (2023-1-27) -------------------------- - Added Log4j (2.19.0) as a new dependency. - Groovy upgraded to 4.0.7. - Driver version in doc and new projects upgraded for Firebird. - Doc for using Groovy in OpenXava applications upgraded to Maven/OpenXava 7 version. - Doc for developing with a 32-bit machine upgraded to Maven/OpenXava 7 version. - Fix: @Calculation does not work for members of @Embeddable in @ElementCollection. - Fix: JavaScript from an IJavaScriptPostAction not executed if the action calls to showDialog(). - Fix: @Coordinates map from base view hides dialog content. - Fix: The addActions() method does not work if called from an action that extends ReferenceSearchAction. - Fix: Row selectable in list only when the mouse is just on text of the cell content. - Fix: If a @HtmlText has XML content, columns to the right are shifted one position to the left in the list. - Fix: A ' followed by > breaks the cell content in the list for @HtmlText properties. - Fix: When a @HtmlText has an apostrophe the tooltip in list mode is shown only until that apostrophe. - Fix: The second call to View.setValueNotifying() from an @OnChange action doesn't fire the change event. - Fix: Editors with suffix don't show the suffix well if it has an apostrophe. - Fix: New project created from openxava-archetype-spanish contains unknown characters for accents. - Fix: Incorrect placement in the UI for an @Action associated with a @File property. - Fix: Error in log: ERROR StatusLogger Log4j2 could not find a logging implementation. OpenXava 7.0.4 (2023-1-5) ------------------------- - Embedded Tomcat used in development upgraded to 9.0.70. - Hibernate upgraded to 5.6.14. - Driver versions in doc and new projects upgraded for PostgreSQL, Oracle, AS/400 and Firebird. - Doc for putting in your project modified versions of JSPs from OpenXava to customizing project behavior. - Doc for deploying in Tomcat modified to include instructions for Tomcat 10. - Zero downtime deployment(ZDD) and horizontal scaling support. - Brazilian Portuguese translation for labels and messages. - Session data size reduced to a great extent. - Actions setSchema and setUser removed from UrlParameters controller. - New protected method getPropertiesToShowInEntityCreatedMessage() in SaveAction to customize message. - New XFileItem in util package to use as a serializable alternative to FileItem from Apache FileUpload. - Fix: When typing a wrong date it is modified to a correct one instead of keeping it as wrong date. - Fix: Error in browser developer tools console: downloadable font: download failed. - Fix: Hiding the same action several times shows an error when saving the entity afterwards. - Fix: Parameters in URL are not passed after login. - Fix: Security risk when a module of the application uses UrlParameters controller. - Fix: Too generic error when no connection to database: cannot be null when 'hibernate.dialect' is not set. - Fix: Automatic labels for list column headers for references have incorrect order in Chinese. - Fix: View with @Files/@File generates a JavaScript error dialog when the language is Catalan. - Fix: Time part not formatted correctly in DateTimeSeparatedCalendar editor with Serbian and Java 8. - Fix: Time part distorted on modify it in a @DateTime property using DateTimeSeparatedCalendar editor. - Fix: User redirected to list mode from detail when an action execution is sent to a different server. - Fix: Import CSV/Excel failed to work when using a cluster of server instances. - Fix: Unneeded final spaces in English and Spanish i18n messages files. - Fix: Older version of view still used even after the application upgraded to a newer version with ZDD. - Fix: Error while switching to a collection tab in the detail view after a server restart. OpenXava 7.0.3 (2022-12-9) -------------------------- - Hibernate Envers upgraded to 5.6.14. - Embedded Tomcat used in development upgraded to 9.0.69. - Driver versions in doc and new projects upgraded for Microsoft SQL Server, Informix and Firebird. - New property distinct in DescriptionsCalculator to allow not duplicated results. - Removed Tab.DESCRIPTIONS_LIST_SEPARATOR final variable. - Fix: @ElementCollection with a hidden id of a reference: Session object null not found in controllers.xml. - Fix: @DescriptionsList in an @ElementCollection depending on a member of the main entity does not work. - Fix: Wrong date formatting when pressing ENTER in the field after fill the date. - Fix: @OnChange action not executed always on date with time editor when using calendar popup. - Fix: @OnChange action is executed several times on date with time editor as changing using calendar. - Fix: Time is formatted with incorrect separator with Java 8 for Serbian language. - Fix: ValidValuesRadioButton editor for enums is not shown when the editor is read only. - Fix: Tooltips do not work for @DescriptionsList references. - Fix: Bad values for list filter in combos if @DescriptionsList uses several fields for description. - Fix: Sometimes property names used for list configuration names do not match the column label in list. - Fix: Missing configuration property in LeanXcale documentation. - Fix: Typos in View chapter of Reference Guide. - Fix: Some missing images in the Chinese version of course. - Fix: SchemaTool adds a double semicolon at the end of each sentence in console output. OpenXava 7.0.2 (2022-11-11) --------------------------- - HSQLDB embedded database upgraded to 2.7.1. - Embedded Tomcat used in development upgraded to 9.0.68. - Hibernate upgraded to 5.6.12. - Hibernate Envers upgraded to 5.6.12. - JAXB impl upgraded to 2.3.7. - PdfBox upgraded to 2.0.27. - Groovy upgraded to 4.0.6. - Driver versions in doc and new projects upgraded for MySQL and Db2. - Documentation to modify OpenXava code with Maven version. - Getting started guide using Visual Studio Code in English, Spanish and Chinese. - Documentation to configure your OpenXava application to work with LeanXcale database. - Improved Oracle configuration documentation. - Fixed 1 potential security vulnerabilities in dependencies, now we have 0 vulnerabilities. - Fix: JS and CSS for editors not loaded when there are blank spaces in path. - Fix: Message "WARNING! Trying to load controller {0} twice" for each controller. - Fix: Original list condition lost when a dialog from list mode shows another list. - Fix: SchemaTool does not generate well constraints for Microsoft SQL Server inside schemas. - Fix: New project created from openxava-archetype-spanish has an archetype-metadata.xml in root folder. - Fix: Filtering in list and collections does not work just after moving or removing a column. - Fix: Error dialog moving the last column after removing a column in list customization. - Fix: Ambiguous comment in model documentation in English about file persistence configuration. - Fix: Code in lesson 24 of course does not work for databases other than HSQLDB. - Fix: Generate PDF fails in some browser configurations that ask for the PDF twice. - Fix: Bad layout for "Loading..." message on Safari 16 in MacOS 12. OpenXava 7.0.1 (2022-10-21) --------------------------- - Hibernate upgraded to 5.6.11. - Hibernate Envers upgraded to 5.6.11. - Groovy upgraded to 4.0.5. - Jersey upgraded to 2.37. - Driver versions in doc and new projects upgraded for MySQL, PostgreSQL, Oracle and MS SQL Server. - Getting started guide using IntelliJ in English, Spanish and Chinese. - Getting started guide using Maven in English, Spanish and Chinese. - Video in Chinese for getting started guide. - Lesson 26 of course translated to Chinese, so now the whole course is in Chinese. - Outdated documentation to deploy on Weblogic removed. - Documentation for IntelliJ updated to use Maven. - Improved Appendix D of course about testing with examples of HtmlUnit usage. - Fix: @Coordinates editor does not work in development environment or starting from command line. - Fix: Image and text in actions of subcontrollers are too close, also space is not the same that for icons. - Fix: Broken internal links from annotations to their sections in reference guide. - Fix: Broken links from Model chapter of reference guide to API javadoc. - Fix: Chunks of XML code in the content of a @HtmlText property are not saved. - Fix: Applications using root context do not work since 7.0 from development environment. - Fix: HtmlText editor removes content when < followed by a character is used, like . - Fix: JavaScript error "result.dialogTitle is null" when an on-init action shows a dialog. - Fix: Subview not found error adding an element to a collection of entities in some circumstances. - Fix: Filtering in list mode dates and timestamps by range in Croatian does not work. - Fix: Grouping after entering in a module that is already in cards format breaks the module. - Fix: Creating a new element in a collection fails when using inheritance with generic types. - Fix: Bean Validation messages use server locale instead of browser locale. - Fix: Images for PHOTO stereotype are not shown in PDF reports. - Fix: Losing focus from a date gives "Changed data" message on exit after a "No more elements in list" error. - Fix: In charts choosing a property not already shown in the chart produces a "Editor not available" error. - Fix: View inheritance doesn't include parent members with three levels depth if entering child module first. - Fix: Scrollbars not stylized according to theme (fixed for WebKit based browsers). - Fix: Unneeded horizontal scrollbar adding columns to a list. OpenXava 6.6.2 (2022-2-7) ------------------------- - Some new common use labels to be used in applications. - Fix: Bad automatic label for property of reference in ManyToMany, @OrderColumn or calculated collections. - Fix: i18n label for member of reference for a specific model (like Project.manager.name=PM Name) not work. - Fix: Warning "Unknown referenced nature: org.eclipse.jem.workbench.JavaEMFNature" in projects inside Studio. - Fix: Incorrect explanation about entity collections behavior in Lesson 5 of the course. - Fix: Unable to remove actions dynamically, with removeActions(), from a subcontroller. - Fix: Parsing error in list filter for Timestamp and DATETIME for certain languages like Croatian. - Fix: Pressing ENTER to filter in list by date range does not work. - Fix: Upload editor property (like @Files) not shown when alone in a section with flowLayout=false. - Fix: Upload editor property (like @Files) does not fill all width if alone in a section with flowLayout=true. - Fix: Annotated web elements in Addons are not recognized when executing application from OpenXava Studio. - Fix: Collection count in section label is not updated when collection inside section is refreshed. - Fix: Broken links in View chapter of reference guide and Lesson 5 of the course. - Fix: Tab.setConditionValue() and MetaProperty.format() do not support boolean values. - Fix: Enum combos are displayed as disabled even when they are enabled with latest Firefox versions. - Fix: Inaccurate @DescriptionsList documentation in reference guide (View chapter). - Fix: Screenshot of lesson 7 of the course for dropping tables does not show the correct tables. - Fix: Calculated property dependent on a @Coordinates property is not recalculated when clicking on the map. - Fix: Read only @Coordinates property can be modified clicking on the map. - Fix: Grouping by an enum property in list fails. - Fix: ModuleTestBase.get/assertValueInList() not interpret line breaks consistently between operating systems. - Fix: JUnit suite does not pass at 100% on Linux. - Fix: @GenericGenerator annotation missing in sample code of course, so course code does not work. - Fix: @Id property with @DefaultValueCalculator dependent in an entity with an @ElementCollection doesn't work. - Fix: Calculated properties whose calculation depends on references fail recalculating after a change event. - Fix: @DescriptionsList doesn't throw change event for @Depends properties in @ElementCollection collections. - Fix: @DescriptionsList doesn't throw change event for @Depends properties editing in an @OneToMany collection. - Fix: No dependent @DefaultValueCalculator for @DescriptionsList in @ElementCollection does not work. OpenXava 6.6.1 (2021-12-2) -------------------------- - New utility classes, EmailNotificationsUtils and LogTrackerUtils, to test email notifications and log tracker. - Added method qualifiedKeysCollectionToTreeMapWithNullValues() to org.openxava.util.Maps utility class. - Lesson 2 of course modified to introduce annotations as alternative to stereotypes. - Course refined to avoid import conflicts. - Removed MimeUtil library from eu.medsea, we use URLConnection from Java instead. - Fix: Low performance in list mode with calculated properties with heavy logic and large datasets. - Fix: Opening the current module in other browser tab using the left menu initializes the current one. - Fix: @File/@Files do not show image preview for image files in some computers. - Fix: @File/@Files with acceptFileTypes="images/*" mark as error image files in some computers. - Fix: Unneeded horizontal scrollbar when many modules on top tabs. - Fix: View with just groups in a collection element fails. - Fix: Group inside a section in a collection element fails. - Fix: Calculated properties inside groups editing a collection detail are not recalculated. - Fix: XPersistence and XHibernate do not close the manager on reset, it could produce some security problems. - Fix: @File properties with file name in uppercase and image type are not shown as images in list. - Fix: Error from time to time on clicking New on a module with an element collection with failed getters. - Fix: @DefaultValueCalculator with no 'from' in element collection fails searching a reference with dialog. - Fix: If in an element collection the first value typed has default value the typed value is lost. - Fix: Blank element in @OrderColumn collection when a collection element is deleted from its main module. - Fix: @OrderColumn collection broken if a new element is created from other @OrderColumn collection. - Fix: Top button bar overlaps left menu. - Fix: Editor defined in @Tab doesn't work if exists a with for-all-models in tabs-default-values.xml. - Fix: Not preview for @File properties in list mode with files with .jpeg extension. OpenXava 6.6 (2021-10-26) ------------------------- - Last used modules are remembered and they can be accessed using tabs at the top of the module. - Property rememberVisitedModules in naviox.properties to remember the modules visited in last session. - Fixed modules (those declared with fixModulesOnTopMenu in naviox.properties) are shown on top as tabs. - Top button bar is fixed on top of the page when the user scrolls the detail or list view. - Left menu with modules is fixed when the user scrolls the main view of the module. - Responsive top bar button, now when the UI is narrowed the action labels are hidden. - Tooltips for actions include the name of the action, useful when action label is not shown. - Java annotations can be associated to editors in editors.xml. - @Password, @Money, @TextArea, @Label, @DateTime as alternative to stereotypes. - @Discussion, @Icon, @Telephone, @IP, @EmailList, @MAC as alternative to stereotypes. - @StringTime annotation as alternative to TIME stereotype with String properties. - @HtmlText as alternative to HTML_TEXT, with @HtmlText(simple=true) as alternative to SIMPLE_HTML_TEXT. - Java annotations can be associated to defaul types in annotation-type-default.xml. - Java annotations can be associated to validators in validators.xml. - Java annotations can be associated to a default size in default-size.xml. - @File/FILE displays a small preview image in list mode if the file is of image type. - @File and @Files annotations as alternative to FILE and FILES stereotypes. - FILES and FILE stereotype shows a preview if the uploaded file is an image. - FILES stereotype is shown inside a frame by default. - Attribute maxFileSizeInKb in @File/@Files/@FileItemUpload to restrict the size of files to upload. - Property maxFileSizeInKb in editors.xml definition to restrict the size of files to upload. - Attribute acceptFileTypes in @File/@Files/@FileItemUpload to restrict the type of files to upload. - Property acceptFileTypes in editors.xml definition to restrict the type of files to upload. - New @FileItemUpload annotation to configure properties of FileItem type. - PHOTO/IMAGE and IMAGES_GALLERY stereotypes only allow uploading images. - Import data in list mode only allows uploading CSV, XLS and XLSX files. - New @Coordinates annotation or COORDINATES/COORDENADAS stereotype to store and display a point in a map. - InvoiceDemo includes examples of COORDINATES, @Files and @File. - PDF reports show the filter name in the header for saved filters. - When a row in any collection is checked the delete action of the module is hidden. - Dropped support for Internet Explorer. - Startup time for application in development (embedded Tomcat) improved (x2). - Lesson 2 and 4 of course divided into several smaller lessons. - Automated testing content of the course moved to appendix D. - Last lesson of course, about references and collections, upgraded to the latest OpenXava version. - Lessons 2, 3 and 4 of course include video. - New isImage() method in org.openxava.util.Files utility class. - New moveRow() methods in ModuleTestBase to test moving rows in @OrderColumn collections. - Top bar button and left menu adapted to look better in iPad. - Some new common use labels to be used in applications. - Labels and messages for Serbian upgraded. - Fix: IP stereotype not linked to its corresponding validator, so no validation was done for IPs. - Fix: @OrderColumn collection order altered when a collection element is modified from its module. - Fix: Broken links in Customizing chapter of Reference Guide. - Fix: Minor errors in Spanish course version. OpenXava 6.5.3 (2021-7-12) -------------------------- - Getting Started guide includes video. - Welcome page on starting OpenXava Studio simplified. - Documentation about @Calculation in Reference Guide (Model chapter) improved. - Database configuration documentation improved. - RequestReseter logic moved to a @WebListener. - Fix: @Calculation total property in @ElementCollection depending on summation not updated sometimes. - Fix: @ElementCollection summation not updated when the user changes values in the column of the summation. - Fix: BigInteger properties are not treated as numeric values. - Fix: Dates ending with separator, like in Serbian, are incorrectly altered when modified. - Fix: @ReadOnly(onCreate=false) did not work on references. - Fix: Unneeded AJAX loading of editors in some cases with @ReadOnly(onCreate=false), - Fix: Read only enums not displayed completely when @Column(length=) with a low value is used. - Fix: Broken links in Model documentation of Reference Guide. - Fix: Changing in 'My reports' a comparison in a date from = to year = does not save the value of the year. - Fix: Editing a date field comparing by year in 'My reports' does not show the year. - Fix: Collection inside a section produces infinite loop if the collection element has recursive reference. - Fix: Date editor does not work well when locale format has the year at beginning, like in South Africa. - Fix: @ReadOnly ignored when using inside sections or groups with view inheritance. - Fix: Adding an element in a recursive collection that is also inside another collection fails. - Fix: @ReadOnly collections data not visible with Dark theme. - Fix: base.css is not refreshed by browser after updating OpenXava version. - Fix: File name for PDF generation and CSV export not encoded, so sometimes local characters are missed. - Fix: PDF reports do not work with Cp1250 encoding used by some Central and Eastern European languages. - Fix: Model name not translated in creation messages when key is included in the message. - Fix: @Calculation properties does not include thousand separators just after being calculated. - Fix: New action does not clear combo value on references with @DescriptionsList(showReferenceView=true). - Fix: @DescriptionsList(showReferenceView=true) does not refresh combo value navigating between records. - Fix: @AssertTrue throws error if has a message with a property with null value. OpenXava 6.5.2 (2021-5-31) -------------------------- - Use of 4 digits for year in dates for all locales. - 'How to' documentation improved. - Oracle configuration documentation improved. - Concurrency and version property documentation improved. - Documentation to modify and build OpenXava code improved. - Fix: Adding date separators and completing century in year only work for first date in view. - Fix: Date calendar and rich text editor do not change the language when xava.portal.locale is changed. - Fix: When locale is changed via code (xava.portal.locale) the link for help documentation is not updated. - Fix: Modules in left menu in incorrect language when you change locale from code (xava.portal.locale). - Fix: SchemaTool does not work with AS/400 on creating the foreign keys. - Fix: Icon of the action to search references is difficult to see in Dark theme. - Fix: Redundant columns to add to list when using inheritance with entities with collections. - Fix: Action links for rows in list inside dialogs are difficult to see in Dark theme. - Fix: Calendar icon inside date fields is difficult to see in Dark theme. - Fix: Error message about SameSite attribute with cookies in FireFox console. - Fix: Dead code in JavaScript editors. - Fix: Poor performance getting calculated collections in some circumstances. - Fix: Saving a collection element fails if the collection is inside a reference displayed with @AsEmbedded. - Fix: It's possible to remove attached files inadvertently in upload editors, now it asks for confirmation. - Fix: OpenXava.buildOpenXava Ant target doesn't work if ISO-8859-1 is not defined at Eclipse level. - Fix: Italian dates do not use 4 digits for years. - Fix: Editing a date of 20th century with popup calendar shows the date in the 21st century. - Fix: Adding separators to date or completing century in year doesn't work if there is a leading space. - Fix: Changing total property in @ElementCollection for existing entity not recalculated dependent values. - Fix: NullPointerException in log filtering in a list in the dialog to choose an element for a reference. - Fix: Last new line ( ; ) in a @View used as base with view inheritance is ignored. - Fix: Modifying a transient reference by code produces the "Changed data" message on exit. - Fix: Transient references are available for adding by user on customizing list columns. OpenXava 6.5.1 (2021-4-13) -------------------------- - Date separators added to date field automatically on focus lost. - Date separators added to date filter values automatically in list. - Queries in list with no explicit given name are discarded. - Portuguese translation for the standard labels. - New Emails.send() without fromEmail getting the value from smtpFromEmail of xava.properties. - New setConditionProperties() method in ITabProvider. - New extractVariables() methods in Strings utility class. - Activation framework upgraded to 1.2.1. - Fix: Filtering by year, month and year/month of a date does not work in list mode. - Fix: Filtering in @DescriptionsList does not ignore accents. - Fix: Date fields completes to century XXI even with later dates of century XX. - Fix: Date separators not added automatically to date field when missing. - Fix: Impossible to change name or remove some queries in list created before v6.5. - Fix: The buildAddons and buildOpenXava Ant targets do not work if bin folder does not exist. - Fix: Sending emails does not work with Java 11. - Fix: AccessTracker does not register the name of the file for FILE stereotype properties. - Fix: Messages from UploadServlet do not use the request language from time to time. - Fix: Users.getCurrent() does not work from time to time. - Fix: ElementNotFoundException: "Not found tab" accessing application while starting Tomcat. - Fix: Previous query in list is lost after coming back from grouping. - Fix: When grouping the current filter of the list is ignored. - Fix: Flow layout does not work inside @NoFrame references with flowLayout=true. - Fix: Bad alignment for @DescriptionsList with flowLayout=true. - Fix: Executing JavaScript content is possible by a XSS attack in certain cases. - Fix: Losing focus in a date property with @OnChange shows the "Changed data" on exit. - Fix: "Session object manager not found in controllers.xml" error from time to time. OpenXava 6.5 (2021-2-24) ------------------------ - Left menu can be hidden or shown by the user. - Responsive left menu, it is shown or hidden depending on page size. - New 'Save query' action in list mode, because queries are no longer stored automatically. - Modern JavaScript popup calendar for dates and DATETIME. - Wizard for creating a new OpenXava project in OpenXava Studio. - Lombok library added to OpenXava and OpenXava Studio supports Lombok by default. - 'All' query in list mode cannot be renamed or removed. - Date editor verified the date on losing focus. - A database manager can be launched from an OpenXava Studio menu option. - New projects can be launched with Run As > Java Application on the project. - Eclipse Platform for OpenXava Studio upgraded to Eclipse 2020-12. - Java included in distribution changed to Eclipse JustJ. - DBManager launcher class no longer included in new projects, moved to OpenXava as an Ant target. - Getting started guide simplified and adapted to new OpenXava Studio wizards. - Documentation to use OpenXava with a 32bit machine improved. - Documentation to use your own Eclipse instead of OpenXava Studio improved. - Getting started guide and the complete course (until lesson 8) adapted to use Lombok. - The user can add properties from collections on customizing list columns. - Comparator combo in the list is shown when its corresponding value field gets the focus. - Focus in list mode is in combo with stored queries, instead of in the first filter field. - Some new common use labels to be used in applications. - Now IRequestReportParametersProvider extends IReportParametersProvider. - Fix: OpenXava Studio hangs running long test suites. - Fix: Plain Java project does not work in OpenXava Studio. - Fix: Generating Hibernate code for XML components fails with Java 8 in some cases. - Fix: Label duplicated in list column header when user changes the label adding a space at end. - Fix: In DateTimeSeparatedCalendar editor the focus does not enter in time field when moving with keyboard. - Fix: Hour part of the data hidden partially in DATETIME used in list filtering. - Fix: Some spelling errors in Spanish labels. - Fix: The buildOpenXava and buildAddons Ant tasks do not work if openxava.jar or addons.jar are empty. - Fix: PDF report is not generated if there are errors obtaining the organization name. - Fix: Request is not injected in IRequestReportParametersProvider. - Fix: 'Organization' shown as organization in reports if xava.organization is missing in label files. - Fix: Module title outside corresponding span in some circumstances. - Fix: Selected menu option protrudes the left modules menu with Internet Explorer. OpenXava 6.4.2 (2020-11-9) -------------------------- - Lessons 7 and 8 of course upgraded to latest OpenXava features. - New applicationPort property in xava.properties to indicate the port used by the application launcher. - New method getPopupContentAsStream() in ModuleTestBase to get the content of new web window. - Fix: "Controller YourController not found" error accessing the application when Tomcat is starting. - Fix: Label and column width changed by user not persisted if the column isn't in the original @Tab. - Fix: @NoFrame references are not well aligned with flowLayout=true. - Fix: Two groups in a row (separated by comma) are placed one below other with flowLayout=true. - Fix: WEBURL button overlapped with URL with long URLs. - Fix: WEBURL button renders incorrectly when flowLayout=true. - Fix: Property ICON in list without label is aligned to top when there are too many columns. - Fix: JasperReportBaseAction actions fail with databases with no READ_UNCOMMITTED support like Oracle. - Fix: Extra second added in java.sql.Time properties with some databases, such as PostgreSQL. - Fix: Required style not applied to text area editors. - Fix: JavaScript error with @Calculation properties: "Cannot read property 'toFixed' of undefined". - Fix: BigDecimals not recognized as numeric values by Excel because of thousands separators with CSVs. - Fix: When the load action of an upload editor adds errors the messages are not shown to the user. - Fix: After adding two rows in an @ElementCollection with PHOTO the new blank row has an error. - Fix: Validation errors in controllers.xml/controladores.xml files in just created projects. - Fix: Clicking on menu of a module with IChangeModuleAction does not return to root module. - Fix: Duplicate load of totals via AJAX when refreshing an element collection. - Fix: View.setValue() for an element collection does not work. - Fix: View.setValue() for a reference sending the value as a map works but displays an error. - Fix: Application launcher (the _Run_YourApplication) fails if port 8080 is used by another process. - Fix: getView().setModel(anEntity) with an entity in a transient module put the permalink parameter. - Fix: Assign a model to the view of different type of the module and then reload the browser page fails. - Fix: Group by month or year of a DATETIME property implemented with a java.util.Date fails. - Fix: Import data from Excel turn big numbers into 2147483647. - Fix: Real Excel generation (included in TypicalRealExcel) exports BigDecimal as String. - Fix: Assigning an Integer to a BigDecimal property with MapFacade fails instead of doing a conversion. - Fix: Concurrent exception accessing labels from time to time under high load with many concurrent users. - Fix: View.setValue() to set null to a reference throws an exception. - Fix: Exception on save leaving first fields in blank when they are not required and with null values. OpenXava 6.4.1 (2020-9-22) -------------------------- - Support for JAX-RS 2.1 (JSR 370) for calling RESTful web services. - Documentation to install the latest OpenXava version on a 32-bit computer. - Composite key explanation included in JPA documentation. - Lesson 6 of course upgraded to latest OpenXava features and includes an example of calling REST services. - Lesson 2 of course simplified removing some error prone parts. - Fix: Reference search icon bad displayed on hover inside element collections. - Fix: On removing rows from an element collection calculated properties dependent on totals not updated. - Fix: Property dependent on a total property of an element collection not recalculated when total changed. - Fix: Calculated properties are not refreshed on adding to collection. - Fix: Calculated properties available for "group by" in list, when they cannot be used for grouping. - Fix: Read only HTML_TEXT in a section put all content in a row overflowing the screen. - Fix: Generate PDF with an IIconEnum property in the list produces an error. - Fix: Date, LocalDate and DATETIME do not work with Croatian language. - Fix: When running from application launcher the default i18n does not work - Fix: The updateOX Ant target fails after a clean of OpenXava project. - Fix: Not applicable warnings on updateOX and deployWar Ant targets. - Fix: Error message of javax.validation.ValidationException from setter not shown on adding to a collection. - Fix: @EntityValidator does not work when entity is modified on adding to a collection. - Fix: On adding elements to a collection it closes the dialog even if no elements has been added. - Fix: Reference not injected in @EntityValidator on modify if it is not on the user interface. - Fix: Required validation on modifying does not work for IMAGES_GALLERY and FILES. - Fix: Removing a file from an upload editor does not work if it has an @OnChange action associated. - Fix: Upload editor (PHOTO, IMAGES_GALLERY and FILES) doesn't allow to download file when read only. - Fix: Links of menu in JPA docs in Spanish broken. - Fix: Assigning initial value to a reference used as mappedBy of an @OrderColumn list breaks the list. - Fix: Saving an entity with a reference with empty value used by a mappedBy of an @OrderColumn fails. - Fix: Creating a new element in an @OneToMany shows "You will lose all changes" message leaving record. - Fix: From time to time changing the theme by a user changes the login page theme for all users. OpenXava 6.4 (2020-7-28) ------------------------ - OpenXava Studio, a specific OpenXava IDE, included in the distribution. - Searching by collection content from list mode allowing qualified collection properties in @Tab. - Import data from list supports importing references, not just plain properties. - ENTER to move to next field with enterMovesToNextField=true in xava.properties. - New attribute filter in @DescriptionsList to use an IFilter like the ones used by @Tab. - New attribute filter in of XML components to use an IFilter. - Self-sufficient distributions for Windows, Linux and Mac (install Java and Eclipse is not needed). - An open source JRE (Zulu) included in the distribution. - Building workspace time for Eclipse optimized. - Getting started guide simplified and adapted to use OpenXava Studio. - Lesson 5 of course upgraded to latest features. - Creation confirmation messages include field values if they are generated on saving. - Total properties allowed in an @ElementCollection of a base class. - View.setLabelId() to allow changing the label of sections and groups. - New method assertLabel(int sectionIndex, String expectedLabel) in ModuleTestBase. - Detail mode of InvoiceDemo improved. - Header with breadcrumbs navigation in each documentation page. - Chapter navigation on top of table of contents for course and reference guide. - Links no longer open new windows or tab in documentation. - Documentation style adapted to fit better inside OpenXava Studio. - More descriptive HTML title in each documentation page. - IThemeProvider to define your own logic to choose the current theme. - Automatic label for reference member in list improved. - Russian translation improved including labels for latest releases. - Fix: Combining inheritance, generic types and @ReferenceView fails. - Fix: @DefaultValueCalculator does not work for total properties of a collection if @View is specified. - Fix: assertTotalInCollection() in tests does not work for MONEY properties. - Fix: Horizontal scrollbar in list mode with large list configuration descriptions. - Fix: OpenXava.jar and openxava.jar files duplicated in Linux/Mac. OpenXava 6.3.2 (2020-5-12) -------------------------- - New initialModule property in naviox.properties to start with your own module instead of First Steps. - New IProcedure functional interface that does not receive or return any value to be use in lambdas. - Instructions to install Java and Eclipse improved in Getting Started guide. - Application chapter of reference guide improved. - Some new common use labels to be used in applications. - Fix: Setting a reference used as mappedBy in an @OrderColumn breaks the collection. - Fix: Combo for list configurations too large for complex filters. - Fix: Calendar icon hides the date with Edge in Spanish. - Fix: Drag & drop does not work with Chrome in touch screens. - Fix: Excel import does not work when csvSeparator=, in xava.properties. - Fix: Importing Excel with ; in some field truncates data or move it to another column. - Fix: ConcurrentModificationException from time to time for the first execution of the first module. - Fix: 'Impossible to execute Select action' error when the first module executed enters in detail mode. - Fix: Clicking on label in radio button editor does not change the option. - Fix: Tab.setConditionValue() does not work for references. - Fix: java.sql.Time and TIME stereotype do not allow nulls, always save 00:00 instead. - Fix: View.setEditable(member, false) does not work for embedded references. - Fix: startInLastVisitedModule=false in naviox.properties has no effect. - Fix: @ManyToMany collections with cascade REMOVE do not work. - Fix: BigDecimalValidator with 7 or more decimals fails. - Fix: When customizeList=false in xava.properties the icon to show/hide the filter in list is not shown. - Fix: After removing a row in an @ElementCollection, @DescriptionsLists after that row stop to work. - Fix: 'Loading...' message does not disappear from time to time. - Fix: Viewing image at full size on click does not work with upload file editor on Edge. OpenXava 6.3.1 (2020-4-1) ------------------------- - Dialogs aligned on top, lowering a little for each new nested dialog to show the titles of all dialogs. - Lesson 4 of course upgraded to latest features. - Workspace in distribution upgraded to Eclipse 2020-03, though it still works with Neon (4.6). - Some new common use labels to be used in applications. - Fix: BeanValidation does not work when saving directly with JPA from time to time under high load. - Fix: After reordering an @OrderColumn collection editing/removing an element edits/removes a wrong one. - Fix: Hide members from an @OnChange action in an embedded inside a dialog has not effect. - Fix: Navigation by selected records starts by the first one after saving a record. - Fix: Inserting thousands separator automatically as you type does not work for Chrome, IE and Edge. - Fix: Some English source code in Spanish course. - Fix: Tooltips for actions with apostrophe are shown truncated. - Fix: Row action with confirm=true and description with apostrophe does not work. - Fix: Delete button does not work in a row for French. - Fix: Title in dialog shows a number instead of apostrophe. - Fix: Labels of bottom buttons are truncated with they contain an apostrophe. - Fix: "FWK005 parse may not be called while parsing" on parsing XMLs from time to time. - Fix: Two apostrophes one after the other in labels if they are in that way in labels files. - Fix: When View.setValue() for a transient property it will ask confirmation before leave the record. - Fix: Upload editor disabled when inside an already closed frame. - Fix: Adding a new file to a FILES property that already has files using the Explore link fails. - Fix: Generate PDF and Generate Excel fail when hibernate.cfg.xml is misconfigured. - Fix: Scrollbar when the mouse over last element of a descriptions list with Firefox and Internet Explorer. - Fix: Combining hide/show member in a dialog with changing sections displaces the dialog outside screen. - Fix: Actions inside dialog have a wrong visual style. - Fix: Search reference icon inside element collections is an opaque circle. - Fix: Fail with locales that use ' as decimal separator, such as Switzerland. - Fix: Pagination in collections goes back to first page after editing/viewing an element with a dialog. - Fix: Creating a new element in a collection of entities fails with XML components. - Fix: Nested aggregate collections do not work with XML components. OpenXava 6.3 (2020-2-26) ------------------------ - Terra theme softened. - Light theme unified with Terra, though it keeps its colors. - New visual themes Dark, Black & White and Blue. - Color refactoring to allow creating a new color scheme defining a few colors. - Moving all colors to variables in CSS. - base.css to facilitate the creation of a new CSS style. - Theme chooser available for the user. - IntelliJ IDEA support including documentation. - Asks for confirmation when leaving a record with changed data without saving first. - New loses-changed-data option for in controllers.xml. - Application can run in root context, that without application name in URL. - IIconEnum to associate an icon to each option of an enum. - Blank option can be removed from dynamic combos with View.removeBlankValidValue(). - New methods in View for dynamic combos: clearValidValues(), disableValidValues() and hasBlankValidValue(). - Material Design Icons upgraded to 4.9.95. Now with 4996 icons available. - Lessons from 1 to 3 of course upgraded to latest features. - Workspace in distribution upgraded to Eclipse 2019-12, though it still works with Neon (4.6). - Maven documentation updated. - Some new common use labels to be used in applications. - Fix: List formatters do not apply to enums in @OrderColumn lists, calculated and many to many collections. OpenXava 6.2.2 (2019-12-9) -------------------------- - Migration documentation for adapting views to new FILES stereotype. - Some new common use labels to be used in applications. - Fix: JasperMultipleReportBaseAction with a type other than PDF has null as file name. - Fix: Format type in JasperMultipleReportBaseAction lost after first report. - Fix: updateOX ant task overwrites web/META-INF/context.xml sometimes when you update OpenXava version. - Fix: Dependent @DescriptionsList in an @ElementCollection fails when depends uses "this" as prefix. - Fix: Dependent @DescriptionsList in an @ElementCollection inside a dialog does not display the editor. - Fix: TypicalNotResetOnSave.save keystroke does not match CRUD.save keystroke. - Fix: Grouping by a year or month of a date in list and then order by that date fails. - Fix: Link in WEBURL fails when URL starts with "https://". - Fix: HTML_TEXT alone in a section with flowLayout=true has no margin on left. - Fix: When editing a DISCUSSION property the collections of other sections are narrowed. - Fix: @Column(scale=) ignored when MONEY stereotype is used. - Fix: Throwing ValidationException from a validator doesn't show the original message saving with JPA. - Fix: XPersistence.setDefaultSchema() does to work for MySQL if dialect is not specified. - Fix: Adding an element to a collection of an entity with @EmbeddedId fails. - Fix: Deleting from list mode with @EmbeddedId fails. - Fix: Labels for excel generation in list mode are not qualified. - Fix: @DescriptionsList combos with tildes opened by default with Internet Explorer 11. - Fix: New element in an @OrderColumn list with @OneToMany without cascade fails. - Fix: Getting started guides still make references to configure Tomcat inside Eclipse. - Fix: Calling getEntity() from an @OnChange action of a references throws an exception. - Fix: Error creating an entity with a collection with @Size(min=) and new ArrayList<>() in the declaration. - Fix: ModuleTestBase.login() does not find the user field from time to time. - Fix: Module loses its state from time to time under high load on server. OpenXava 6.2.1 (2019-11-5) -------------------------- - Some new common use labels to be used in applications. - Fix: Eclipse compilation errors on open OpenXava workspace because it is not refreshed on startup. - Fix: Print ", < and > instead of ", < and > in PDF reports. - Fix: Saving an element in a nested collection if root collection is not cascade remove fails. - Fix: New action of a collection inside a collection element of a not cascade remove collection fails. - Fix: View.setFocus() does not select the text of the focused editor. - Fix: Keystrokes for hidden actions work and should not. - Fix: Reloading page from browser in a multipart form (from ILoadFileAction) produces an infinite loop. - Fix: Broken links in the menu of the Spanish doc for Custom Style, FAQ and Course. - Fix: Bad alignment of editors when combining small label with no label or regular label. - Fix: Bad alignment of checkboxes and action links inside detail. - Fix: @OnChange doesn't work for PHOTO, IMAGES_GALLERY, FILE, FILES and FileItem properties. - Fix: @RowStyle does not work for collections with no row action (@ViewAction or @EditAction) enabled. - Fix: View.getCollectionTab() can be called for ManyToMany, @OrderColumn or calculated collections. - Fix: @Embedded members are marked incorrectly as error when they are used more than once in an entity. - Fix: Editors not marked as error (with red border) inside dialogs with Terra theme. - Fix: Wrong visual style for subcontrollers in collections. - Fix: In @ElementCollection when choosing a reference with dialog fills other references from previous row. - Fix: Element collection values not saved when the first column is a @DescriptionList. - Fix: Invalid code is generated when project name contains hyphen. - Fix: Properties from two second level references to the same model fail in list mode. - Fix: Dialog to add columns to list freezes when the entity has a lot of nested references. - Fix: Searching in add columns dialog shows the properties in other language from time to time. - Fix: Search icon in module searching box missing. - Fix: Custom naming strategy for Hibernate not recognized. OpenXava 6.2 (2019-9-24) ------------------------ - New Editor for FILE and FILES stereotypes with AJAX uploading. - New editor for PHOTO/IMAGE stereotype with AJAX uploading. - New editor for IMAGES_GALLERY stereotype inline in a frame and with AJAX uploading. - Images of PHOTO stereotype are shown in tiny size in list mode. - FileItem type (from org.apache.commons.fileupload) has an editor associated to upload a file via AJAX. - Import data in list mode uses AJAX for uploading the CSV/Excel file. - New uploadFile(), removeFile(), assertFile(), assertNoFile() and assertFilesCount() in ModuleTestBase. - New WithFileItem class to use as transient class for dialogs or views to just upload a file. - InvoiceDemo includes examples of PHOTO and GALLERY_IMAGES stereotypes. - Projects can be launched directly using Run As > Application. - No longer is needed to have a Tomcat installed for development. - Eclipse for Java Developers is enough, no longer Eclipse for Java Enterprise Developers needed. - Each new project includes a DBManager to launch a HSQLDB manager. - Getting started guide simplified. - Quick start guide removed. - Guide for deploying on Tomcat in Spanish and English. - Doc for configuring MySQL, PostgreSQL, Oracle, Microsoft SQL Server, AS/400, Informix, Db2 and Firebird. - MySchool demo project no longer included in distribution. - OpenXavaTemplate and OpenXavaPlantilla projects removed from distribution. - CreateNewProject.xml and CrearNuevoProyecto.xml available in OpenXava project directly. - Workspace in distribution upgraded to Eclipse 2019-09, though it still works with Neon (4.6). - Rows per page in list can be up to 50. - Length limit in stereotype MEMO/TEXT_AREA to avoid extremely large pages. - Grouping by in list mode has a year and month entry for each LocalDate property. - Filtering by year, month and year/month in list mode for LocalDate columns. - Lessons from 1 to 3 of the course use LocalDate instead of Date. - @ReadOnly(onCreate=false) in order the member would be editable on create and read only in the other cases. - DBServer class to start a HSQLDB and its manager. - Methods of SaveAction, CreateNewElementInCollectionAction and SaveElementInCollection made protected. - The methods setHidden() and setEditable() of View accept qualified member names. - Specifying application on creating a new test is no longer needed. - Some new common use labels to be used in applications. - DWR warning messages no longer shown in log. - Commons Codec API available to be used in applications. - Servlet API 4.0 included, though we still are compatible with Servlet 3.0. - New smtpFromEmail property in xava.property to define a 'from' email different than smtpUserId. - New methods isIE() and isFF() in Browsers utility class. - Fix: Isolate state for several browser tabs in the same module fails in nginx. - Fix: Some broken links in menu of the Spanish View chapter of reference guide. - Fix: assertDiscussionCommentsCount() from ModuleTestBase does not work when CSS is disabled. - Fix: Editors with format=false and no formatter fail if the type has no an editor associated. - Fix: Unused servlets defined in web.xml. - Fix: Broken image when PHOTO stereotype with no image is shown in list. OpenXava 6.1.2 (2019-6-17) -------------------------- - Label aligned on top when editor height is greater than usual. - Lessons 2 and 3 of course upgraded to OpenXava 6. - Added documentation about overwriting go list action to reference guide (controllers chapter). - Fix: On maximizing image in IMAGES_GALLERY the dialog does not fit the image size. - Fix: IJDBCCalculator for a @DefaultValueCalculator in a cascade remove collection element fails. - Fix: @DefaultValueCalculator dependent on other properties does not work for references. - Fix: Removing from a @ManyToMany deletes the element if it's also referenced from an aggregate collection. - Fix: LocalDate editor too long for a date. - Fix: After generating a PDF the current entity is reloaded losing the changes if it has single key. - Fix: Broken links in menus of the Spanish reference guide. - Fix: Single action with icon and no image is not shown in top button bar that is missing. - Fix: View.setEditable(member, editable) does not work for references. - Fix: Value with quotation marks in @DescriptionsList is only displayed until the first quotation. - Fix: Warning messages are not very legible. - Fix: Ant target for generating portlets hangs. - Fix: A @DescriptionsList and a list with multiple values in the same line are not well displayed. - Fix: Search in @DescriptionsList not work with composite description and fields with several trailing spaces. - Fix: @DescriptionsList with a composite description show all the existing spaces between fields. - Fix: Calendar icon covers up the name of the action when user as action icon. - Fix: Overwriting the go list action, the Mode.list action via mode-controller, does not work. - Fix: Actions added/removed via addActions()/removeActions() to the module are lost after closing a dialog. - Fix: Read only reference to an entity with a single reference as key which is not included in the view fails. - Fix: IMAGES_GALLERY stores all the images in the default catalog with MySQL. - Fix: XHibernate.setDefaultSchema() does not work for MySQL. - Fix: Mark for required and error not shown for MEMO/TEXT_AREA stereotype and enums. - Fix: List title overlapped with filters combo when it is too large with Light theme. - Fix: When section tabs overflow screen size alter their positions on changing section. OpenXava 6.1.1 (2019-5-13) -------------------------- - First module page load is done via AJAX. - Source code migrated to GitHub (https://github.com/openxava/openxava). - New openxava.base.dir property available in build.xml to have OpenXava/Addons in a different folder. - Fix: New action executes the @OnChange actions from properties not defined in the view. - Fix: Radio buttons are not displayed. - Fix: The tooltip for HTML_TEXT in list does not show the whole field content. - Fix: updateSchema produces an error of user and password not specified. - Fix: updateOX fails to update the Addons jar in windows from time to time. - Fix: XPersistence.setDefaultSchema() does not work with MySQL. - Fix: Labels.put() does not work. - Fix: Some details in the course are not adapted to recent versions. - Fix: Tab.setBaseCondition() on change module keeps the last user condition in that module. - Fix: Tab.setBaseCondition() does not take effect on change module until clicking on filter button. - Fix: Tab.setBaseCondition() does not change the current filtering configuration in combo. - Fix: Throwing org.openxava.validators.ValidationException from @PreUpdate shows a transaction error. - Fix: Values are not correctly obtained with an @ElementCollection with only booleans. - Fix: @ElementCollection with a @DefaultValueCalculator property fails if property is not present. - Fix: When page loaded slowly the user can click actions before page initialization that fails. - Fix: JavaScript of IJavaScriptPostAction is not executed on browser page refresh. - Fix: Moving a column when customizing a list produces an error dialog and it is not persisted. OpenXava 6.1 (2019-3-26) ------------------------ - Dropped support for Java 6 and 7, now Java 8 is the minimum requirement. - Dropped support for WebSphere Application Server 8 and WebSphere Portal 8. - JPA 2.2 support. - Bean Validation 2.0 support. - LocalDate from Java 8 supported as property type. - All annotations susceptible to be grouped are repeatable. - Tooltip for module description in left menu when the module description doesn't match the name. - Parsing of filter arguments in list is done using the editor formatter for the type. - New method getCurrentIP() in Users class. - 25% of performance improvement in jUnit tests. - Added new utility libraries: commons-text 1.4, commons-collections4 4.3. - JasperReports upgraded to 6.7.0. - Hibernate upgraded to 5.3.9. - Hibernate Envers upgraded to 5.3.9. - Hibernate Commons Annotations upgraded to 5.0.4. - Hibernate Validator upgraded to 6.0.15. - Commons Validator upgraded to 1.6. - Commons FileUpload library upgraded to 1.4. - JSoup upgraded to 1.11.3. - Groovy upgraded to 2.4.5. - JSTL Apache standard implementation upgraded to 1.2.5. - JavaMail upgraded to 1.6.3. - Upgrade of PDF/Excel libraries: itext-2.1.7, poi 3.15, poi-ooxml 3.15, poi-ooxml-schemas 3.15. - HtmlUnit upgraded to 2.32. - Upgrade of beans and collections libraries: commons-beanutils 1.9.3, commons-collections 3.2.2. - Upgrade of common libraries: commons-codec 1.10, commons-io 2.6, commons-lang3 3.8, dom4j 2.1.1. - Upgrade of class management libraries: classmate 1.3.4, jandex 2.0.5, javassist 3.23.1, - Upgrade of logging libraries: commons-logging 1.2, jboss-logging-3.3.2.Final. - Upgrade pre-Java 9 libraries: javax.activation 1.2.0, jaxb-api-2.3.1. - Workspace in distribution upgraded to Eclipse 2019-03, though it still works with Neon (4.6). - Removed LayoutParser and LayoutPainter code introduced in v5.0, disabled since v5.5. - Some new common use labels to be used in applications. - Fix: @Trees annotation, used to wrap several @Tree, does not work. - Fix: Stacktrace in log when showing collection totals. - Fix: Confusing stacktrace on starting any jUnit test. - Fix: When the user removes a column in the list a narrow empty column remains. - Fix: Some missing images in Getting Started guide in Spanish. - Fix: Some misspellings in English messages. - Fix: Charts are frozen when the list has a lot of records. - Fix: On page navigation in collections with @OnSelectElementAction selected elements are lost. OpenXava 6.0.2 (2019-1-21) -------------------------- - Workspace in distribution upgraded to Eclipse 2018-12, though it still works with Neon (4.6). - New method resetAllModulesExceptCurrent() in ModuleContext to reset all the modules state. - New method getSelectedKeys() on CollectionBaseAction. - Some new common use labels to be used in applications. - Fix: Action New in @ManyToMany collections fails on save the element. - Fix: Pressing "Change name/remove" from a search reference dialog shows another dialog on top. - Fix: Default i18n translations do not work after creating a new project. - Fix: Moving columns in a list with calculated properties produces an error dialog sometimes. - Fix: Editor formatter does not work in list mode with enum types. - Fix: Style that returns "DetailList" in getDefaultModeController() enters directly in detail mode. - Fix: Filtering for @DescriptionsList references in list fails when the id contains a dot. - Fix: @ListProperties with references of an @Embeddable fails for cascade REMOVE/ALL collections. - Fix: Same reference name with @DescriptionsList inside and outside a dialog shows the same elements. - Fix: CRUD.refresh does not work on combo of @DescriptionsList(showReferenceView=true) references. - Fix: Dependent descriptions lists do not work with showReferenceView=true. - Fix: @ElementCollection with inheritance with a getter in the base class is rendered as @OneToMany. - Fix: Keystrokes for changing section break the page in a view without section. - Fix: Pressing Ctrl-2 in login page breaks the page. - Fix: Card subheader with a lot of content not very legible in Light theme. - Fix: Hover on cards make the content blurred in Terra theme. - Fix: Buttons are ugly on iPad. - Fix: Booleans cannot be unmarked in @ElementCollection. - Fix: Loading... fixed when saving totals in collections. - Fix: Popup calendar generates bad format for DATETIME for locales IT, US, etc. in Java 9, 10 and 11. - Fix: Cut and paste in collection fails in some cases if we check the rows and click the above button. - Fix: CollectionBaseAction.getMapsSelectedValues() returns only the key when clicking on row. OpenXava 6.0.1 (2018-12-11) --------------------------- - New attribute readOnlyAsLabel in taglib. - Getting Started doc improved for Java 9, 10 and 11 and Eclipse 2018-09. - Improved migration doc for v6.0. - Fix: HtmlUnitUtils.getAnchors() does not find anchors by href. - Fix: ModuleTestBase.assertTotalInCollection() fails for @ElementCollection with references. - Fix: Using in a @Calculation the sum of a qualified property of an @ElementCollection fails. - Fix: Error saving @Calculation totals in collection when deleting entity and no more records. - Fix: @Calculation dependent on a summation of an @ElementCollection does not work. - Fix: Links inside message boxes have an ugly contrast. - Fix: Descriptions lists show id instead of description in read only element collections. - Fix: If @Tab(editors=) is modified the last used editor keeps being used even if not available. - Fix: Pressing ENTER adding columns to a list without choosing any produces an ugly tech error. - Fix: Broken loading image in card list format. - Fix: Loading icon for load new modules in menu is missing. - Fix: Mouse right button in modules menu does not open the module in another tab. - Fix: Messages not shown from dialogs in Liferay with Chrome and Safari. - Fix: Grouping combo in other line when list title is shown. - Fix: Broken links in documentation. - Fix: Choosing 'is empty' or 'is not empty' in list hides the combo and the value for ever. - Fix: Typing a value for filtering in list and then choosing 'is empty' or 'is not empty' fails. - Fix: Calendar icon hides the year in date editor when year has four digits. - Fix: MySchool demo project does not start in Tomcat inside Eclipse. - Fix: MySchool and InvoiceDemo projects have Welcome and First Steps pages no upgraded to v6. - Fix: Fails on the second intent to save when key is in a group and there are several groups. OpenXava 6.0 (2018-11-21) ------------------------- - Top navigation bar removed. - List of modules always present on the left. - Modes no longer exist from the user perspective. He just has a List link in detail mode. - Split mode no longer exists. - Going to a module from the modules menu resets the module, starting in list mode if it applies. - On references if the user types an inexistent key the search dialog is shown. - Icon for searching references emphasized with bold and special color. - Icon for changing the filter name is now a link with text. - Current new entity is validated before shown the dialog to add an element to the collection. - Emphasized borders instead of icons for required and error fields. - Combos for filters and grouping are stylized like standard combos. - Collection filters are hidden by default and they are hidden again when current entity changes. - Reseting the filter in the list executes the query. - The comparators filters are hidden by default, they are shown when user type values to filter. - New action is emphasized with a special color for list mode and collections. - Choosing a comparator in a combo of a list columns executes the filtering. - Search modules box only available when there are many modules. - Application name in top of modules menu, no longer with module title. - Place and size of messages adapted to not hide actions. - Fixed modules with fixModulesOnTopMenu on naviox.properties now are in top of left menu. - Bookmarked modules are not repeated in the menu. - Module description for each module no longer included in menu. - Modules menu has its own scrolling. - Buttons in dialogs are aligned to left. - Loading indicator not shown for short interactions. - Browser autocompletion deactivated for descriptions list combos. - Icon to show/hide the filter in list and collections is always present. - Resizing columns for list and collections is disabled by default. - Help icon is not available by default, activate it with helpAvailable=true in xava.properties. - Style for Liferay 6.1 adapted to new user experience features. - The mode controllers DetailList, ListOnly, SplitOnly no longer exist. - Columns in list and collections have an icon to sort, and no longer have link style. - Key of references marked as required if reference is required and missed. - New Terra theme (styleCSS=terra.css), classic style (styleCSS=light.css) still available. - You can define the theme of your application with styleCSS in xava.properties. - Welcome and First Steps pages simplified and adapted to the current theme. - Screenshots for Quick Start guide, Getting Started lesson and Navigation updated to latest UI changes. - naviox.css has been renamed as light.css and moved from Addons to OpenXava. - Java 11 support. - Tomcat 9 included in distribution. - Workspace included in distribution upgraded to SimRel 2018-09, though it still works in all Eclipse 4.x. - Support for Eclipse versions previous to Neon (4.6) removed. - Java Servlet 3.0 and JSP 2.2 are the minimum versions supported. - Tomcat 6 no longer tested. - Groovy code removed from OpenXavaTest. - New projects have not Groovy nature by default. - Property rememberVisitedModules of naviox.properties no longer has effect. - Property showFilterByDefaultInCollections is no longer available in xava.properties. - commons-io.jar (already included in OX) is exported from the Eclipse OpenXava project. - New method Dates.getDateTimeFormat() to get a DateFormat consistent for all Java versions. - New method isJava9orBetter() in XSystem utility class. - PortableRemoteObject is no longer used to cast objects. - EJBFactory utility class removed. - New Browsers utility class. - GoSplitAction class removed. - New method resetModule() in ModuleContext to reset all the module state, so reinits the module. - New method validateIncludingMissingRequired() in MapFacade to validate verifying required members are present. - View.reset() does a reset of the collections too. - New WithRequiredName class for using as generic transient class for dialogs. - New utility class HtmlUnitUtils for easier use of HtmlUnit. - New method concat() in Strings utility class. - Some new common use labels to be used in applications. - Fix: Help link broken, it linked to wikispaces, now links to openxava.org doc. - Fix: Descriptions lists in element collections show misplaced icons. - Fix: Sort icons in list columns are reversed. - Fix: ViewBaseAction.validateViewValues() does not validate if required fields exists. - Fix: Placeholders do not work for textarea fields. - Fix: Repeated remembered filters in the list from time to time. - Fix: Bad layout for charts when flowLayout=true in xava.properties. - Fix: Pressing ENTER in a dialog for search a reference shows another dialog on top. OpenXava 5.9.1 (2018-6-19) -------------------------- - All documentation included in the distribution. - Some new common use labels to be used in applications. - Fix: Tab.setBaseCondition() on an on-each-request action does not work on first module load. - Fix: Module names are not shown when you access them without NaviOX. - Fix: Adding valid values to a plain property by code (dynamic combo) in a section does not work. - Fix: Changing from a module to another when both are in charts list format fails. - Fix: Showing a previous hidden section with View.setHidden() when there are no sections fails. - Fix: Hiding a section with View.setHidden() when it is the only one fails. - Fix: Stereotype HTML_TEXT breaks charts when chosen as x column. - Fix: Long content for x column property produces ugly labels in charts. - Fix: Format for labels used for x column in charts is not the same of the list. - Fix: Stereotype FILES shows twice the action to add a new file when it is empty. - Fix: Group by month or year of a date from a reference fails. - Fix: Group by when there is a valid-values in the list fails with XML components. - Fix: Changing list filter/order name configuration fails with XML components. - Fix: View.setModel() and ViewBaseAction.validateViewValues() fail with transient objects in XML components. - Fix: View annotations are ignored in overwrote references using inheritance. - Fix: Overwriting a member in an entity without @View using inheritance duplicates the member in view. - Fix: InvoiceDemo and MySchool projects have not the Welcome page updated to 5.9 format. - Fix: Duplicate filter/ordering configurations in list from time to time. - Fix: Selecting a filter/ordering configuration does not work if it has only ordering and just one column. - Fix: Group by in list fails with XML components. - Fix: Charts show valid values properties as numeric values columns with XML components. - Fix: Going to charts and then going to detail mode loses the original view declared for that module. - Fix: Fail if removed a column, go to pie, changed the column and changed from list to charts several times. - Fix: ClassNotFoundException in the log when accessTrackerProvidersClasses is not defined in xava.properties. OpenXava 5.9 (2018-5-22) ------------------------ - Cut and paste in collections. - Record count in list when "Group by" is used. - On init module remembers the last filter/order in cards and charts. - Selecting filter/order configuration and grouping are available in all list format, including cards and charts. - Lists no longer remember last filtering and sorting from session to session, still remembered if chosen from combo. - Data shown in charts is the data currently filtered in list. - Group summation in list is shown correctly when changing to charts. - Record count when "Group by" is available in charts. - Pie charts sums the results of the same category automatically. - Pie charts group the data and summarize even if the list is not grouped. - In pie charts the user can only choose a column for y values. - Group by for pie charts shows the summation of each group. - X column is not shown by default as Y column too in charts. - Pie charts show the real value instead of percentage, percentage is shown on hover. - Chart fits in the space available in the page. - Improved charts layout for Liferay. - Improved placement of buttons for choosing chart type. - Columns in charts show their qualified labels if they are from references. - The user can subscribe/unsubscribe to a module to follow by email all the changes done in its data by other users. - All the changes done to a record are notified via email to the original creator. The original creator can unsubscribe. - Pluggable access tracking mechanism using new AccessTracker and IAccessTrackerProvider. - LogAccessTrackerProvider to register all database access in a log file, can be enabled in xava.properties. - Collection column summation can be used from @Calculation properties using sum(columnName). - It is possible to combine total summation and total properties for the same column of a collection. - @Calculation properties allowed as total properties for collections. - Editable properties allowed in collection totals. - @OneToMany collections show totals even if the collection has no lines. - The user can get the sum of any numeric column in calculated collections, @ElementCollection and @OrderColumn lists. - @ListProperties allows + as suffix for column sum in calculated collections, @ElementCollection and @OrderColumn lists. - Improved user experience for DISCUSSION. - Collection row count is shown in section label when the collection is the only section element. - Welcome and Sign In are separated pages, accessing to root goes to Welcome page. - Adding action to browser URL only for "new" actions. - Booleans in list and collections show the label of the property for true values instead of a check icon. - Summation in @OneToMany collections is available even if the list is empty. - New property fixModulesOnTopMenu in naviox.properties to have certain modules always present in top menu. - @Calculation property that depends on other @Calculation property is recalculated if the original is recalculated. - New method moveCollectionElementToAnotherCollection() in MapFacade. - Log includes module change with user host and user name. - Log for action execution include user host and name. - IJavaScriptPostAction to execute JavaScript after regular action execution. - IAvailableAction so an action can determine if it will be available or hidden programmatically. - Calculated collections supported for DefaultListActionsForCollections and DefaultRowActionsForCollections. - Some new common use labels to be used in applications. - IMetaPropertyFormatter to use the MetaProperty of the value to format or parse. - Improved Strings.naturalLabelToIdentifier() behavior to work with % character. - New method recursiveCloneWithCollections() in Maps utility class. - taglib support param1, param2, param3 and param4 to send parameters to the message. - New methods treeToPlainIncludingCollections() and getKeyFromValue() in Maps utility class. - New method isArray() in XArrays utility class. - Is.equal() and Is.empty() work fine with Java native arrays. - New sendInBackground() methods in Emails class to send emails in background. - New method setValuesNotTracking() in MapFacade. - New method createFileIfNotExist() in Files utility class. - New method Strings.toString() for doing a decent toString() of any object, supporting dates, numbers, arrays, etc. - Fix: Totals has the font size too small. - Fix: Two collections in a line inside Liferay Portal 6.1.2 are displayed one below another. - Fix: Messages are not shown from dialog in Chrome. - Fix: @Depends does not work for collection total properties. - Fix: In detail only modules the view is not editable by default. - Fix: Import data fails when the file to import has empty numeric data. - Fix: Duplicate modules in menu when modules defined in application.xml. - Fix: The methods assertTotalXXX() of ModuleTestBase do not work if the collection has no lines. - Fix: When no @View is specified collection total properties are shown in main view and collection totals. - Fix: The default filter/order configuration is not available in some cases. - Fix: WebURL editor has an invisible space on right that misplaces next editor. - Fix: Incorrect rounding in list and collection summation. - Fix: Charts are misplaced with Internet Explorer. - Fix: Witn FILE stereotype adding a file, removing it and add it again fails. OpenXava 5.8.1 (2017-11-20) --------------------------- - New look for sections. - Default value calculators with on-create=true (only in XML components) are not executed on clicking new action. - Fix: Creating a new project in Eclipse 4.7.1a (Oxygen 1a) does not work. - Fix: Filtering by booleans is not accurate when there are nulls in the database column. - Fix: On browser refresh the portlet title in Liferay is incorrect. - Fix: Element collection inside dialog shows horizontal scrollbar. - Fix: Charts are not well aligned. - Fix: When there are many sections (tabs) in a small screen the latest tabs are not clickable. - Fix: Filtering in a collection inside a reference produces an error. - Fix: Adding columns to a collection inside a reference produces an error. - Fix: Paging in a collection produces that in the next entity there are no entries until we paging. - Fix: % in a condition of a @DescriptionsList breaks the list if it contains the reference. - Fix: Tab.setBaseCondition() does not update the list UI immediately in some cases. - Fix: Generating PDF from a dialog puts the dialog content in the main view. - Fix: Browser refresh while editing a collection element changes the element by the root entity in the dialog. - Fix: Checkbox with tooltip can not be checked/unchecked. - Fix: Showing a dialog in list mode resizes the list. - Fix: Ugly layout with long text when DISCUSSION used inside a section. - Fix: Charts are below the buttons instead of on the right. - Fix: Cards are not updated when data is updated in detail mode. - Fix: Grouping in a list with calculated properties fails. - Fix: Ordering in a list with grouping fails, both by the user or using @Tab(defaultOrder=). - Fix: @Calculation does not work in collections. OpenXava 5.8 (2017-10-17) ------------------------- - The user can group by any property in the list to get summation of numeric properties by group. - Import action in list mode to import data from CSV, XLSX (Excel 2007/2010/2013) and XLS (Excel 97/2000/XP/2003) files. - The user can rename the columns in list and collections for him. - New look for messages. - Messages can be closed by the user. - Messages placed in a fix part of the screen, even if you scroll the page. - New striking tooltip for editors that are activated just with the focus. - Tooltip is omitted if matches with label for actions and editors. - New look of buttons bar for module and collection. - Delete icon in top bar is red on hover. - Font size for list and editors changed. - First steps screenshots upgraded. - In controllers inheritance you can exclude actions from parent controller with new excluded-actions attribute. - New attribute available-on-new for action in controllers.xml to exclude actions when creating a new element. - Dynamic combos with the new methods addValidValue(), removeValidValue() and getValidValues() in View. - It's possible to change by code the descriptions list condition. - If a module has no rows it starts in detail mode executing New action. - Lists remember the last filtering and ordering by user between sessions. - Generate PDF works even if the browser does not allow popups, this applies to most IForwadAction too. - Action for deleting rows in list mode now is on top bar and it has icon. - 'Sign in' link not shown when the user is in 'Sign in' page. - When Discussion editor has the focus the Add comment button is shown and the Save button for module is hidden. - Renamed button of Discussion editor from Post to Add comment, moreover it is hidden on start. - Delete action in detail mode is not present if there is not an entity selected. - Search action in detail mode is no longer included by default. - Clicking in detail mode when the list has no rows executes New action. - Workspace included in distribution upgraded to Eclipse Oxygen, though it still works in all Eclipse 4.x. - Placeholders for fields using [placeholder] suffix in i18n label files. - New resetAfterOnCreate/Modify in SaveAction to define the behavior after saving separately for create and modify. - Module description in menu of modules is omitted if matches with module name. - Number of modules shown in the menu in the first load is 20, before it was 15. - Reduced the amount of serialization errors on stopping the application server. - New property showModulesMenuWhenNotLogged in xava.properties to hide Start button to guest users. - ModuleTestBase removes user preferences before executing each test. - Attribute label-style in property-view and descriptions-list of XML components. - Some new common use labels to be used in applications. - Property messagesOnTop removed from xava.properties, now you can use CSS to place the messages. - New showDefaultActionInBottom property in xava.properties to show/hide the default action on bottom. - New methods showButtons() and hideButtons() in ModuleManager to show/hide the button bars from UI. - Material Design Icons upgraded to 1.9.32. - Added poi-ooxml.jar library to manage Excel 2007/2010/2013 files. - New controllers TypicalWithSearch and SearchForCRUD to use the classic search action. - New method getQualifiedActionIfAvailable() in BaseAction. - New method put() in Labels to add new labels in runtime. - New method unquote() in Strings utility class. - New CancelToDefaultControllersAction that closes the dialog and set the default module controllers. - New methods selectGroupBy() and assertAllGroupBys() in ModuleTestBase for grouping in list mode. - New method assertValuesInList(int row, String ... values) in ModuleTestBase to test all row values in a shot. - New method updateModelFromView() in View to update the model set with setModel() from the view data. - Value of attribute 'label' in of XML components has preference over i18n files. - Fix: Error in JavaScript console of browser trying to loading an inexistent font file. - Fix: ModuleTestBase.waitAJAX() fails when navigating from a non-openxava page. - Fix: Changing the browser URL from an application to another the first action does not work. - Fix: Buttons bar in collections with flowLayout=true goes outside of the frame. - Fix: In some cases labels in collections are not translated. - Fix: Useless tooltip on HtmlText and Discussion editors. - Fix: Validation error adding entities to a collection rollbacks all the entities added even the good ones. OpenXava 5.7.1 (2017-6-13) -------------------------- - Reference actions are shown in the reference frame, instead of next to the key field. - New method resetEntityManagerFactory() in XPersistence. - Fix: Base condition and default order is shown in query name making it large and cumbersome. - Fix: Double click on an upload file action executes the action twice producing error. - Fix: Saving with resetAfter=false and refreshAfter=false fails on creating with hidden key when saving a second time. - Fix: Impossible to search a reference if its view has no at least a plain field. - Fix: SchemaTool does not work with PostgreSQL when we use @Index in @Table. - Fix: When scrolling in a touch screen @OrderColumn rows move inadvertently. - Fix: Impossible to select text in @OrderColumn collections. - Fix: Mode tabs too close to right when cards list format is used. - Fix: Horizontal scrollbar with flow layout. - Fix: Horizontal scrollbar with cards list format. - Fix: Frames truncated in dialog with flow layout. - Fix: Queries names in list have some incorrect ) when ignoreAccentsForStringArgumentsInConditions=false. - Fix: Opening the first combo in a dialog with a @OnChange throws the onchange event closing the combo on click. - Fix: Images gallery shows the content of the HTML_TEXT stereotype if the property is called "description". - Fix: The reference to parent is shown creating a new element from an entity collection without @CollectionView/@View. - Fix: If the list has many columns without column resizing the icons for edit and delete are one below other. - Fix: In lists with many columns the detail/list/both links are outside of viewport without column resizing. - Fix: Impossible to remove columns in list without column resizing, the x is missing. - Fix: Comparator combo and filter value textfield do not fit all the available space without column resizing. - Fix: Flow layout does not select correct format (vertical or left to right) on first page load. - Fix: Textfields too separated from label in views with few fields. OpenXava 5.7 (2017-5-16) ------------------------ - It's possible to go directly to the detail of an entity with ?detail=entityId in the module URL. - It's possible going to a module executing an action adding ?action=Controller.action in the URL. - When the user navigates among records or executes actions the browser URL is modified to be a valid permalink. - Cards format for list available in all modules by default. - New attribute editors in @Tab to define a group of editors to be used for list formats. - Editors for list formats defining several editors in editors.xml. - New attribute editors in tab of tabs-default-values.xml to set the default editors (Charts, List, etc) for lists. - Responsive layout with flowLayout=true in xava.properties. - @Calculation to declare an arithmetic expression for a property. - in of XML components to declare an arithmetic expression. - It's possible to create new elements from a regular @OneToMany collection even if it has no cascade REMOVE. - It's possible to modify elements in a regular @OneToMany collection. - You can define 'subcontroller' in a collection using @ListSubcontroller. - Rounded corners changed by squared corners in all the UI. - The last list format (chart or list) is remembered between sessions by user. - The user can remove any query from the combo of recent queries in list mode. - It's possible to remove Charts from all the modules of the application, using editors of tab in tabs-default-values.xml. - Better default values for list and collection properties when @Tab and @ListProperties are omitted. - Added font size and format to SIMPLE_HTML_TEXT and removing some rarely used options to keep it simple. - Labels for properties of references in list use the reference label if the property is name, description or title. - Delete selected action not available for Charts. - Formatter for HTML_TEXT in list mode, now uses the plain text until 200 characters. - New method executeAction() in BaseAction to execute actions from an action. - New attribute selectable-items in editor of editors.xml for list editors that allows selecting items. - New attribute process-selected-items in action of controllers.xml to hide the action when selecting item is not available. - @NewAction no longer define the action for adding new elements from existing one, now it's only to create new elements. - New @AddAction annotation allowed for collections, to define the action to add elements from existing ones. - New element in for XML components. - Chunk size to get data from database for list mode now is 120 records, it was 50. - Japanese translation of labels and messages. - Mail API available for using in your project. - New multiline() method in Strings to create platform independent multiline string. - Default size for stereotypes IMAGES_GALLERY, GALERIA_IMAGENES, FILES and ARCHIVOS. - New method waitAJAX() in ModuleTestBase to wait until the current AJAX request is done. - New method assertValidValueNotExists() in ModuleTestBase. - Some new common use labels to be used in applications. - New get/assertValueInList() methods without column param in ModuleTestBase to work with values of list elements in columnless formats. - SessionData class to access session data from any part of your application: actions, calculators, validators, even from entities. - Logging of time of each AJAX request, in debug level. - New methods getDiscussionCommentText(), getDiscussionCommentContentText() and assertDiscussionCommentContentText() in ModuleTestBase. - More intuitive messages in English. - New method toMap() in Maps utility to create a Map from a varargs of objects. - Library jsoup to manage HTML included. - Fix: Clicking New from Charts with calculated collections breaks the module. - Fix: SchemaTool fails with entities with @Table(schema=). - Fix: "Yes" is shown besides the check symbol in list for boolean values with column resizing disable. - Fix: Error "Action ... not available" on refresh after session lost. - Fix: List customization not saved in some cases. - Fix: ModuleTestBase.assertDiscussionCommentText() only works for row 0. OpenXava 5.6.1 (2017-1-27) -------------------------- - Each browser tab has its own independent session state by module. - New icon for WebURL editor, now embedded inside the fields, as in the date case. - New method moveCollectionElement() in MapFacade to move collection elements programmatically. - New method Servlets.getCookie() to get a cookie from the request. - New method toList(Iterable it) in XCollections utility class. - Some new common use labels to be used in applications. - GoToURLAction removed, it was used only by WebURL editor that now uses a direct link. - Improved stacktraces thrown from an editor for easier debugging. - Method reload() removed from MetaComponent. - MetaComponent has a new boolean property called metaDataCached, to determine if the metadata is cached for that component. - Fix: Opening the same module in several browser tabs produces unpredictable behavior. - Fix: Closing a dialog scroll up to the beginning of the page. - Fix: Controllers do not overwrite repeated actions. - Fix: Impossible to add new lines in an @ElementCollection with only @DescriptionsLists. - Fix: Combo for @DescriptionsList does not open for third line in @ElementCollection. - Fix: Impossible to delete elements from @OrderColumn collections. - Fix: Money symbol in MONEY stereotype is not shown in @ElementCollection. - Fix: After removing a row in an @ElementCollection searching a reference with a dialog changes the incorrect row. - Fix: @DescriptionsList annotated with @ReadOnly in a @ElementCollection can be edited. - Fix: Pressing Cancel when adding columns to the list used for searching a reference fails. - Fix: Remove column icon is not shown when the column is too narrow. - Fix: Customization icons for list columns in several lines with Liferay 6.1. - Fix: Using setControllers() inside an action to show a dialog with several levels removes the actions on come back. - Fix: Closing the dialog to add a new element in ManyToMany collections removes the actions of current dialog. - Fix: Second nested dialog for adding a new ManyToMany element does not show its actions. - Fix: @Required in enum for @ElementCollection gives incorrect validation errors on save. - Fix: Newly created entity is not available when navigating with left/right arrows. - Fix: Dialogs with collections with many properties are bigger than screen. - Fix: Searching a reference produces a dialog bigger that the page if there are many properties in the list. - Fix: Calculated properties with @Depends do not work when in the same view of a polymorphic reference. - Fix: Two collections in the same row are wrapped by a very ugly frame inside and outside Liferay. - Fix: @DescriptionsList combos in @ElementCollection are not well aligned. - Fix: Reference annotated with @DescriptionsList(showReferenceView=true) and @NoFrame alone inside a section breaks the layout. - Fix: Ugly spacing in @DescriptionsList with showReferenceView=true. - Fix: When mouse hover an option of a @DescriptionsList combo and click outside the selected value is lost. - Fix: When mouse hover an option of a @DescriptionsList combo inside a dialog and click outside the option is shown but not selected. - Fix: When a group, section or main view is aligned by column with @NoFrame references inside not aligned by column the layout is broken. - Fix: @Editor in a property of an @Embeddable used in a @ElementCollection does not work if the view name of the module is no the default one. - Fix: Calling an action after saving with element collection fails if an event changes the main view. - Fix: Properties placed on right of the UI when the next element has a frame, fails when @NoFrame is used. - Fix: assertLabel()/getLabel() of ModuleTestBase do no work with members with frame. - Fix: NullPointerException with JDBCTabProvider when the keys contains null. - Fix: Current user lost in jUnit tests under certain circumstances. - Fix: Editors are cut when their columns are resized in @ElementCollection inside Liferay. - Fix: View.isEditable(String member) does not work with references. - Fix: assertEditableInCollection() and assertNoEditableInCollection() from ModuleTestBase do not work with @DescriptionsList. - Fix: ICON stereotype editor is not correctly aligned in some cases. - Fix: URLs without http:// prefix do not work in WebURL editor. - Fix: Icon for going to the URL is not shown in WebURL editor inside element collections. - Fix: GenerateReportAction does not work for XLS and MyReports. - Fix: In Jxls utility classes when using some characters ( [ ] * / \ ? : ) in sheet names fail creating the POI sheet. OpenXava 5.6 (2016-10-28) ------------------------- - List remembers filters and ordering done by user to be re-executed choosing from a combo, you can rename the filter/ordering configurations produced. - New DISCUSSION stereotype to include a discussion thread as a property of an entity. - New SIMPLE_HTML_TEXT stereotype to edit rich text with a simplified user interface. - CKEditor look & feel adapted to NaviOX and Liferay 6.1 look & feels. - CKEditor upgraded to 4.5.9. - Partial query from FROM allowed in @Tab(baseCondition=) of JPA entities and base-condition of XML components. - New indexExt.jsp in naviox/web to add elements to the main HTML page that wraps the application. - 'My reports' action is no longer available by default, though it is still in OpenXava. - New TypicalExtendedPrint controller that includes 'My report' action. - The combination XML components + JPA persistence no longer supported. - Main window is not refreshed when generating a SimpleHTMLReport. - New helpAvailable property in xava.properties to enable/disable the help icon in modules. - Eclipse workspace in distribution upgraded to Eclipse Neon, though it still works with all 4.x versions. - MetaController.containsMetaAction() receives a not qualified action name as argument. - New method validateViewValues() in ViewBaseAction. - New WithRequiredLongName class for using as generic transient class for dialogs. - New method move() in XArrays utility class. - New booleanWithSuffixEditor.jsp editor that allows put a suffix label after the field checkbox. - Some new common use labels to be used in applications. - New toString(Object [] array) method in Strings utility class. - ModuleTestBase.setLocale() no longer reset the module. - New methods selectListConfiguration(), assertListSelectedConfiguration() and assertListAllConfigurations() in ModuleTestBase. - New method clearCondition() in ModuleTestBase to simulate clicking on the clear list condition button. - New method anyEqual() in Is utility class. - New method naturalLabelToIdentifier() in Strings utility class. - New methods assertDiscussionCommentText(), assertDiscussionCommentsCount() and postDiscussionComment() in ModuleTestBase. - IExplicitModifyPersistenceProvider to define persistence providers that needs an explicit command to modify data. - New property connectionRefinerClass in xava.properties for defining an IConnectionRefiner to refine JDBC connections. - Each component type has its own IPersistenceProvider, there is no longer a unique IPersistenceProvider for the whole application. - Properties jpaCodeInPOJOs and persistenceProviderClass in xava.properties no longer have effect. - Methods isEJB2Persistence(), isJPAPersistence(), isJPACodeInPOJOs() and getPersistenceProviderClass() removed from XavaPreferences. - Pluggable component parser by means of IComponentParser implementations declared in xava.properties. - Improvements for English, German and French translations of labels and messages. - New property smtpStartTLSEnable in xava.properties to configure the behavior of Emails. - Servlet mapping to generate custom Excel files included by default in web.xml. - Fix: Labels.getQualified(String id) does not return the qualified label. - Fix: Changes in custom.css lost when upgrading OpenXava version. - Fix: On hover style for default action button does not work. - Fix: Schema tool does not add schema for CREATE INDEX sentences. - Fix: The order of subcontrollers in the user interface is not the declared one in controllers.xml. - Fix: In a module with 'ListOnly' or 'Void' for mode-controller with subcontrollers but no actions, the subcontrollers are not displayed. OpenXava 5.5.1 (2016-6-13) -------------------------- - CSS for layout instead of HTML tables. - In the validation message values of the properties of the current entity can be used. - Some new common use labels to be used in applications. - Fix: Bad layout with nested @NoFrame. - Fix: Collection inside a section is duplicate in some cases. - Fix: Two groups in the same row in @View not possible. - Fix: @NoFrame elements not aligned with outside elements. - Fix: Constraint exception produces a blank message. - Fix: Duplicate buttons after generating PDF or refreshing the page in a view aligned by column (with # in @View). - Fix: The files welcome.jsp and firstSteps.jsp overwritten when deployWar or updateOX. - Fix: Controller in controladores.xml with contexto=web sometimes does not show the actions. - Fix: Combo handle for @DescriptionsList is displaced inside a dialog when it is narrowed. - Fix: Moving with the cursor in a @DescriptionsList combo shows the key in the textfield instead of description. - Fix: Required and error icon displaced in Android tablets and iPad. - Fix: Changing the schema with JPA or Hibernate inside a test has lateral effects in next tests. - Fix: @DescriptionsList inside a dialog is not displayed completely when opened, it is cut on dialog limit. - Fix: @DescriptionsList does not close the list when you click in other place. - Fix: @DescriptionsList with " in the data breaks the module. - Fix: @DescriptionsList with showReferenceView=true and composite key loses non-key data on action call. - Fix: Editors with frame=true adds a little space before editor. - Fix: Editors with frame=true adds a blank line if the editor is wrapped in a HTML table. - Fix: Required icon not in correct position in text areas. - Fix: JxlsSheet needs setFreezePane(). - Fix: createPOIWorkbook() can not be called twice on the same JxlsWorkbook. - Fix: JxlsWorkbook.getSheet() does not check if the index is valid. - Fix: JUnit tests do not find actions in some circumstances. - Fix: Elements inside sign in box are not centered. OpenXava 5.5 (2016-4-26) ------------------------ - @DescriptionsList combos have autocomplete functionality. - showReferenceView=true in descriptions list to show a combo and a detail view at the same time for a reference. - Pressing ENTER in the filter part of a collection executes the filter of the collection. - "contains" instead of "starts" as default value in filters for string values in list and collections. - Real Excel exporting by means of type=xls in GenerateReportAction or using the TypicalRealExcel controller. - New ICON stereotype to store an icon of Material Design Icon into a property of an entity. - Delete buttons are red only on hover. - Delete icons are red on hover. - There is no special icon for key, just the required icon if applies. - Icon instead of image for sorting rows in collections with @OrderColumn. - Icons instead of images for messages. - Icons instead of images for sort indicators in list and collections. - Icon instead of image to reset filter values in list and collections. - Icon instead of image for boolean values in list and collections. - Icons instead of images for date and date/time editors and list filtering. - Icon to throw calendar in DateTimeCalendar editor inside textfield. - Icons instead of images in new created project from templates. - New icon for going to first record in detail mode. - Icons instead of images for page navigation in lists. - Material Design Icons upgraded to 1.4.57. - Icon instead of image for help. - Icons instead of images for closing and opening frames. - Icons for customizing list are of the same color (green). - Icon for showing and hiding filter in list is in the same place. - Icons instead of images for customizing list and collections. - Icons instead of images for validation error and required. - Better alignment for icons in button bar. - Property showApplicationName in naviox.properties to hide or show the application name in header. - New xava:label taglib to include i18n labels in custom JSPs. - German translation improved. - Documentation in xava.properties for new projects improved. - Documentation about module navigation improved. - Default renderer now is JSP based instead of Java based. - ValidValuesRadioButton and ValidValuesVerticalRadioButton editors look improved. - Table created by default for images gallery allows big images. - New method XObjects.execute() to call dynamically methods with three arguments. - View.setEditable(member, state) works for references and collection in addition of plain properties. - Stereotype FILE supports multischema. - Fix: Clear button in IE is on top of calendar icon in date fields. - Fix: Generate schema tool fails when the dialect is not specified. - Fix: Internet Explorer CSS adjustments ignored for IE11. - Fix: Icon in date fields hides some part of the date in some browsers. - Fix: Text field font size and family inside dialogs are not the same than in a regular view. - Fix: If view is not initialized View.setEditable(member, state) is not propagate to groups. - Fix: Generating PDF in list fails with Android. - Fix: ValidValuesVerticalRadioButton editor does not align the first option well. - Fix: Properties inside a group within a section are not cleared or saved. - Fix: Label style does not work. - Fix: referenceEditor.jsp name ignored in editors.xml. - Fix: Editors with frame=true composite=true do not work correctly. - Fix: Textfields are not aligned when there are validation errors. - Fix: Frames not aligned with element collections. - Fix: Pressing enter in a filter text box in split view causes action to be triggered in detail view. - Fix: @SearchAction without image or icon does not shown the link, just is missing. OpenXava 5.4.1 (2015-12-15) --------------------------- - Fix: Default action fired pressing ENTER ignores confirm=true and takes-long=true. - Fix: Searching modules does not work if you do not use exact accents. - Fix: ClassCastException when an entity used in a CascadeType.REMOVE or ALL collection has a reference to itself. - Fix: Properties with EMAIL_LIST stereotype are not validated. - Fix: After removing a row from an element collection, fails on adding a second additional row to the collection. - Fix: When creating a new entity with an element collection if we remove a row before saving only saves the first row. - Fix: View.setFocus() does not work from @OnChange actions. - Fix: Duplicated format list buttons in Linux/Mac running Tomcat from Eclipse. - Fix: Legend in charts is not translated. - Fix: Add columns to list can be empty and with "Show more..." in some circumstances. - Fix: Actions with confirm=true whose description contains apostrophes are not executed. - Fix: on-init, on-each-request, before-each-request and after-each-request do not work for actions inside subcontrollers. - Fix: Focus not on the first field when editing a collection item with all members inside section tabs. - Fix: Scrolling in add columns dialog hides search text box. - Fix: Columns list over bottom buttons when there are many entries in add columns dialog inside Liferay. - Fix: Scrollbar disappears in adding columns dialog when clicking on "Show more...". - Fix: Incorrect row height in list. - Fix: Summation bad aligned in list. - Fix: Incorrect row height in add columns dialog. - Fix: Editors of type select multiple have fixed height. - Fix: Spanish messages not uniform for t�/usted usage. - Fix: @NoFrame references show the frame after choose a value searching in a polymorphic resultset. OpenXava 5.4 (2015-11-9) ------------------------ - New icons, now all standard OpenXava actions use Material Design Icons instead of gifs or pngs. - New icon property in action and subcontroller definitions to define an icon by name from Material Design Icons. - UI for charts simplified. - Charts no longer are shown in a dialog but flat in the list space. - Support for Image editor in @ElementCollection. - Added the library for auditing Hibernate Envers. - Add columns dialog has a search box to delimit the columns to add. - Add columns dialog is limited to 20 properties each time it's opened, with a link to load all. - "empty" and "not empty" filters for list and collections. - Split mode starts with the first object selected, unless you come from detail mode. - New textWithSuffixEditor.jsp editor that allows put a suffix label after the field textbox. - CSS files in web/xava/editors/style are loaded automatically. - New methods assertNoWarnings() and assertNoInfos() in ModuleTestBase. - New useIconsInsteadOfImages property in xava.properties to choose between new monochrome icons or old color images. - New resources.xml in WEB-INF for defining resource-ref elements. - Automatically schema update for new projects. - Optimal Hibernate connection release mode for new projects. - start-manager-hsqldb.bat/.sh no longer need the JAVA_HOME environment variable. - Dropped support for Internet Explorer 9 and 10. - asm.jar, cglib.jar and ehcache.jar removed from distribution. - Servers view added in Java perspective in Eclipse initial layout. - Fix: Numbers left aligned in list and collections. - Fix: From time to time the user is not redirected to the correct current module. - Fix: CSS changes are not automatically refreshed on version upgrade. - Fix: Charts style missing inside portals. - Fix: Liferay navigation bar shown over dialogs. - Fix: setConditionComparators method did not set conditions for collections in ModuleTestBase. OpenXava 5.3.2 (2015-7-27) -------------------------- - New RemoveSelectedInElementCollectionAction to refine @RemoveSelectedAction for @ElementCollection. - Fix: View inheritance fails with groups inside sections. - Fix: The menu shows modules from MappedSuperclass classes. - Fix: Strings.removeAccents() does not remove grave accents. - Fix: Class not found OrganizationServlet deploying on JBoss. - Fix: Errors in tabs-default-values.dtd and valores-defecto-tabs.dtd. - Fix: Clickable region in list does not include the entire row area, but just the text. - Fix: An IJDBCCalculator with properties assigned using 'from' fails because the JDBC provider is null. - Fix: Combos for references in list filter ignore order defined in @DescriptionsList. - Fix: Reloading page produces "Editor not available" error in charts. - Fix: Second level references with @DescriptionsList do not show the combo for filtering in list. - Fix: A qualified properties in a list fails when the simple name of the property is used in other part of the full qualified name. - Fix: Apostrophes incorrectly shown in search dialog title in Spanish. - Fix: Saved chart configurations are not restored. - Fix: Transaction marked as rollbackOnly in element collection with default calculator that use JPA. - Fix: @ReadOnly in list with @OrderColumn can be reordered by the user. OpenXava 5.3.1 (2015-6-29) -------------------------- - Eclipse workspace included in distribution upgraded to Eclipse Mars, though it still works fine with older Eclipse versions. - Template project generates a project configured for HSQLDB for easy startup. - start-hsqldb.bat/.sh no longer need the JAVA_HOME environment variable. - HSQLDB jar moved from OpenXavaTest to OpenXava. - generatePortlets ant target works for WebSphere Portal 8, generateWebSpherePortal8Portlets is no longer needed. - Fix: Memory leak after calling charts. - Fix: Charts fail when the first list column is a numeric property of a reference. - Fix: @ReadOnly does not work for views with inheritance inside groups or sections. - Fix: Update schema tool does not create images table for IMAGES_GALLERY estereotype. - Fix: Infinite loop when generating PDF or any other list action from a collection inside a section of a reference. - Fix: Portlet application cannot be deployed on Liferay 6.0 and 6.1. - Fix: Boolean property with read only checkbox in Spanish has always false as value, even if it's checked. - Fix: Drag and drop in @ElementCollection with @OrderColumn after adding several rows fails. - Fix: Checkboxes in element collections are too bigs. - Fix: Ordering rows in @OrderColumn collections does not work in touch screens. - Fix: Moving and resizing columns in list in collection does not work with touch screens. - Fix: Removing a second row removes all rows until the end with element collections. - Fix: Removing a row after adding several rows remove all rows after it in element collections. - Fix: OpenXava does not work in Android tablets. - Fix: Schema update does not work with Hibernate Envers. - Fix: @ReadOnly with @ElementCollection makes the data lost when saving. - Fix: @SearchAction is ignored the second time when inheritance is used in the reference. - Fix: Search key with default value calculator cleared in element collections. - Fix: Filtering list with a reference as descriptions list with composite key that includes other reference fails. - Fix: Default scale is ignored with XML components. - Fix: The time part is not exported to Excel for stereotype DATETIME with a java.util.Date property. - Fix: Filtering in list does not work for stereotype DATETIME with a java.util.Date property. - Fix: Spanish format for dates in Excel generation, even if the locale is not Spanish. - Fix: Some custom reports frozen in some databases, such as MS SQL Server. - Fix: @OrderColumn with java.util.Collection allows the user reorder when the order is not persisted. OpenXava 5.3 (2015-5-18) ------------------------ - Charts generated automatically from list data. - A List annotated with @OrderColumn can be sorted by the user with drag & drop. - JPA 2.1 (JSR-338) support. - Bean Validation 1.1 (JSR-349) support. - Combo has no blank option in enum properties with @Required. - New properties startInLastVisitedModule and rememberVisitedModules in naviox.properties. - Default controllers.xml in new projects. - @RemoveSelectedAction available for @ElementCollection. - New method assertValidValueExists() in ModuleTestBase. - Hibernate upgraded to 4.3.9. - Hibernate Validator upgraded to 5.1.3. - HSQLDB used in sample projects upgraded to 2.3.2. - Classic Hibernate Validator (3.1) dropped. - Ant target updateSchema no longer supported for XML components. - Automated Business Logic (ABL) library dropped. - Fix: Creating a new element in a collection with @OrderColumn fails. - Fix: Obsolete hibernate namespace. - Fix: Disabled dialogs using Liferay 5.1 style. - Fix: Apostrophes in messages missing sometimes. OpenXava 5.2.1 (2015-3-2) ------------------------- - Methods showDialog(), closeDialog(), showNewView() and returnToPreviousView() available from OnChangePropertyBaseAction. - New removeBlanks() method in Strings utility class. - Entity from View has nulls for non-existing references, before they were empty objects. - Fix: Reference with calculated property in an entity is cleared after modifying a collection in the same entity. - Fix: View.addValues() does not keep original values in subviews. - Fix: Sort and filter lost in collections after editing/viewing an element with a dialog. - Fix: ArrayIndexOutOfBoundsException trace in tab with calculated properties. - Fix: Misleading message "Trying to load controller twice" in the log. - Fix: Apostrophe used in labels files is not shown in tooltips. - Fix: Several except-for-tab in tabs-default-values fails. - Fix: Calling getView().getEntity() when there is an element collection in the view fails. - Fix: helpPrefix from xava.properties does not work for external URLs. - Fix: It is possible to add programmatically the same action several times. - Fix: View.getEntity() fails when there is an empty reference in the UI. - Fix: Dialog is not shown from an @OnChange action. - Fix: Dangerous JavaScript content possible in list mode by a XSS attack. - Fix: An IForwardAction from an IChainAction with on-init=true does not do the forward. - Fix: Collection customization is not stored permanently if @ListProperties is used. - Fix: DWR signature warning in log. - Fix: View.getEntity() when creating does not load the references so combo descriptions are not available. - Fix: FILES stereotype fails from embedded reference. - Fix: XSS protection does not include iframe and window.location. - Fix: Error "i.contentWindow is null" on closing a dialog with HTML_TEXT stereotype. - Fix: Frames for groups with blanks in their name do not open and close. - Fix: Section and group names with blanks produces some misbehavior. - Fix: A reference to parent cannot be changed in a composite structure. OpenXava 5.2 (2015-1-26) ------------------------ - Moving columns in list with drag and drop. - Removing a column from a list is done instantly and with a fade effect. - The list for adding columns to a list is shown inside a dialog. - The list for adding columns to a list no longer uses pagination, but a scrollbar. - The list for adding columns to a list shows only until second level properties at first, and all properties on demand. - The list for adding columns to a list is ordered by the localized column labels of the properties. - The list for adding columns to a list no longer shows the internal properties names. - Fade effect to show/hide the filter part of the list and the customization icons. - Using JavaScript to show/hide the list customization icons, without an AJAX request. - List customization icons are hidden automatically after executing any action. - 20% performance improvement in automated module tests. - HtmlUnit upgraded to 2.15. - jQuery UI upgraded to 1.11.2. - jQuery upgraded to 1.11.2. - Upgraded Commons Lang3 library to 3.3.2. - New move() method in XCollections utility class. - The browser property in xava-junit.properties is no longer supported. - New createWar ant task included by default in new projects. - Frame spacing when several frames in a row adjusted. - Performance improvement for label resolution. - Fix: After removing a column from a list the filter data is gone. - Fix: Test code does not work after calling ModuleTestBase.logout(). OpenXava 5.1.1 (2014-11-24) --------------------------- - New isNumeric() method in Strings utility class. - Some new common use labels to be used in applications. - Fix: It does not work with WebSphere Portal (broken since v5.0). - Fix: Required icon is not shown for descriptions lists. - Fix: Too much space between UI elements when a descriptionLists is located after the first column. - Fix: Accessing to an application from a mobile device shows a resource not found page. - Fix: Collections do not fill all the available width and the wasted space grows when resizing. - Fix: The list does not fill all the available width with the new OpenXava 5 style. - Fix: Look & feel for progress bar of takes-long actions does not match the new OpenXava 5 style. - Fix: Progress bar is not shown when a takes-long action is called from a dialog. - Fix: The state of a frame is not stored if its name is too long. - Fix: Entering alphabetic values for filtering numeric data in list generates a generic system error. - Fix: Top bar module links displaced when the page is customized adding content on top. - Fix: Module search does not work with uppercase letters. - Fix: Ugly horizontal scrollbar when there are many modules in top menu. - Fix: Many actions on bottom of the view are ugly. - Fix: Visual defect in links for changing mode. - Fix: Help link too close to mode links. - Fix: Style for selected row hides the line separator. - Fix: Totals in element collections are not recalculated after removing a row. - Fix: After removing a line from an element collection events and calculated properties do not work in the collection. - Fix: Reloading page after removing a line from an element collection leaves a blank line. - Fix: Error on searching and adding references in embedded classes with sections. OpenXava 5.1 (2014-10-21) ------------------------- - @NoSearch supported for references in embeddable classes of element collections. - @ReadOnly and @EditOnly supported for @ElementCollection. - @OnChangeSearch supported for references in embeddable classes of element collections. - @OnChange supported in embeddable classes of element collections. - @SearchListCondition supported for references in embeddable classes of element collections. - @SearchAction supported for references in embeddable classes of element collections. - Search action for references available in element collections. - Support for @DescriptionsList references in element collections, including dependent ones. - @DefaultValueCalculator support in @ElementCollection. - Improving AJAX behavior for element collection, with x10 improvement in responsiveness. - Reference data fetching in element collections optimized. - Searching references by @SearchKey properties in element collections. - New stereotype FILES for attaching several files to an entity. - @DefaultValueCalculator is executed each time that the properties in @PropertyValue(from) change. - Look and feel for totals in lists and collections improved. - Java 8 support. - FirstSteps content changed. - French messages improved. - Showing messages in log for annotation misuse in element collection. - Methods assertEditableInCollection() and assertNoEditableInCollection() of ModuleTestBase work for any type of collection. - New assertValidValuesCountInCollection() and assertValidValuesInCollection() methods in ModuleTestBase. - Some new common use labels to be used in applications. - Fix: Not numeric totals are not well aligned. - Fix: Totals are not well aligned after column resizes. - Fix: Summation icon in list not correctly aligned. - Fix: ModuleTestBase.assertLabelInList() does not work with element collections. - Fix: The xava:descriptionsList JSP tag only works from some folders. - Fix: Editor resizing in element collections only works for text input fields. - Fix: ModuleTestBase.logout() fails with the built-in security. - Fix: ModuleTestBase.login() fails with a language other than English. - Fix: @DefaultValueCalculator with dependent properties is executed twice sometimes. - Fix: Portlets from iPad does not work in Liferay. OpenXava 5.0.1 (2014-7-14) -------------------------- - Focus navigation improved for list filter fields. - Date format in editors with date and time improved for Catalonian and French. - Some new common use labels to be used in applications. - Fix: Module as key in i18n labels file breaks the name and module description resolution for all modules. - Fix: Message of ValidationException from setter not shown to the user on create. - Fix: Labels placed incorrectly in properties not in the first column. - Fix: Incorrect properties alignment in some cases. - Fix: Icons in properties with label format SMALL are shown on left instead on top. - Fix: Too much space between UI elements. - Fix: Unique constraint custom message is not displayed with embedded classes. - Fix: When focus lost with tab key from a date field in the list filter part of the date field is hidden. - Fix: Two collections in the same row are wrapped with a very ugly frame. - Fix: In DateTimeSeparatedCalendar editor when the time is not specified the value is null, even if the date exists. - Fix: Entering 2 digits for year in editors with date and time creates a date of first century. - Fix: XML component applications without persistence.xml does not start with OpenXava 5. - Fix: @AssertTrue fails with @Id and @GeneratedValue(strategy=GenerationType.AUTO) used in an embedded collection. - Fix: GROOVY_DSL_SUPPORT problem compiling with Eclipse in some machines. - Fix: Dates in descriptions list not well formatted, really it used just toString() for all data types. - Fix: Property label definition in XML components takes preference over i18n files. - Fix: View.getCollectionSelectedValues() and CollectionBaseAction.getMapsSelectedValues() do not return all displayed column values. - Fix: Totals are not recalculated with element collections sometimes. OpenXava 5.0 (2014-6-9) ----------------------- - New look and feel. - Login/logout functionality. - Module navigation: Left searchable menu with all modules and top menu with recently used modules. - Collections editable at cell mode, like a spreadsheet, available for @ElementCollection. - All collection elements and the container entity are persisted at once, available for @ElementCollection. - @ElementCollection of JPA 2 supported. - New renderer engine to layout the user interface. - Look and feel of date editor improved. - Several reports in one PDF with the new JasperConcatReportBaseAction. - @Collapsed annotation to initiate collections and references with the frame closed. Also allowed in XML components. - New NoCustomizeList controller for disabling list customization to a specific module. - New stereotype FILE for attached files, it can store the files in DB or file system. - The user can share a report of 'My reports' with all other users. - New Addons project added to distribution to contain extended features outside of the OpenXava core. - New InvoiceDemo project added to distribution. - Groovy upgraded to 2.2.2. - JasperReports upgraded to 5.5.1. - DWR upgraded to 2.0.10. - JSTL upgraded to 1.2 using Apache Standard Taglibs 1.2.1. - JavaMail upgraded to 1.5.1. - Upgrade of commons libraries to: beanutils 1.8.0, logging 1.1.1, digester 2.1, codec 1.9, fileupload 1.3.1, io 2.4, lang 2.6, validator 1.4.0. - Upgrade to Servlet 2.5 and JSP 2.1. - Added Commons Lang3 3.2.1 library. - Tomcat 7 included in distribution. - Dropped IE6, IE7 and IE8 support. - Using module.jsp to execute modules from browser is no longer supported. - Dropped Java 5 support, from now on Java 6 or better is required. - Dropped WebSphere 6.1 and WebSphere Portal 6.1 support. - Dropped Tomcat 5.5 support. - Removed jakarta-oro library, only used by older commons-validator. - ejb.jar and jpa.jar added to WEB-INF/lib to facilitate deploying in Tomcat. - MiEscuela project removed from distribution. - AccessTracking removed from OpenXava distribution. - Objects class from org.openxava.util removed, you can use XObjects instead. - New is/setCollapsed() methods in View to close a frame of a reference or collection programmatically. - Added validateMinimum() and validateMaximum() to CollectionElementViewBaseAction. - New getPopupPDFPageCount() method in ModuleTestBase. - New methods setValueInCollection(), assertEditableInCollection() and assertEditableInCollection() in ModuleTestBase. - New method noFirstTokenWithoutFirstDelim() in Strings. - When @Digits is specified default scale is ignored even if fraction is not specified. - Performance of delete action in detail mode action improved. - Improved behavior with READ COMMITED isolation level. - New commit() and rollback() methods in BaseAction. - Methods Is.emptyString() and Is.emptyStringAll() allow infinite number of arguments. - clearCondition() method removed from ModuleTestBase. - Fix: Double border when using .ox-frame in the CSS with new renderer. - Fix: Totals in collections frames are not shown with the new renderer. - Fix: assertListRowCount() method from ModuleTestBase fails when the value of summationInList property is false. - Fix: Subcontrollers fails in split mode. - Fix: Incorrect encoding in emails sent by Emails class. - Fix: Members inside @NoFrame are not aligned with the outside members. - Fix: Incorrect default size for java.lang.Boolean. - Fix: View broken on reload if the module is inside a HTML table. - Fix: Simple property after group without ; does not layout correctly. - Fix: A reference with @NoFrame inside a group produces an ugly layout. - Fix: Error messages for @Size in collections show 'Element' in English always, even if English is not used. - Fix: Top field with little margin on top with the new renderer. - Fix: Html id for frames not correct for references with new renderer. - Fix: Properties aligned by column when it should not in the new renderer. - Fix: Property icons are not aligned correctly with the new renderer. - Fix: Scale defined in default-size.xml is ignored when formatting. - Fix: Scale definition from @Column and @Digits is ignored when formatting. - Fix: The @LabelStyle annotation is not supported with the new renderer. - Fix: Boolean inside a group in the parent view using view inheritance fails when clicking on new from detail mode. - Fix: When resizing dialog inside elements can go outside dialog (fixed in the new style). OpenXava 4.9.1 (2014-2-3) ------------------------- - Fix: Opening a dialog resizes the list and collections. - Fix: In PDF reports the space for headers sometimes is two lines where there is only a line of text. - Fix: In PDF reports the more left column sometimes is out of the report, in the margin. - Fix: Calendar is not shown when entering dates in 'My reports'. - Fix: ModuleTestBase.assertDescriptionValue() does not work for enums. - Fix: It's possible to add blank colums in 'My reports'. - Fix: true is shown always for boolean columns in 'My reports'. - Fix: Populating initial values in 'My reports' fails for booleans, descriptions lists and enums. - Fix: When overwriting associateEntity() in SaveElementInCollectionAction we lose the validate minimum functionality. - Fix: Minimum for collections declared with @Size(min=) is not validated on remove elements. - Fix: Adding elements to a collection with no cascade REMOVE or ALL does not validate maximum (@Size(max=)). - Fix: Two collections in the same row are not well displayed with the new renderer. - Fix: @LabelFormat(LabelFormatType.SMALL) is not working under the new renderer engine. - Fix: CSS ox-label class ignored by the new renderer. - Fix: Several frames in the same row with the new renderer are too close or even overlapped. - Fix: The new renderer fails with a section with two references. - Fix: Mark for required field is not shown with the new renderer. OpenXava 4.9 (2013-12-11) ------------------------- - Combos and textfields in list filtering adapt their widths to the column and they are always completely visible. - 'in group' and 'not in group' (the 'in' of SQL) allowed to filter in list, collections and 'My reports'. - Link to hide filter is in the filter row itself. - Links to show and hide the filter are only visible in customization mode. - New icons for customizing list and collections. - Paging in list and collections allows 12 rows per page. - PDF reports with no data show a page with an informative message instead of an empty report. - Long labels in automatic PDF reports can use several lines if needed. - Automatic PDF reports use qualified labels for column header, just as list mode. - Detail line height optimized for automatic PDF reports. - Algorithm to adjust columns in PDF reports optimized: right column is better adjusted and columns that not fit are dropped. - Width of columns in automatic PDF reports is calculated from the real content, not from declaration. - The combo for adding columns in 'My report' only shows until second level properties by default. - Labels instead of internal names in combo for adding new columns in 'My reports'. - Initial condition and ordering for 'My reports' is populated from the current list. - Duplicate columns allowed in 'My reports' to filter by range or complex conditions, though only one is shown in the report. - Dialog title of 'My reports' column editing improved. - Refactoring of 'My reports' code (CustomReport renamed to MyReport) that produces the loss of current store user reports. - @AssertTrue message can be customized, even values of properties of the current entity can be used. - When a ConstraintViolationException is thrown the message to the user is obtained from the constraint definition. - @Size validation annotations produces a more significative message. - Support for multivalue editors with checkboxes. - It's possible to exclude the HTML head code when calling a module using htmlHead=false as argument. - Order for properties when no @View is defined is consistent for all Java vendors. - Subcontrollers are not shown when they have no action. - Style of subcontrollers improved. - Subcontrollers behavior improved: now they are closed on clicking again on the button or outside the popup menu. - Code for buttonBar.jsp and subButton.jsp downgraded to Java 1.4. - New TypicalNewOnInit controller that starts the module in detail mode ready to create a new entity. - New methods addDays(), lastOfYear(), lastOfMonth() and firstOfMonth() added to Dates. - Fix: Methods setYear(), setMonth() and setDay() of Dates do not work. - Fix: Wrong OpenXava version number when using some third party libraries. - Fix: Filtering in list by Timestamp or DATETIME does not allows to specify the time part. - Fix: Totals in automatic PDF reports use two lines when the number is too large. - Fix: Little vertical white bar in subcontroller button. OpenXava 4.8.1 (2013-9-30) -------------------------- - OpenXavaTest now includes Selenium tests for visual testing of views. - It's possible to add JavaScript functions to release resources to editors. - New method hasTime() in Dates. - TLDs moved from openxava.jar to openxava.tld in WEB-INF (to work with Tomcat 7 + Eclipse WTP in Windows). - Some new common use labels to be used in applications. - Fall-back encoding now is UTF-8 (before it was ISO-8859-1), however it still tries to use the system encoding first. - Fix: Calling to View.getEntity() when the view has view properties fails (only for XML components). - Fix: Time part of Timestamp properties cannot be used for filtering in list. - Fix: Application does not start with Tomcat 7 inside Eclipse in Windows. - Fix: @OnChange actions do not work in both mode. - Fix: HtmlText editor produces a JavaScript error when changing the mode or section. - Fix: Adding and removing elements in the not owning side of a @ManyToMany collection does not work. - Fix: Pressing ENTER from a numeric field does not execute the default action. - Fix: Clearing the view does not put the focus in the correct place when the action is called from a keystroke. - Fix: An on-change action can be execute twice sometimes from tests. - Fix: When in a test a setValue() throws an on-change action then next execute() fails sometimes. - Fix: The setConditionValue() method of Tab fails with dates. - Fix: Hibernate @Type annotation fails when a @TypeDef is used as name. - Fix: The setHidden() method of View does not work with sections. - Fix: 'My reports' when tab name is too long fail. - Fix: Clear condition in list hide some combos (enum, boolean and descriptionsList). - Fix: Subcontrollers do not change when the container controller is changed by code. - Fix: Subcontrollers do not show the actions according the mode (list, detail or both). - Fix: Using getSelectedObjects() from an @OnSelectElementAction in calculated collections fails. - Fix: When there are selected rows 'My reports' prints only the selected ones. - Fix: Ignoring accents for string arguments in the filter fails on some machines. - Fix: Combining @OneToOne and @OnChange produces a 'Duplicate Component' error. - Fix: Floats and doubles are truncated on display. - Fix: # in root view with groups in the view does not work. - Fix: # in groups and sections to align by columns does not work. - Fix: XML component with a validator that uses 'from' fails if the view has a view property. - Fix: Links of several actions associated to the same property are too close. - Fix: Incorrect encoding in the first page load. - Fix: Removing a property of a stored 'My reports' report does not work. - Fix: Some labels for 'My reports' are not translated. - Fix: New (still BETA) renderer failed to align by columns in section. - Fix: Some groups or properties overflowed the view with new (still BETA) renderer. - Fix: Collections and group within the same line were displayed too close with new (still BETA) renderer. OpenXava 4.8 (2013-7-23) ------------------------ - In controllers.xml you can define 'subcontroller' that will show a drop-down button with nested actions. - The user can modify the column labels in 'My reports'. - The columns shown in 'My reports' use the labels instead of the property names. - Hidden columns in 'My reports', they can be used for filtering and ordering but are not shown in the report. - The default value for comparators in 'My reports' is '=' or 'starts with'. - Combos for @DescriptionsList references in 'My reports'. - Generate Excel action available from 'My reports' dialog. - Summation for columns allowed for 'My reports'. - Report file name for 'Generate PDF', 'Excel' and 'My reports' is the report title. - Booleans in list and collections are rendered with a green check sign. - On choosing a combo in list the filtering is executed automatically (it can be deactivated with filterOnChange=false). - Calendars are shown in filters for date types in list and collections. - Bulgarian translation of JavaScript calendar with UTF-8 character encoding. - New setLabel() method in Tab to change the column labels programmatically. - New CurrentMonthCalculator. - Export to excel (CSV) exports null as empty strings. - New MAC stereotype for MAC address. - New filter condition "Ends with" for list and collections. - New layout engine improved again, though it's not activated by default it's almost ready for production. - New refreshAfter property in SaveAction to not refreshing from database after saving. - Width ratio for collections depends on style, to better definition of custom styles. - CSS class frame renamed to ox-frame. - New CSS class ox-images-gallery to define the visual style of images gallery editor. - Fix: reference.jsp left an open tag when using alternate renderer. - Fix: descriptionsEditor.jsp had a no terminated input tag. - Fix: Labels for qualified properties in 'My reports' PDFs do not match labels in screen list. - Fix: Connection leaks produced in the first page load. - Fix: Pressing ENTER in a view with a JavaScript calendar shows the calendar and does not execute the corresponding action. - Fix: Opening a dialog after adding or removing actions in list fails to show the controllers. OpenXava 4.7.1 (2013-5-28) -------------------------- - New alignedByColumns property in xava.properties to aligned all the members by columns in the user interface. - Support of # for root view, also available as aligned-by-columns for classic XML components. - Images gallery editor uses a dialog. - Russian documentation improved. - New layout engine improved again, though it is still in BETA it is perfectly usable. - New generic controller Close useful for dialogs with just a close button. - On closing a dialog if it has an action named return, volver, close or cerrar, the action is called automatically. - Counter injected in IAggregateOidCalculator now is a random number. It only applies to XML classic components. - Gallery.removeImage action asks for user confirmation. - New clearCondition() method in Tab, to clear the condition values and comparators. - Some new common use labels to be used in applications. - Fix: Adding images to a gallery from a dialog produces a JavaScript error. - Fix: Methods assertDialog(), assertNoDialog(), assertDialogTitle(), closeDialog() of ModuleTestBase fail after upload a file. - Fix: Title for dialogs with no associated model has an unneeded hyphen. - Fix: Dialog titles are lost when closing dialogs after upload a file from a dialog. - Fix: When elements are hidden or shown inside a dialog the dialog width is not adjusted. - Fix: With two embedded collections of the same type adding to the second collection adds the element to the first one. - Fix: View.getValues() returns only a copy of the first tree level, so it produces some lateral effects sometimes. - Fix: If updating an entity fails referenced objects can be left created. - Fix: Filters in collections are stored between elements. - Fix: A ValidationException (both org.openxava and javax.validation) from a callback method shows an ugly message to the user. - Fix: It loses the added or removed actions in the list when you change to the detail mode. - Fix: Grammatical errors in English messages. - Fix: Date in footer of PDF reports is formatted using server locale instead of client locale. - Fix: Composite structure fails when the parent reference is not named as the entity. - Fix: Checkbox editors for non-boolean values does not work. - Fix: Polymorphic reference from a base class fails. OpenXava 4.7 (2013-4-2) ----------------------- - ExtendedPrint.myReports stores all the generated reports, so the user can get them by name later. - WebSphere Portal 8 support including visual style integration. - WebSphere 8 support. - Liferay 6.1 support. - 30% performance improvement in automated module tests. - Action ExtendedPrint.customReport renamed to ExtendedPrint.myReports. - New smtpHostTrusted property in xava.properties to use email servers with expired certificates. - If a session object has a request property, the current request is injected before injecting the object into the action. - Date formatting optimized for French. - New protected method saveCollectionElement() in SaveElementInCollectionAction to refine behavior. - Shell scripts to start HSQLDB manager from command line. - Data in automatic PDF reports is formatted in the same way as in list. - New layout engine improved again, though it is still in BETA and deactivated by default. - User preferences support creating and removing subnodes (from Preferences Java API). - Fix: web.xml is not Servlet 2.4 compatible, though OpenXava uses Servlet 2.4 since v3.1. - Fix: Sometimes columns customization for collections is not stored. - Fix: Report title is not shown for automatic PDF reports in some machines. - Fix: Many standard i18n messages do not show correctly apostrophes. - Fix: In custom reports filters gt_comparator is shown instead of > with Spanish. - Fix: @ManyToMany collections fail after removing one of the elements. - Fix: Selected rows are lost when you do a order by any property, a page change, etc. - Fix: When combining filter and order in custom report, filter is ignored. - Fix: Confirm message for actions associated to properties incorrect. - Fix: View.setModel() does not refresh collections. OpenXava 4.6.1 (2013-1-9) ------------------------- - New IWithMessage to be implemented by validators to get the messages from @Required, @PropertyValidator and @EntityValidator. - New layout engine improved, though it is still in BETA and deactivated by default. - Fix: @Inject does not work in "on change" actions. - Fix: Impossible to store column width in collections inside @AsEmbedded references. - Fix: Default size not correct for TELEFONO stereotype. - Fix: Clicking in the current mode with IE8 goes to a nonexistent page. - Fix: Named reference view for reference with inheritance switches to DEFAULT. - Fix: HTML_TEXT fields don't preserve content after recalculation. - Fix: Second level dialogs are shown very narrow with IE9. - Fix: Mouse over list rows in IE9 moves the bottom button bar. - Fix: Removing first column in custom reports fails. - Fix: Removing selected columns in custom reports fails. - Fix: Obtaining selected object from a calculated collection fails with transient elements. - Fix: Attribute message of @Required is ignored. - Fix: Incorrect validation message from PositiveValidator. - Fix: Messages in i18n files with no arguments are not formatted in the standard way. - Fix: Thai MS874 encoding fails with IE. - Fix: Custom reports fail with XML components if persistence.xml is not defined. - Fix: Valid values do not work in custom reports With XML components. - Fix: Duplicate dialog title in custom report. - Fix: Incorrect title on reloading custom report dialog. - Fix: Valid-values values are not kept when a column is edited in custom report dialog. - Fix: Comparator values are not kept when a column is edited in custom report dialog. OpenXava 4.6 (2012-11-21) ------------------------- - Custom reports in list mode that allow user define its own reports using a dialog. - New attribute editor in @Tab to define an editor for a tab. Also available for XML version with . - In editors.xml it's possible to associate an editor by default for all tabs or for tabs of certain models. - New @RowAction annotation for collections (also available as row-action in XML components). - Labels and messages available in Russian. - The report names include model name and time, for automatic and custom reports in PDF, CSV, RTF, ODT and Excel. - New property model (setModel()/getModel() in View for populating a View directly from a model object (an entity or transient class). - BooleanFormatter parses null as null and not as false, so Boolean values can be true, false or null. - It's possible to assert PDF content in jUnit tests with new 6 methods of ModuleTestBase, such as assertPopupPDFLine(). - New setTitle(), setConditionValues() and setConditionComparators() methods in Tab. - New BooleanYesNoCombo editor to show booleans with a YES/NO combo. - In list mode focus is placed in the first filter text box. - Many new common use labels to be used in applications. - New property 'showIconForViewReadOnly' in xava.properties to view or not the key and required icons in read only views. - New methods assertAction/assertNoAction(String action, String arguments) in ModuleTestBase. - It's possible to add custom portlets by means of portlet-ext.xml and liferay-display-ext.xml. - Fields version and versionDate of ModuleManager now are private. - Fix: @Size(max=x) fails with Save and Stay - Fix: OpenXava 4.5.1 fails in WebSphere 6.1. OpenXava 4.5.1 (2012-9-11) -------------------------- - Focus order only include editors. Actions, links, tabs, etc. are excluded. - SimpleHTMLReportAction extends SimpleTemplaterAction to be able to use SimpleTemplater in mails. - Documentation for @Tree improved. - Fix: Focus is not set in the first load of detail only modules. - Fix: Navigating among objects with references with inheritance produces system error. - Fix: New in a model with a reference with inheritance does not reset the reference view to the base model. - Fix: Searching from a reference with inheritance does not always show all the objects of the hierarchy. - Fix: resetAfter=false for saving fails when inheritance is used in references. - Fix: Tree editor cannot add child node without @GeneratedValue. - Fix: SimplerTemplaterAction does not return booleans. - Fix: SimpleTemplater does not work for empty collections. - Fix: SimpleTemplater better detect in which cases not to insert
instead of new lines. - Fix: Tree editor failed to look up properties in property-based entities. - Fix: Base Style generates a tr with no td in sections, so it fails with IE. - Fix: Bad layout for + and X icons in frame of images gallery. - Fix: Liferay column resize not stored permanently. - Fix: Fails on save the second object when id is inside a group. - Fix: Labels qualified with entity name (MyEntity.myProperty in i18n file) are not used in list mode. - Fix: Tooltip not recognized when defined qualified in i18n file, that is using: MyEntity.myProperty[description]. - Fix: Searching a reference with several @SearchKey does not work if some key field has an event associated. - Fix: Removing a column from the list after filtering produces "Errors trying to obtain data list". - Fix: Adding an element in a collection in split mode changes the main module list by the collection list. - Fix: Changing list row count in a page other than the first one shows the incorrect page. - Fix: Image for showing/hiding filter in list in collection is broken with 2 collections in a dialog. - Fix: Popup calendar for dates fails in Chinese. - Fix: Fails on Tomcat with unpackWARs="false". - Fix: Duplicate div on load collections via AJAX. OpenXava 4.5 (2012-7-18) ------------------------ - Support for all strategies of JPA inheritance mapping. - Data for list and collections is obtained via JPA, before JDBC was used. - Automated Business Logic (ABL) library added. - All new layout architecture (the code that paints the UI). It still in BETA but can be activated with layout.painter in xava.properties. - New TypicalNotResetOnSave controller available. - AJAX performance improvement in collections: when selected elements change but data remains the same, only the selection is refreshed. - @OnSelectElementAction does not refresh its collection by default, it improves dramatically performance in some cases. - Improvements in Italian i18n files. - New utility class XArrays. - It's possible to define more easily styles with the file custom.css. - Hibernate upgraded to 3.6.10. - New property messagesOnTop in xava.properties to show the messages in the top or in the bottom of the user interface. - New methods add/removeActionForProperty() in View for adding actions to a property dynamically. - New calculators: CurrentUserJobTitleCalculator, CurrentUserMiddleNameCalculator, CurrentUserNickNameCalculator, CurrentUserBirthDateYearCalculator, CurrentUserBirthDateMonthCalculator and CurrentUserBirthDateDayCalculator. - New properties in UserInfo: jobTitle, middleName, nickName, birthDateYear, birthDateMonth and birthDateDay. - It's possible to define different parameters for each report in JasperMultipleReportBaseAction. - Fix: Link to CSS null when running inside portal. - Fix: Fails in WebSphere 6.1. - Fix: Message 'Delete record on row x...' shows the incorrect row number. - Fix: Navigation with key value 0. - Fix: Navigation with hidden key and view with nested sections. - Fix: Default pdf and excel when the filter list needs the user name. - Fix: on-select-element-action missed in component.dtd. - Fix: Some methods of ModuleTestBase for checking, unchecking and asserting checked rows fail with calculated collections. - Fix: Adding the second detail in an embedded collection when creating the second main object fails. OpenXava 4.4.1 (2012-4-25) -------------------------- - New method executeClicking() in ModuleTestBase. - Fix: Locales for portlet resource files do not match those of portlet.xml (javax.portlet.title error in liferay). - Fix: Reports with format excel produce a file called report.pdf instead of report.xls. - Fix: Tab default values are applied to collections. - Fix: If defined list formatter is used as formatter in detail mode too. - Fix: Tries to load .svn files as JS. - Fix: Calculated properties are not injected in the entity validators. - Fix: CSRF attack error in Liferay. - Fix: Keystrokes don't work until the first action is called. - Fix: Method setFocus() of View does not work for dialogs. - Fix: Report titles too long are now shown completely. - Fix: Searching from detail does not execute XAVA_SEARCH_ACTION. - Fix: Reference property with a @Formula fails in the tabs. - Fix: collections with @Condition not work well in change schema. OpenXava 4.4 (2012-3-22) ------------------------ - Totals and row count are shown in collection frames when they are folded. - Comparator 'range' added to list and collections filter. - Java 7 support. - Slide effect for hiding and showing frames. - Frames fill all the width of the view. - HtmlUnit upgraded to 2.9. - jQuery UI upgraded to 1.8.12. - jQuery upgraded to 1.5.2. - Liferay 4.1 is no longer supported. - New method setConditionValuesTo() in ModuleTestBase. - Fix: Reseting filter values does not work completely when an enum or descriptions list is present. - Fix: Liferay51 style (the default one) pointed to a non-existent JavaScript file. - Fix: List column resizing does not work with IE9. - Fix: Moving and resizing dialogs do not work with IE9. - Fix: Loading... AJAX waiting message is not visible when a dialog is shown. - Fix: Moving and resizing a dialog affect the next open dialog size and position. - Fix: Combo with a simple key (a) overlapped with a combo with a composed key (a, b) and a simple property (b) fails: Field b is not saved. OpenXava 4.3.1 (2012-1-12) -------------------------- - Fix: Reference with @AsEmbedded read the referenced object if the id has some event associated. - Fix: Dialogs do not work on IE9. - Fix: Object not found when the id is inside a section. - Fix: Parent entity is not injected in EntityValidor if the reference name does not match with the model name. - Fix: Oracle 9 maximum open cursors exceeded. - Fix: Exception on commit from a dialog disables the dialog and shows the error message in a hidden layer. - Fix: After modifying a collection calculated values that depend on a not saved value are not correct. - Fix: Loading in the View an embeddable with all the values null fails. - Fix: setHidden() of View does not work for elements of subviews. - Fix: Generating a PDF report from a collection inside a group fails. - Fix: Custom ITreeViewReader is never selected. - Fix: Redeploying in Liferay generates an ugly stacktrace about portlet title. - Fix: i18n entry not recognized if it does not exist in the default language of the server machine. - Fix: Exception saving entity with embeddable with read only members. - Fix: Popup for dates is not shown from dialogs. OpenXava 4.3 (2011-12-14) ------------------------- - Total properties in collections. - HtmlText editor now uses an embedded rich text editor instead of using a popup windows. - New methods addWarning() and addInfo() in BaseAction to produce warning and info messages. - It's possible to generate several reports from the same action by means of JasperMultipleReportBaseAction. - New IMultipleForwardAction to do several forwards to several URIs from the same action. - New SimpleHTMLReportAction to create reports from simple HTML templates. - New SimpleTemplater class to process simple HTML templates. - New getEntity() method in View class that returns the entity associated to the view. - Groovy upgraded to 1.8.3. - FCKEditor upgraded to CKEditor 3.6.2. - When a constraint violation of JSR-303 has no property path its message is shown as is to the user. - New property summationInList in xava.properties to enable or disable the custom user summation in list and collections. - OpenXava version info now is stored in a version.properties file. - New methods assertPopupCount(), assertInfo(), assertWarning(), assertNoInfo(), assertNoWarning(), assertInfosCount(), assertWarningsCount() in ModuleTestBase. - New method toList() in Strings. - Commons Lang jar added to WEB-INF/lib. - Fix: Links in HtmlEditors disappear using Firefox 3.6. - Fix: In pages with several modules javascript code for editors is executed several times causing incorrect behavior. - Fix: Customizing a collection in a module affects collections of the same element in all modules. - Fix: PDF reports fail with summation of qualified properties. - Fix: Validators defined in validators.xml of a project does not overwrite the built in ones. - Fix: Closing prepared statements twice produces errors in JBoss. OpenXava 4.2.3 (2011-9-20) -------------------------- - Properties with WebURL editor or WEBURL stereotype are shown in list as links. - Fix: Dialogs in Liferay 6 do not hide resizing gadgets of collections behind. - Fix: Images gallery does not work from a reference. - Fix: Encoding of the content of the generated hbm files does not match with the declared encoding. - Fix: On change actions and calculated properties fail in Chrome with BigDecimal values. - Fix: Loading... AJAX message is not well displayed in IE6/IE7. - Fix: Uploading files fails when using old URL notation for module. - Fix: Reference members in @Tab does not show the correct value when referenced entity and main entity map to the same table. - Fix: On IE6 and IE7 columns headers are fixed when the horizontal scroll is moved. The horizontal scroll for lists has been removed for IE6 and IE7. - Fix: NullPointerException when a getter method is missing or bad written. - Fix: Modifying an empty reference from a dialog closes the dialog and freezes the module. - Fix: Simple package name for entities (without dots) produces an exception. - Fix: Liferay 6 navigation bar changes its font size when there is an OpenXava portlet in the page. - Fix: @Editor with forViews is ignored when used inside a reference. - Fix: PDF reports fail if hibernate.cfg.xml is not present. - Fix: French i18n files contain single quote ', which prevent the {0} replacement to be done. - Fix: Argument type mismatch on saving element in nested collection with root entity with composite key. OpenXava 4.2.2 (2011-8-16) -------------------------- - JetSpeed 2.2.1 supported. - New PersistenceUnit controller and SetPersistenceUnitAction class to facilitate multi-database applications. - BaseAction no longer implements IChangeControllersAction, but still implements the change controllers related methods. - Date format improved for Catalan. - Fix: Inheritance for views does not work with transient classes. - Fix: Fixed URL for DTD of DWR files, it improves performance on Liferay deploying. - Fix: List fails when the user customize the list and afterwards the programmer removes properties from the entities. - Fix: "en" language entries are not included in portlet.xml because they are redundant with default entries. - Fix: In a cascade remove collection when trying to create an element with a embedded with a reference to an entity fails. - Fix: Changing module from dialog does not close the dialog. - Fix: Multi persistence unit applications do not work. - Fix: regenerateGenerator ant task fails. - Fix: portletLocales of xava.propeties has no effect on portlet.xml generation. - Fix: Closing a two level dialog in a module with web-view shows the root view in the dialog. - Fix: After using setControllers(), removeActions() has no effect if executed in the same action. - Fix: Creating a new collection element when all element components are inside groups fails. - Fix: @OnChange actions are executed twice inside collection elements with groups. - Fix: No focus placement inside collection elements in some cases. - Fix: Using apostrophe in HtmlText editor cut the content from the apostrophe. OpenXava 4.2.1 (2011-7-11) -------------------------- - View.setLabelId() supports qualified member name as argument. - Commons FileUpload upgraded to 1.2.2. - Removed "images/" prefix of all action definitions in default-controllers.xml, it was optional since v4.2. - English and Spanish messages refined. - New csvEncoding property available in xava.property to define the encoding of the generated CSV. - Fix: ClassCastException using a collection with cascade remove and a reference to the same entity in the same entity. - Fix: @Tab doesn't work with @AttributeOverride. - Fix: More than two levels of nested entities as embedded fails. - Fix: Loss of the selected rows when enter on the list to choose a reference. - Fix: Performance problem on iPad using list with many columns, it was produced by Flip effect, so Flip effect has been removed. - Fix: Buttons in dialogs does not respond on iPad. - Fix: Flip effect on close dialogs on iPad. - Fix: IForwardAction does not forward when used on module initialization (on-init, on-each-request or before-each-request). - Fix: Impossible to add a child in Tree editor without treeOrder. - Fix: JDBC connection leaks in some circumstances. - Fix: References marked as @SearchKey are not modifiable when the keyEditable is false in main view. - Fix: Dialog disappears adding collection elements with no chosen rows. OpenXava 4.2 (2011-6-17) ------------------------ - iPad support: when an application is accessed from an iPad a style adapted to the iPad is used. - A new custom visual style can be defined writing only a CSS file. - Top right red 'Loading...' AJAX indicator replaced by a stylized centered 'Loading...' box. - The default mode controller is defined by the style, though defaultModeController of xava.properties still exists and has preference. - Slide effect on list pagination (only for iPad). - Flip effect on changing mode (only for iPad). - Styles allow define more details about the UI behavior: isRowLinkable(), isShowPageNumber(), isShowModuleDescription(), isChangingPageRowCountAllowed(), isShowRowCountOnTop(), etc. - Each style has its own imagesFolder, so each style can define its own icon for actions, even for custom actions. - A different style can be selected by each browser type. - ValidationException now is a RuntimeException. - System encoding recognition improved. - Property labelAlign removed from xava.properties, now alignment is defined by CSS. - In action definition 'image' does not requires the folder name 'images/' as prefix. - Fix: NullPointerException validating BigDecimal null values. - Fix: Fails rendering list when the property (xava.properties) 'resizeColumns= false'. - Fix: NullPointerException stacktrace (without failing) when starting portlets in Liferay. - Fix View.setLabelId() fails when used in subviews. - Fix: NullPointerException: charsetName with Jetty. - Fix: Fails displaying collection element when the collection has a group in its view. - Fix: Fails the tab preferences when you have same model name in several applications. Added application name as discriminator. OpenXava 4.1.2 (2011-4-11) -------------------------- - Added comparator 'not contains' to list and collections filter. - New ManyToMany.edit action for updating elements from a many to many collection. - New method reload() in ModuleTestBase for simulating clicking in browser reload button. - New method createNotValidatingCollections() in MapFacade. - The user only can choose 20 rows per page at most for list and collections, in order to have a good performance. - New 'reportParametersProviderClass' property in xava.properties. It allows that you put your own code to generate the report parameters. - Photos are shown in list and collections. - jquery.qtip.js removed, this produces a 40% performance improvement in list reloading. - UrlParameters controller accepts language_COUNTRY as argument for locale. - Clear message in log when incorrect migration to OX4 from old versions. - Fix: Downloading file fails after uploading file. - Fix: Reloading the page after navigating to a module locks the module. - Fix: Bad behavior when ESC is pressed from a dialog with Firefox (now ESC is not allowed in Firefox). - Fix: radioButtonEditor does not throw change event. - Fix: @Size(min=) in collections is not recognized. - Fix: showDialog() fails when used in a module with web-view. - Fix: Composite structure using collections with cascade remove does not work. - Fix: @Required in the reference to the container class prevents saving collection elements. - Fix: Since the user changes the size of a column in a list or collection, the changes in @Tab(properties=) are ignored. - Fix: Processing box for takes-long actions is shown back when called from a dialog. - Fix: Removing a collection element from detail dialog does not ask for confirmation. - Fix: Shorting columns if the value contains '-' produces two lines in calculated collections. OpenXava 4.1.1 (2011-2-28) -------------------------- - CRITICAL FIX: List and collections are not shown inside dialogs. - Support for @PrimaryKeyJoinColumn and @PrimaryKeyJoinColumns JPA annotations in @OneToOne relationships. - Fix: Failed properties not marked in UI when using Bean Validation (JSR-303). - Fix: @Max from JSR-303 does not limit the characters that user can type in the editor. OpenXava 4.1 (2011-2-15) ------------------------ - Bean Validation JSR-303 support. - The user can add and remove summation for any numeric persistent property in list and collections. - The user can sort by several columns in list and collections. - Standard PDF reports show column summations. - Summation available for list and collections adding a + to property names. - Automatic horizontal scrollbar for list and collections for not enlarging the UI. - Hibernate upgraded to 3.6.1. - New stereotype PASSWORD/CONTRASENA. - When the model is transient the default controller-mode for the module is DetailOnly. - New methods toSet() and toSetNullByPass() in Strings to convert string lists in sets. - Added assertTotalInList() and assertTotalInCollection() in ModuleTestBase. - Removed the unused library: jboss-archive-browsing.jar. - Fix: Export to EXCEl in list mode does not work fine with Russian data. OpenXava 4.0.1 (2011-1-11) -------------------------- - New callback methods that allow to use JPA inside them: @PreCreate, @PostCreate and @PreDelete. - Groovy can be use for calculators and validators of XML components. - New getMethodsAnnotatedWith() method in Classes utility class. - Boolean and bool has no default converter. - In conditions if you put a model name inside ${ } it is changed by table name. - Added setConditionValues(List ) and setConditionComparators(List ) in ModuleTestBase to be used with Groovy. - New after-each-request option for in controllers.xml. - IForwardAction allows to forward to javascript code, using javascript: as prefix. - New listeners.xml in WEB-INF for defining listeners. - Fix: Tomcat start/stop script leaves directory in windows. - Fix: @AsEmbedded delete action only works when container reference name matches container model name. - Fix: @AsEmbedded does not hide reference to parent. - Fix: getView() from a CreateNewElementInCollectionAction does not return the main view. - Fix: Reference actions not shown with a @ReadOnly @SearchKey. - Fix: Entity validator fails when a property name of the entity matches container entity name. - Fix: Validators run more than once. - Fix: Descriptions list of a reference with multiple key with some values with blanks. - Fix: Filtering by boolean in list when column is boolean fails with some databases. - Fix: Fails on save list/collection preferences when the tab or collection name is too long. - Fix: Descriptions list of a reference with nested composite keys fails on save. - Fix: "List.filter" action present in bottom in detail only modules with before-each-request actions. - Fix: @DescriptionsList notForTabs, it does not work with 'DEFAULT'. - Fix: Character & not supported in condition of descriptions list. - Fix: doesn't work in a custom view when it is not the main module view. - Fix: Converter was not applied to descriptions list parameters. - Fix: Depends condition for Enum from a descriptions list is not working. - Fix: TreeView editor does not work in Liferay 6. OpenXava 4.0 (2010-11-22) ------------------------- Main new features over 3.1.4 for developers: - Groovy support. - JPA 2.0 support. - Support for JSR-330, the Java standard for dependency injection. - Dropped support for EntityBeans CMP2. - Dropped support for Java 1.4. From now on OX requires Java 5 or better. Main new features over 3.1.4 for the users: - New mode 'split' (labeled as "Both") in addition to already existing 'detail' and 'List' modes. - The user can minimize and restore any frame, storing the frame status by user. - Delete action for collections and list is shown in each row. - More intuitive 'search' action. Now it uses a dialog to ask for the search data. - The user can resize the column widths for list and collections using the mouse, and the values are persisted by user. - Tooltip for cells in list and collections. - References as combos to filter in list mode. - Clicking on any part of the row, for list or collection, goes to the detail. - Popup dialogs supported. - Collections use dialogs to edit, add and remove elements. - A dialog is used for searching, creating or modifying a reference. - New checkbox in list to select and deselect all rows at once. - The user can change the row count of list and collections, and the setting is stored by user. - Improved look & feel of page navigation for list and collections. - Visual style of button bar improved. For the full list of new features see below the notes for the versions from 4m1 to 4m6. OpenXava 4m6 (2010-11-10) ------------------------- - Groovy support. - Liferay 6 supported, including look & feel integration. - JPA 2.0 support: Hibernate upgraded to 3.6.0. - Friendly URL for modules, like this: /MyApplication/modules/MyModule. - Visual style of button bar improved, including showing the label for each action. - More intuitive icons for navigation. - Labels are aligned by default to right. For aligning to left use labelAlign=LEFT in xava.properties. - Default action is shown as first button in bottom button bar, even if it is already in top button bar. - New editor DocumentLibrary (and stereotype DOCUMENT_LIBRARY) to have a group of documents stored in Liferay Document Library. - New mapped superclass Identifiable with a UUID id, to use as base class for entities. - Default size for columns optimized in list and collections. - Russian documentation improved. - It's no longer required to put the entities in a package named 'model' or 'modelo'. Any package name is valid for entities. - Minor changes to TreeView to optimize performance. - @OneToMany(orphanRemoval=true) supported: if an element is removed from a collection the element is deleted from database. - New showLabelsForToolBarActions property in xava.properties. - New possible value "almost-never" for by-default attribute of inside controllers.xml. - New 'ignoreAccentsForStringArgumentsInConditions' in xava.properties. It finds records whether you're looking for 'camión' or 'camion',... - New setModuleDescription() method in ModuleManager that changes the portlet title. - Emails: Sending attachments added. - Help icon obtained from container portal. - New saveAndStayForCollections property in xava.properties to choose if the button for save & stay will be in collection element dialog. - New setConditionValue() method in Tab for setting the value for the list condition programmatically. - Removed the Hibernate dependent code from AnnotatedClassParser, so now it's possible to use other JPA providers. - Methods getProperty() of ModuleTestBase renamed to getXavaJUnitProperty(). - Clear stacktrace when data source does not work. No more 'Module x is not defined'. - Fix: Tests fail to do login against Liferay 6. - Fix: Users.getCurrent() returns an incorrect user sometimes. - Fix: i18n files are not correctly copied when creating a portlet war. - Fix: Choosing reference fails when reference name matches id name of referenced entity. - Fix: @Tab fails with multi-level @Embedded. - Fix: Updating embedded collection element a 'Member not found' exception is thrown. - Fix: Bad layout for header fields when frames. - Fix: NullPointerException by EditorTag hides the real source of error in some cases. - Fix: Incorrect default action (broken in 4m5). - Fix: Help doesn't work for external URL. - Fix: Division by 0 generating PDF reports where all columns are little. - Fix: 'Parse may not be called while parsing' error when several users start at once after deploying. OpenXava 4m5 (2010-7-28) ------------------------ - New mode 'split' (labeled as "Both") in addition to already existing 'detail' and 'List' modes. - The user can change the row count of list and collections, and the setting is stored by user. - Improved look & feel of page navigation for list and collections. - New Collection.saveAndStay action that allows to save a collection element without closing the dialog. - Default module help text in English, Spanish and Russian. - New defaultModeController property in xava.property to define the default initial mode. - Russian translation of Reference Guide and other documentation improved. - Help module: new 'helpPrefix', 'helpSuffix' and 'helpInNewWindow' properties in xava.properties. By default it uses 'http://openxava.wikispaces.com/help_'. - New getParentView() method in CollectionElementViewBaseAction. - Column resizing and customizing list can be disabled. - New mode 'NONE' for actions in controllers.xml to be displayed only in each row. - The pageRowCount property of Tab is persistent, storing its value by user. - Row action is always shows in collections, even when the properties of collection list and detail view match. - Actions from mode-controller with on-init=true are executed on module initialization. - HibernatePersistence declared explicitly as provider for JPA. - Hidden properties are not available to add by the user in list and collections. - Upgrade Jasperreports to 3.5.3 - New SetEditableAction action class. - New cssClass and cssStyle attributes available for taglib. - The List and Navigation controllers are no longer added automatically. - Style for checked rows is also applied in the list for adding new columns. - ModuleManager, ModuleContext, IValidator and IPropertyValidator now are serializable. - View editable and keyEditable properties are false at module initialization. - Delete action in each row: it display message with the row number. - The setConditionValues and setConditionComparators methods of ModuleTestBase use varargs. - Fix: SaveElementInCollectionAction changes the view if not super.execute() is called. - Fix: Dependent properties in a collection element does not react to events when they are hidden and shown. - Fix: @NoCreate and @NoModify annotations doesn't work for collections. - Fix: When a view is not editable its collections have edit action for rows and save action in element view. - Fix: Arrays are not displayed nicely in list and collections. - Fix: Row actions in several lines when the list shows many properties. - Fix: Detail collection actions (like @RemoveAction) with empty action name fails. - Fix: Bug on dialogs when opening another dialog such as reference search. - Fix: @Column scale attribute ignored. - Fix: Jasper report actions does not show correct data after changing schema. - Fix: Several nested tooltip for cells when executing several times actions over a collection/list. - Fix: JavaScript memory leak (so performance degradation) when working some time with a collection/list. - Fix: Checkbox 'select/deselect all' not display in choose list (rows with radio button). - Fix: When you shorten columns if the value contain '-' it produces two lines. OpenXava 4m4 (2010-5-25) ------------------------ - The user can minimize and restore any frame, storing the frame status by user. - Delete action for collections and list is shown in each row. - New in-each-row attribute in to show actions for list mode or collection in each row. - @Tree annotation and TreeView editor for displaying collections using a tree. - More intuitive 'search' action. Now it uses a dialog to ask for the search data. - It is possible to define default values for tabs (tabular data) at global level with the new tabs-default-values.xml. - Frames are right and left justified. - New ManyToMany controller for creating new elements from a many to many collection. - New 'refresh' action in CRUD controller. Behaves as the old 'search'. - The default action for CRUD controller now is 'save'. Before it was 'search'. - New @SearchListCondition annotation to specify a condition for the search list used in a references or collections. - New defaultLabelFormat property in xava.properties to indicate the default when @LabelFormat would be omitted. - New styles in openxava.css to use in @LabelStyle: 'bold-label', 'italic-label' and 'reverse-label'. - New 'defaultLabelStyle' property in xava.properties to indicate the default when @LabelStyle would be omitted. - New @LabelStyle annotation to specify a style for the label. - Add 'forTabs' and 'notForTabs' in @DescriptionsList. - The addListAction and removeListAction methods of View preserve the original order of the actions. - Little adjustment for space between columns in automatic PDF reports. - New SetSchemaAction, SetLocaleAction and SetUserAction action to modify session data from url parameters. - Fix: Mode List: @DescriptionsList does not apply 'condition', and if it has 'depends' it shows plane property. - Fix: Adding and removing actions to a collection is not refreshed instantly. - Fix: After customizing the list all the row are shown, even if they have been hidden using 'Hide them' link. - Fix: JavaScript calendar does not throw onchange event when clicking on 'Today'. - Fix: On change events are not thrown with numeric fields in IE. - Fix: Dialog does not hide combo boxes from back view in IE6. - Fix: @Depends not working properly in Safari with numeric values. - Fix: Poor performance when editing a collection element in a large collection. - Fix: @SearchKey in a not editable view does not hide their associate actions. - Fix: References as combos to filter in list mode: qualify the columns when it create the condition. - Fix: References as combos to filter in list mode: using XML components. - Fix: Mode List: descriptionsList does not apply conditionBase with filter. - Fix: Filter in list mode with calculated property and descriptionsList; descriptionsList and enumLetterType property. - Fix: Filter by number zero in list mode. OpenXava 4m3 (2010-3-25) ------------------------ - The user can resize the column widths for list and collections using the mouse, and the values are persisted by user. - Tooltip for cells in list and collections. - References as combos to filter in list mode. - Clicking on any part of the row, for list or collection, goes to the detail. - Polimorphic view resolution for collection elements. - Removed MemoFormatter for list mode. The new tooltip and resizing columns are better options. - Russian translation of documentation improved. - The dot key can be used as decimal separator in any locale. It is converted automatically to the local decimal separator. - ValidationException and RuntimeException in @Prepersist are propagated to the actions. - Original RuntimeExceptions from MapFacade.setValues() are propagated to the actions. - Any JavaScript file in xava/editors/js is loaded automatically. This folder is for JS of custom editors. - The JavaScript function openxava.addEditorInitFunction to add code to be executed for initialized JS of custom editors. - The creation of default modules is optional. Added property 'generateDefaultModules' in xava.properties. - Clear error message when module reentrance is produced. - Attribute id included in Html for all the built-in editors, to facilitate JavaScript manipulation. - custom-editors.js is only included if exists. Moreover the usage of this file has been deprecated. - Classes.getSimpleName() method dropped. Use getSimpleName() of Class instead. - Style 'highlight' from openxava.css renamed to 'row-highlight'. - MapFacade.getValues() adds a __MODEL_NAME__ entry with the model name of the found object. - Removed history.txt file. - commons-beanutils.jar (already included in OX) is exported from the Eclipse OpenXava project. - Fix: New JS files are not recognized after updating OX version because of browser cache. - Fix: Calendar popup is not shown from dialogs. - Fix: Fields annotated with @SearchKey are not editable when editing an existing entity. - Fix: Alphabetic characters can be entered in numeric fields. - Fix: Excel exporting does not work fine when semicolons in the text. - Fix: Chinese translation of popup calendar was not correctly encoded. - Fix: Collection of generic (Collection) fails. - Fix: MappedSuperClass in different package than child classes fails. - Fix: Filtering by year or month in list mode fails with Oracle and latest PostgreSQL versions. - Fix: Trying to modify an empty reference shows an error but must not show a dialog. - Fix: 'forwardUri' in a 'nextModule' fails inside a portal. OpenXava 4m2 (2010-1-26) ------------------------ - Collections use dialogs to edit, add and remove elements. - Support for JSR-330, the Java standard for dependency injection. Now it's possible to use @Inject and @Named in action fields instead of in . - Show messages/errors animated. - New methods in BaseAction to change dynamically actions: setControllers(), returnToPreviousControllers(), setDefaultControllers(), addActions(), removeActions() and clearActions(). - New methods in ViewBaseAction to manage dialogs: showDialog() and closeDialog(). - Improved performance with large tables in list mode. - It's possible to specify the style to use inside portals by means of new properties in xava.properties. - Edit action by default for collections other than @AsEmbeddable, CascadeType.REMOVE or CascadeType.ALL allows only viewing the element. - Now the action Return.return does not close the dialog. - TabBaseAction now extends ViewBaseAction so getView() and methods about dialogs and view navigation are available from it. - show-dialog and hide-dialog has been dropped from , this produces a BACKWARD INCOMPATIBILITY over 4m1. - DWR engine.js is cached to improve performance. - No error occurs, but only a warning, when (from controllers.xml) tries to inject in an non-existing property. This feature improves backward compatibility. - New getFieldsAnnotatedWith() method in Classes utility class. - Fix: Hibernate log is not shown when retrieving the entity metadata. - Fix: Degradation of performance when the user is working in the same page during some time. - Fix: Focus cannot be controlled when using OnChange actions. The next field is focused after the action. - Fix: JavaScript error (not noticeable by the user) ox_...__xava_focus_property is not defined. - Fix: Labels in collection with no 'cascade=CascadeType.REMOVE' - Fix: Documentation portlets with no language specified cannot be installed in WebSphere Portal. Now a default value for languages (from portletLocales in xava.properties) is assumed. - Fix: Paging in collections forgets selected rows. - Fix: Problems with checkbox 'select/deselect all' with several collections and @OnSelectElementAction. - Fix: Timing problems in junit test combining on-change properties and actions. - Fix: In @OnChange for descriptions list references when the value is zero it's converted to null. - Fix: Automatic label generation (Strings.javaIdentifierToNaturalLabel() method) does not work fine with acronyms. - Fix: JavaScript calendar does not work when several portlets in the same page. - Fix: In some combination of nested sections the section is duplicated on changing section. - Fix: Problems with charset encoding on accepting data from browser. OpenXava 4m1 (2009-11-24) ------------------------- - Popup dialogs supported by means of show-dialog and hide-dialog attribute for in controllers.xml. - A dialog is used for searching, creating or modifying a reference. - Image editor and Image gallery editor use a dialog to upload the files. - New checkbox in list to select and deselect all rows at once. - Reference guide in Russian improved. - Dropped support for EntityBeans CMP2. - Dropped support for Java 1.4. From now on OX requires Java 5 or better. - Dialog for uploading file in image editor has a cancel button. - When generating a PDF report or CSV export from list, if there are checked rows, only them are shown in the report. - WebURL editor, used by WEBURL steroetype, has a link to go to the URL. - New methods in BaseAction: getManager(), getRequest() and getContext(). - New property 'title' for View class. This title will be shown in the frame when the view would be displayed in a dialog. - New getNewMode() and setNewMode() methods in BaseAction to change the module mode (detail/list). - Fordward to pages outside the application is possible by means of IForwardAction. - SaveElementInCollectionAction has a method getValuesToSave() to refine the data to save. - New methods in ViewBaseAction to work with view navigation: showNewView(), returnToPreviousView() and getPreviousView(). - JasperReportBaseAction now extends from ViewBaseAction. - New assertDialog(), assertNoDialog(), assertDialogTitle() and closeDialog() methods in ModuleTestBase. - XSystem.isJava5OrBetter() method removed. - JavaScript code (openxava.js) now uses jQuery. - Added jQuery UI library. - EntityResolver for XML parser that allows you to remove the WEB-INF/classes/dtds in your application at deploying time. - Tomcat included in distribution upgrade to Tomcat 6.0.20. - Upgrade to HtmlUnit 2.5. - A trim is applied to all labels of OpenXava elements: This fix some ugly layout in IE7. - New EnumStringType hibernate type to convert from arbitrary strings in DB to enum values in JPA. - OpenXavaTest refactored: Source folders reorganized, XavaSuite class removed, ant task renamed, etc. - Fix: Generating PDF reports and exporting to CSV fail when multischema is used. - Fix: Generating PDF reports and exporting to CSV fail in collections inside nested sections. - Fix: View navigation malfunction after choosing a reference when searching with a list. - Fix: Calculated collections inside a transient (not entity) class does not work. - Fix: Character + in string fields was erased. - Fix: Ugly formatting of action error messages with additional information. - Fix: MetaElement.getDescription() and MetaElement.getLabel() used local machine locale. Now it uses client locale. - Fix: ModuleManager.reset does not work with descriptionsList at default schema components OpenXava 3.1.4 (2009-8-27) -------------------------- - @Formula annotation from Hibernate supported for detail and list mode. - Labels and messages translated to Serbian. - Labels and messages translated to Swedish. - Added 'list-formatter' to in editors.xml. - New servlets.xml and filters.xml can be used in web/WEB-INF to add custom servlets and filters. - Support for Liferay 5.2.3 with Tomcat 6. - When the user reset the filters in list, the comparators (the combos) are reset too. - On adding first collection element the container entity is refreshed in UI after saved. - New attribute formula for property-mapping in XML components to specify a property calcuted by SQL. - DateFormatter and javascript calendar adapted to work in Swedish. - New MemoFormatter applied by default to MEMO stereotype. - Attribute column in property-mapping of XML components now is optional. Property name is assumed. - Added assertCollectionNotEmpty() method to ModuleTestBase. - Improved message when datasource is not defined in persistence.xml - Added reset() method in ModuleManager to reinitalize the running module. - Added getAll() method in ModuleContext to obtain all objects with the same name. - Upgrade to commons-logging 1.1.1. - Parameters in module URL can be obtained with request.getParameter() from any part of the application, even inside a portal. - If adding alements to a collection validation exceptions are produced , the validation messages are show to the user. - Property isI18nWarnings from xava.properties now is false by default, so i18n warnings are no shown by default. - Better management of exceptions from editors: The trace has the root cause and the module is not broken, only the failed editor is not shown. - Removed getChosenKeyMap() method from ChooseReferenceAction. This method was not used. - Fix: Messages objects are not serializable betweend different JVM. Added serialVersionUID. - Fix: IChangeModuleAction does not work when called from a IChainAction. - Fix: Error on delete entity with inheritance and composite key. - Fix: Projects with - in the name do not work. - Fix: Double click execute the action twice, adding duplicate records to database in some cases. - Fix: AccessTracking does not work in Sybase. - Fix: StackOverflowError with recursive referenced annotated with @OnChange. - Fix: Formatting boolean in list mode fails when boolean type column is used. - Fix: Calculated properties fails on adding first collection element in some circumstances. - Fix: View.refresh() method closed detail element view of collections. - Fix: Changing the name of a searching reference tab makes the main module tab fails. - Fix: After loading an image (LoadImageAction) subsequent calls to CancelAction do not return to previous view. - Fix: Nested collections with composite key with references fail. - Fix: Actions with confirm=true do not ask for confirmation when keystrokes is used. - Fix: Users.getCurrentUserInfo() returns null after using MapFacade. - Fix: The default action (when user press ENTER) does not work with AJAX. - Fix: ModuleTestBase.executeDefaultAction() does not refresh page after execution. - Fix: JavaScript error when using groups aligned by columns in Liferay with Firefox. - Fix: Date formatting fails with Chinese locale. - Fix: Adding only sections with extendsView of @View produces an ArrayIndexOutOfBoundsException - Fix: Using extendsView of @View without members adds all member of current entity to the extended view. - Fix: View.setHidden(group, true) doesn't work fired from OnChange in some cases. - Fix: When a row is selected by code, if the user unselected it the selected style persisted. - Fix: Switching subview dynamically (with setViewName) does not work. - Fix: Fails to compile on Eclipse Galileo (JUNIT_HOME is missing). - Fix: Adding elements to a ManyToMany collection when the parent object is new fails. - Fix: @DisplaySize does not work in custom view with for reference members. - Fix: Row selection in collection are not cleared when main object changed. - Fix: Reference (@ManyToOne) to an element of a collection with cascade ALL or REMOVE fails when used in a list. - Fix: It's not possible to write in a full numeric field though the content is selected. - Fix: textAreaEditor (really any editor with frame=true) cannot be displayed side by side. - Fix: Uploading files fails with before-each-request and on-each-request actions. - Fix: @EmbeddedId with int/long and NUMERIC in DB fails. OpenXava 3.1.3 (2009-6-16) -------------------------- - @Editor can be applied to collections. Also available for XML version with . - @Editor can be applied to references. Also available for XML version with . - In editors.xml it's possible to associate an editor by default for all collections or for collections to certain models. - In editors.xml it's possible to associate an editor by default for all references or for references to certain models. - The selected row in list and collection is highlight. - OnSelectElementAction uses takesLong and confirmMessage. - The default label is natural, e.g. the label for lastInvoiceNumber now is "Last invoice label". - The default parse for int, short and long (MetaProperty.parse) returns null for null or empty string (before it returned 0). - It's possible to layout several collections on the same line. - OnSelectElementAction added to calculated collection. - Removed unused TTFs (fonts for PDF generation). - Fix: Editors with alwaysEnabled=true do not refresh via AJAX in some cases. - Fix: Is.empty fails with a BigDecimal less than one and not zero. - Fix: XCollections.last fail when collection is empty or null. - Fix: viewObject property is missing for OnSelectElementBaseAction - Fix: highlight select element whit OnSelectElementAction - Fix: Collections with cascade REMOVE whose getter returns null fails in some cases. - Fix: mappedBy in @ManyToOne only allowed a reference named equal as the container entity. - Fix: @GeneratedValue in a not @Hidden key throws a NullPointerException. - Fix: Editors with multiple html elements with the same name fail (broken in v3.1). - Fix: IForwardAction at the same time that IChainAction (not refreshed the screen). OpenXava 3.1.2 (2009-4-22) -------------------------- - View inheritance: A view can extends from another. Available for JPA POJOs and XML components. - New @OnSelectElementAction annotation to define an action to be executed when an element of the collection is selected or unselected. - Russian translation of the reference guide and other documentation. - New format 'odt' (Open Document) available for JasperReportBaseAction. - The UI for adding columns to list or collections now uses paging. - Descriptive icons for properties are show next to the label when LabelFormat is SMALL. - New 'remove' link in Image editor, so also in PHOTO and IMAGE stereotypes. - New attribute always-reload for editor in editors.xml. - New method assertNoLabel() in ModuleTestBase. - ModuleTestBase.assertExists() works with collections too. - New defaultPersistenceUnit property in xava.properties to choose the JPA persistence unit to use by default. - New properties pageRowCount and addColumnsPageRowCount to customize rows per page for list and "add columns". - Clear message if you have not the ejb.jar in lib or common/lib of Tomcat. - Clear warning message when using @ReferenceView erroneously. - openxava.tld moved to openxava.jar (as taglib.tld). - Added activation.jar in order to facilitate the use of JavaMail. - Upgrade to JasperReport 3.1.4. - Fix: Nested sections with only sections are duplicated on change section in some very rare cases. - Fix: When changing controllers from an @OnChange action the button bar is not refreshed. - Fix: fails to enter a second time for a change of third-level module - Fix: To generate portlets when 'configuration' property is not in build.xml fails with XML style applications. - Fix: PDF generation does not work with Russian language. - Fix: Some rare NullPointerException on generating PDF the first time with filters (@Tab(filter=)). - Fix: StackOverflowError on circular references. - Fix: Some gramatical corrections in error messages. - Fix: Messages are not showed after executing an IForwardAction. - Fix: Order columns fails in some databases when changing schema with XPersistence or XHibernate. OpenXava 3.1.1 (2009-2-23) -------------------------- - Several modules in the same portal page are supported. - WebSphere Portal 6.1 style support. - Refine style for WebSphere Portal 6.0. - Full tested with WebSphere 6.1. - @PropertyValue in @PropertyValidator with not 'value' throws error (because it's not supported). - Default editors and default size for short, java.lang.Short, double, java.lang.Double, float and java.lang.Float. - Removed method ModuleManager.getForm(). - Fix: Upload files in a module called from an IChangeModuleAction does not work. - Fix: Module navigation (IChangeModuleAction) with more than 2 deep levels does not returns well. - Fix: Warning NotSerializableException with Tab removed. - Fix: List for adding columns to list or collections did not use list look & feel. - Fix: Creating from a reference an entity with collection fails. - Fix: OneToMany Fails without AutoGenerated ID trying to insert a parent and child record at the same time with visible ID in the detail entity. - Fix: FinderException, CreateException, ValidationException and RemoveException did rollback transaction, and they ought not to rollback. - Fix: Modify a reference to an entity that uses UUID as hidden key fails when UpperCaseFormatter is used for strings. - Fix: Selfreference collection with CascadeType.ALL or REMOVE fails. OpenXava 3.1 (2008-12-16) ------------------------- - Full AJAX support. - Style for standalone module (outside portal) is configurable: Liferay 5.1 (now the default), Liferay4.3 and the OX Classic are available (change it using styleClass and styleCSS in properties/xava.properties). - Chinese documentation advanced. - Now template projects do not ask by datasource name on create a new project. - Upgrade to Hibernate 3.3.1, Hibernate Annotations 3.4.0, Hibernate EntityManager 3.4.0 and Hibernate Validator 3.1.0. - The xava.properties of template projects contains all available properties. - Property formLineSpacing removed from xava.properties. It's better to change CSS files for this. - The produced pages are XHTML 1.0 instead of HTML 4.0 (only outside portal). - Upgrade to Servlets 2.4 API; so now requires a Servlet 2.4 container for run (Tomcat 5.x, WebSphere 6.x, etc). - ModuleTestBase does not allow to modify a disabled or readonly html element. - Support for UTF-8 for web request and response. Now the encoding for request/response is gotten from file.encoding system property. - New file custom-editors.js can be used on web/xava/js for defining the javascript for custom editors. - New editor for Timestamp and DATETIME with only one field for date and time. The old one still is available using @Editor("DateTimeSeparatedCalendar") or changing editors.xml. - Removed old and unused stuff for language: xava_language session object, Languages controller, Language class and languages.jsp. - New methods for obtaing labels for MetaProperty and Labels that do not required request or locale object as argument. - Library aspectrt.jar removed from WEB-INF/lib. - Money editor shows the currency symbol depending on the server locale. - Button for popup calendar has a new image. - Is.equal admits to compare objects of not compatible types, just it returns false in this case. - Custom reports, those derived from JasperReportBaseAction, now are filled inside JPA/Hibernate transaction, for avoiding lazy initialization problems. - New method getChosenKeyMap() in ChooseReferenceAction. - New method getMembers() in Messages. - New methods refresh() and refreshCollections() in View. - New property 'portletLocales' in xava.properties that indicates the locales to use for generating i18n files for portlets. - Is.equal can compare integers with enums, using the enum ordinal; and Shorts, Integers and Long among themselves. - Added default sizes (in default-size.xml) for java.lang.Integer, java.lang.Long, float, java.lang.Float, double and java.lang.Double. - New format 'rtf' available for JasperReportBaseAction. - New method remove() in ModuleContext for removing a session object. - New property 'browser' for xava-junit.properties to indicate the browser type to be used for testing. - New InputStreams utility class. - HtmlUnit updated to 2.2. - Fix: Validation error in some build.xml because default attribute was missing. - Fix: Code generation with some version of Sun JDK fails with when Spanish language is used. - Fix: JavaScript calendar in catalan inside Liferay does not show special character. calendar-ca.js has been adapted to UTF-8. - Fix: fckEditor.jsp indide portal throws JSP file "/xava/editors/../imports.jsp" not found. - Fix over 3.0.3: @RowStyle does not work on Liferay 5.1. - Fix: In ModuleTestBase tests after a popup windows with a non-html page is shown (as a pdf) the test does not behaves well. - Fix: From time to time when reference objects are created or modified a NullPointerException is thrown returning to the main view. - Fix: JavaScript error in IE6 and IE7 trying to put the focus in a hidden input. - Fix: FCKEditor not modifying text for FF3. - Fix: Error image for properties is not only shown for the failing property, but for all with the same name in view. - Fix: Modifying the container object from a callback method of a collection element fails. - Fix: Searching in a reference uses 'like' as condition when id is hidden and another property is used for searching, so sometimes the search is not exact. - Fix: On generating reports (and other cases) the latest action is reexecuted. OpenXava 3.0.3 (2008-8-14) -------------------------- - Full support for Liferay 5.0 and 5.1. - Visual style integration for Liferay 5.1. - Labels and messages translated to Chinese. - French translation of labels and messages by a native French speaker. - French translation of the reference guide and other documentation. - Chinese translation of the reference guide and other documentation. - HttpUnit replaced by HtmlUnit for implementing ModuleTestBase. - Qualified properties are allowed for 'condition' and 'orderBy' of @DescriptionsList even it they are not in 'descriptionProperties'. - New property 'format' for JasperReportBaseAction. It can be 'pdf' or 'excel'. - JSP link tag has a new attribute 'cssStyle'. - Date formatter for Spanish and Polish admit 2 or 4 digits for years, and it throws parse error on incorrect dates. - New methods assertRowCollectionChecked() and assertRowCollectionUnchecked() in ModuleTestBase. - New utility class Classes for helping in class introspection. - Label editors show the description instead of id when the type is enum or valid-values. - Some HTML cleanup: All scripts inside HTML, no duplicate ids, focus_property_id hidden input removed. - commons-logging.jar is included in WEB-INF/lib. - Fix: FCKEditor, used for htmlEditor, is always in Spanish. - Fix: MetaElement class does not compile in some charsets. - Fix: Portlets do not work on Liferay 5.0.x. - Fix: getJRXML() of JasperReportBase does not recognize windows style path as absolute paths. - Fix: IPropertyAction fails when applied to a not qualified property. - Fix: Checkboxes remain checked after deletion in collections. - Fix: StackOverflowError parsing entities with cyclic references. - Fix: Calling updateSchema just before create a new project fails. - Fix: A on-change action triggered from the execution of a normal action closes the transaction. - Fix: Added elements to an inherited collection fails. - Fix: updateSchema ant target of MiEscuela demo project fails. - Fix: Incorrect default size for editors when using @Column without length. - Fix: On module navigation with IChangeModuleAction on-each-request and before-each-request actions of initial module were executed in target module too. - Fix: Hiding a predefined collection action for detail (as DeleteAction) duplicate the previous action in UI. OpenXava 3.0.2 (2008-6-4) ------------------------- - Labels and messages translated to Italian. - liferay-display.xml file is generated: OX applications inside Liferay is not on 'Undefined' category but on a category for each application. - To hide/show the filter for a list or collection is remember by each user. - Gallery images table can work on a database without schema. - Java Preferences used for storing user preferences. OpenXavaDS and openxava-db are no longer needed. - New method getCurrentPreferences() added to Users class. - Actions on-each-request and before-each-request are executed only in the specified mode of the action (list or detail). - DateUtilSQLConverter (the default converter used for dates) admits any object compatible with java.util.Date from DB. - Classic XML Components guide moved to wiki. - The message for "object not found" contains the used key values. - @SearhKey can be applied to references. - I18n entries for tab properties can be applied to all entities at once using wildcards. - New method toStringArray() added to XCollections utility class. - PropertyAspect removed from OpenXava. - Fix: Broken links in Reference Guide. - Fix: Projects generated by OpenXavaTemplate or OpenXavaPlantilla do not work in embedded tomcat of Eclipse WTP 1.5 at first attemp. - Fix: Ant target 'compile' of OpenXava/build.xml does not work with OX3 style projects. - Fix: Compilation errors with Java 6. - Fix: Groups in one row aren't displayed correctly everytime with Firefox. - Fix: Incorrect charset on PDF report generation with WebSphere Portal 6.0 inside AS/400. - Fix: When there are rows selected in list mode and the user choose directly a not selected row it fails. - It's possible to scape message for avoiding translation putting them between simple quotes. - Fix: Searching a reference typing the key does not throw on change actions if the key displayed is not the internal id of the object. - Fix: Hiding programmatically all the elements of a section fails. - Fix: When the user changes the key of a reference and then click the link for searching the reference using a list it does not go to the list. - Fix: Excessive log warning about editors. - Fix: Searching a reference with @SearchKey using the list fails. - Fix: Stereotype PHOTO/IMAGE fails in collections. - Fix: Incorrect focus position when two search references inside a reference. - Fix: updateOX ant task was not coping xml components dtds for classic projects. - Fix: Selected elements of a collection inside of a not showed section are not correctly cleared. OpenXava 3.0.1 (2008-4-16) -------------------------- - Hibernate Validator full support. Messages thrown by Hibernate Validator are shown to the user as validation messages. - @Required, @PropertyValidator and @EntityValidator redefined as Hibernate Validator constraints. - Max size of textAreaEditor uses Javascript for control max size (even with Ctrl-V). - Action 'new' of CRUD put the view to the initial section. - Ant creation wizard on template projects asks for the project name. Now it's not needed edit the ant build files. - Fix: On Liferay 4.3 with Internet Explorer 7 frames and tabs are not shown when the user is log on. - Fix: Getters of references or collections annotated with @Transient fail. - Fix: Calculated properties with @Depends fails on transient classes. - Fix: Formatter is not applied when an editor is assigned via @Editor annotation. - Fix: On edit detail of collections data of nested references is not loaded correctly. - Fix: Select for row count of list fails when last showed database column ends with 'FROM'. - Fix: JasperReport generation: Invalid encoding name on some windows with WebSphere 6.0. OpenXava 3.0 (2008-3-4) ----------------------- - POJOs + Java 5 annotations for defining business components. - XavaException now is a RuntimeException. - MapFacade methods do not longer throws RemoteException, instead it now throws SystemException (runtime). - Fix: JasperReport generation: Invalid encoding name "Cp1252" on some windows, and malformed URL on WebSphere 6.0. - Fix: Fails on WebSphere 6.0 (at some level patch). Broken since 2.2.3. OpenXava 2.2.5 (2008-2-21) -------------------------- - New element for to overwrite the default action for searching when the user type the key. - New before-each-request attribute for in controllers.xml. - Text field editor for numeric data uses JavaScript to prevent the user from entering non-numeric characters. - Text field editor for numeric data take into decimal point, thousands separator and sign for calculate size. - New utility class Emails to facilitate the use of JavaMail. - The cmp-type attribute of property-mapping supports to use all Java wrappers of java.lang and java.math without package. - MapFacade is not autocommit by default from now on. It's needed to put mapFacadeAutoCommit=true in xava.properties for autocommit. - New method MapFacade.commit to force a commit when MapFacade is working without auto commit. - Dates.toString() methods uses the current locale from Locales.getCurrent. - Unused classes ChangeLenguageAction and GoFirstAction removed. - CRUD.new action now restore by default the model of the view to the current module model. - Hibernate updated to 3.2.5. - When an action throws an exception all messages (not errors) added by the action are not shown. - AccessTracking does not record duplicate continuous entries. - TabUserPreference uses "native" as key generation to allow to save tab preferences in Oracle. - Hide rows action is no longer shown on collections. - New StringTimeConverter. - AnnotatedClassParser shows source exception on obtaining class names from hibernate session. - Code tuning after FindBugs revision. - Fix: Layout problem in Liferay when a section with only a property with frame. - Fix: Layout problem when a reference with frame="false" which contains sections. - Fix: Navigation is broken sometimes on Jetspeed 2.0 with Internet Explorer. - Fix: Buttons too big in IE. - Fix: Focus is not set after a request with IE7 and Liferay 4.1. - Fix: Javascript warning, when the focus go to a not selectable control, removed. - Fix: Fails on create hibernate session on JDK1.4 of AS/400. - Fix: 'Create' and 'Modify' link for references which key is inside a group was not shown. - Fix: On Java 6 the on change event in keys with composite keys was not always the last one. - Fix: Save first detail in a collection saved the container entity although the detail was not saved because of a validation error - Fix: Fails on search references typing its key when working with multischema. - Fix: Search reference does not work when key is multiple, visible and inside a group. - Fix: When a member in a section was hidden programmatically and the result was only one reference or collection the frame was not hidden. - Fix: Overlapped columns were not recognized when the letters case does not match. - Fix: ValidValuesVerticalRadioButton was horizontal. OpenXava 2.2.4 (2007-12-19) --------------------------- - Full support for Liferay 4.3, including visual style integration. - New stereotypes IP, ISBN, CREDIT_CARD and EMAIL_LIST. - It's possible to mark a property as search key to be used for indicating which properties will be used for searching. - New class UserInfo and method Users.getCurrentUserInfo() for accessing to info the portal user. - New calculators CurrentUserGivenNameCalculator, CurrentUserFamilyNameCalculator and CurrentUserEmailCalculator. - XSS (Cross-site scripting) protection added. - XHibernate supports multischema and different configuration by thread. - Refined default size of text fields for filtering in list mode. Now is 80%, before it was 50%. - Portlets use action url as form action, and propagate parameters from processAction method. Needed for Jetspeed 2.1.2. - Fix: Search using list from an overlapped reference with string keys fails. - Fix: 'Remove selected' from a collection inside a reference displayed as-aggregate does not work. - Fix: Minor errors in component.dtd/componente.dtd. - Fix: Reference to entity used as key and displayed as-aggregate fails on delete. - Fix: JavaScript calendar in Liferay 4.3 did not work. - Fix: Ugly layout when one (or few) fields before a wide group. - Fix: Layout problem when multiple nested frames with references with no frame. - Fix: Removed warning 'Trying to load controller .. twice' on generating portlets. - Fix: Code generator works with Java 1.4 (broken in 2.2.3). - Fix: If key inside a group in a reference the first editor outside the group was editable. - Fix: java.io.NotSerializableException: org.openxava.tab.impl.EntityTab removed. OpenXava 2.2.3 (2007-10-29) --------------------------- - New stereotypes TELEPHONE, EMAIL and WEBURL. - Optimistic concurrency support using version property. - The generic messager error "Impossible to execute x action" now has also the message from the original exception. - In the page for customizing columns of list (and collections) the label of each property to add is shown. - The user can hide/show the filter part in list and collections. Also showFilterByDefaultInList and showFilterByDefaultInCollections are available in xava.properties. - Labels in list mode are qualified by default. That is customer.name is shown as "Name of Customer" (before it was only "Name"). - Compilable with Java 6, and still with Java 5 and Java 1.4 (dropped EmptyResultSet class). - New methods Labels.getQualified() and MetaProperty.getQualifiedLabel(). - New DaysDelayCalculator for calculating delays between dates. - New property toUpperForStringArgumentsInConditions for xava.properties. It allows to choose the use of upper for searching in list and collections. - XavaPreferences can be only instatiate using getInstance() method. - JavaScript calendar aligns to bottom on IE6 and to top in the other cases, for avoiding a problem of overlapping with Liferay top bar. - Buttons instead of links for no image actions is possible (using buttonsForNoImageActions=true in xava.properties). - New property nullToZero in IntegerNumberConverter and LongNumberConverter to choose if null have to be converted to 0. - AccessTracking table schema changed in order to support MySQL. - New calculator CurrentTimestampCalculator. - Labels class does not print any stack trace on fail, it only log warning messages. - Fix: Focus when a reference or group is on top of the view is not set inside that reference or group. - Fix: Nested key references do not set editable correctly. - Fix: References with no frames inside groups are not nicely shown in some cases. - Fix: SQLException from Oracle on collections when key of main object is empty. - Fix: with empty string fails. This breaks the ability to removing some action in collection-view. OpenXava 2.2.2 (2007-9-3) ------------------------- - A default module is assumed for each component of the application without declaring it in application.xml. - New element default-module in application.xml for defining the controllers for default modules. - A static final field for each property is generated for interfaces on code generation. - Support for qualified properties (properties of references) in order of collections. - row-style available for . - Fix: Code generation Java 1.4 compatibilty restored (broken in v2.2.1). - Checkbox in collection row is always present, even in read only calculated collection with no list actions. - New methods assertRowStyleInCollection and assertNoRowStyleInCollection in ModuleTestBase. - Method setJPAPersistence removed from XavaPreferences. - Fix: Ordering and filtering for nested collection or collection inside references did not work. - Fix: When is used the size of the property is ignored by editor. - Fix: Using a named view with sections for displaying a reference was failing. - Fix: order in has no effect when condition is not specified. OpenXava 2.2.1 (2007-8-7) ------------------------- - Method getSQLBaseCondition() removed from MetaTab. - Button bar is not shown if it is empty (no action nor mode actions). - More meaningful title for PDF reports in collections. - Icon for 'delete' changed. - New property emailAsUserNameInPortal for usin in xava.properties that allows Users.getCurrent() returns the user email instead of the user id inside a portal. - JavaScript calendar is aligned on top of editor, in order to work fine in IE6. - MoneyFormatter for MONEY and DINERO stereotypes. Now money is always displayed with two decimals. - New methods noLastTokenWithoutLastDelim() added to Strings utity class. - It's possible to put empty string for action in edit-action, view-action, new-action, save-action, hide-detail-action, remove-action, remove-selected-action of collection-view, and the action will not be shown in the User Interface. - The JSP tags: action, link, image and button support empty string as value for action. - Tab now is serializable. - Now actions in DefaultListActionsForCollections controller are not added automatically to calculated collections. - New method Messages.getIds() that returns a list with the ids of the messages. - New display-size attribute available in . - A validation of scale is done for MONEY/DINERO stereotype. - regenerateHibernate now delete filtered-file folder before regenerate. Now you can rename a component with no problems. - Mode.list link is not available when creating or modifing a reference. In general change mode actions are not available after view navigation. - Beta support for EJB3 Entities as component definition language. The code is in a ox3-src folder. This is for supporting the development of OX3. - All data access from JUnit tests in OpenXavaTest is done using JPA instead of Hibernate. - Added method toKeyString(Object pojo) to ModuleTestBase in order to obtain a string representation of the key of a POJO from the POJO itself. - Fix: Searching by a property of type String mapped to a numeric column fails on Informix (or other DBs that do not support like in numerica columns) - Fix: JavaScript calendar fails on choose dates in languages other than Spanish. - Fix: List actions fail in nested collection. As generating PDF or deleting selected rows. - Fix: Some unexpected exception in Labels produces that collections will not work. - Fix: editor attribute in does not work is the property is inside a group. - Fix: NullPointerException in DateTimeFormatter when it try to parse a null value. - Fix: Calculated properties in aggregate collections that use IModelCalculator fails. - Fix: Collections fails on creating new objects in UI working agains some databases (as Informix). - Fix: Charset of JasperReports for automatic reports depends on the JVM config (special characters was not well displayed in Liferay). - Fix: 'editor' attribute of did not work in default view (the view with no name). - Fix: Multischema applications (using XPersistence.setDefaultSchema()) fail in collections when changing from a schema to other in some databases without reinitatite the module. - Fix: StackOverflowError in ResourceManagerI18n generating code from a locale other than ca, de, en, es, fr, in, pl. - Fix: MetaModel.getMetaView() failed when a null or empty string was used as argument and no default view was explicitly defined in component. - Fix: getValueInCollection and assertValueInCollection does not calculated well the row number in the case of not calculated and read only collection without view link. OpenXava 2.2 (2007-6-28) ------------------------ MAIN FEATURES since 2.1 - Collection behaviour greatly improved. - Look & Feel integration for Liferay and WebSphere Portal 6 improved. - Transient components and default mapping for persistent components. - Moreover, more than 80 features and fixes over 2.1. Features and fixes since 2.1.5: - Entity collection behaviour improved: You can add several elements at once, and with less clicks. - New type of action IChainActionWithArgv, that allows sent values for the properties to the chained action. - The detail view in collections now is shown on top by default, you can put it on bottom with detailOnBottomInCollections=true in xava.properties. - When save a collection element the detail view is not hidden, but it continue displayed. - When i18n for members of collections are not defined, the i18n for the default tab is assumed. - Bulgarian flag added to OpenXava Portal (Liferay). - Fix: When quotation marks in text field was used, the data inside quotation was not visible. - Fix: Intermittent bug on high load (NullPointer obtaining a parameter for request) on return from creating o modifiying a reference. - Fix: Tomcat log does not work in OpenXava Portal (Liferay) on Windows. - Fix: Fails in i18n of members of collections. OpenXava 2.1.5 (2007-6-18) -------------------------- - Refined look and feel of lists and collections for WebSphere Portal and Liferay in order to see clearly the seperation within cells. - WebSphere Portal 6 style improved: Sections and frames have native aspect; and a little problem with resolutions higher than 1600x has been fixed. - Support for Bulgarian language in portlet generation. - Filtering by year and month in list mode works fine in all databases (including Postgres and Informix). - New editors ValidValuesVerticalRadioButton and ValidValuesHorizontalRadioButton. - New stereotype IMAGE_LABEL/ETIQUETA_IMAGEN. - Fix: MapFacade.createReturningValues did not return values calculated from default-value-calculators. - New property hibernateJavaLoggingLevel available in xava.properties to set the logging level for Hibernate. - Fix: Overlapping properties and references in mapping did not work if the case of the columns did not match. - Fix: ModuleTestBase.assertCollectionRowCount and assertCollectionRowCount fails on a calculated collection with only one row. - Fix: Calculated properties using IModelCalculator or IEntityCalculator fail in collection (bug introduced in v2.1.4) - Fix: Focus positioning fails when there is an event associated to the last field of a group. OpenXava 2.1.4 (2007-5-29) -------------------------- - Controller DefaultListActionsForCollections that allows define default list actions for all collections. - Export to excel and print as PDF is available for collections. - Action for list mode (that work with Tab object) can be apply to collection too. - All features of list mode are available also for collections. This includes ordering, searching, pagination, etc. - New method Tab.setDefaultOrder() for setting the default order for the Tab in runtime. - New method Tab.setPropertiesNames() for setting the properties displayed by the Tab in runtime. - New method Tab.setFilter() for setting the filter of a Tab in runtime. - New methods in View: getCollectionSelectedValues(), getCollectionObjects() and getCollectionSelectedObjects() - PersistenceFacade added (in package org.openxava.model) for accessing some persistence services in an abstract way. - Hibernate update to 3.2.4.sp1 and Hibernate EntityManager updated to 3.3.1.GA. - Button for filtering in list mode is replaced by an icon. - Class ArrayOneRowResultSetAdapter (from util) removed (really moved to org.openxava.converters.typeadapters). - CSV Export (export to excel in list mode) change the 'new line' (\n or \r) by spaces in order to export nicely when multiline texts are present. - Property 'csvSeparator' can be used in xava.properties to indicate the column separator for CSV export. - New class SystemException for throwing from business method when a system level exception is produced. - Ant target 'generarPortlets' has been removed from OpenXava/build.xml, 'generatePortlets' can be used instead. - MapFacade.validate() can be used for validating aggregates (not only entities) - Fix: Fail in list mode: Calculated property of a reference that depends on a property of the same name of one of the main object. - Fix: User preferences for tab was not loaded when duplicate rows was found. - Fix: View.setValue() threw exception if the member is hidden. - Fix: 'Transaction not successfully' message showed on saving tab preferences. - Fix: When create a new object from a reference ant it has an on-change action associated to the key some times a NullPointerException is thrown and the on-change action is not executed. - Fix: Required icon in editors with frame was not nicely displayed inside Liferay Portal. - Fix: In websphere 6.0 using WebSphereTransactionManagerLookup a lot of warning messages is shown on commit transaction. - Fix: Ant targets 'generatePorlets' and 'redeployPortlets' touched application.xml although it did not exists. This created an empty application.xml file in Spanish projects. - Fix: MapFacade.setValue and MapFacade.validate crash when a reference with null value used in a model validator is sent. OpenXava 2.1.3 (2007-5-2) ------------------------- - New editor radionButton.jsp to display/edit valid-values in radio button format. - has the attribute editor to specify a editor to a property for use only in that view. - It's possible to give name to a editor in editors.xml - A key property marked as hidden="true" without required attribute assumes required="true". - Fix: NoClassDefFoundError on AS/400 + WebSphere 6 (bug introduced in OX2.1.2). - New static methods for MetaModel: getForPOJO(), getForPOJOClass() and existsForPOJOClass() - CSS modified in order to make more visible disable editors. - Fix: It did not release transaction nor hibernate session when fail on loading and saving tab preferences. - NotZeroValidator (used by default for required="true") now shown a message '{0} is required' is the value is null. Before the message was 'It's not possible assign null to a int'. - Value of type int, long and short used as key are parsed as null (before as 0) if they are used as key, this is for better support of referenced using 0 as valid key. - Default mapping: If mapping is not specified in a component definition a default one is assumed. - Support for Transient Components: Using the instead of mappings on defining the component. - Fix: On modifying view properties was not validated. - Fix: When create a new object from a reference the on-change action associated to the key of the reference is not thrown. OpenXava 2.1.2 (2007-4-12) -------------------------- - Fix: Cache in DataSourceConnectionProvider by component did not work - New controller 'DefaultSchema' that allows creating applications that change the default database schema in runtime for each user independently. - New methods setDefaultSchema and setPersistenceUnitProperties for XPersistence class. These methods allow change the JPA configuration in the current thread. - A little improvement in dateCalendar editor. It did fail when used without HTML tables, because a
- New attribute 'on-each-request' available for action element in controllers.xml. This allows that an action will be executed automatically in each user request. - The keystrokes for record navigation now are control alt RIGHT, control alt LEFT and control alt HOME, because the old ones (control RIGHT, control LEFT, control HOME) had conflicts with text editor normal keystrokes. - Fix: If in list mode a property from a reference is shown (a qualified property), and the property is calculated using a IModelCalculator then it fails. - Hibernate update to 3.2.2, and Hibernate Persistence Manager and Hibernate Annotations update to 3.3.0. - Support for database with schema support but that they not allow to use schema in data manipulation. This allows use schemas in Hypersonic. - Editor for valid-value and Java 5 Enum is defined in default-editor.xml and can be defined in editors.xml/editores.xml. Now it's possible to customize the valid-values/enum editor. - Fix: ClassCastException when searching with MapFacade using BigDecimal as values for integer properties. - Fix: Stereotype IMAGES_GALLERY/GALERIA_IMAGENES shows a gap between first and second image if you have more than seven. - New class ArrayOneRowResultSetAdapter for reading a object array as JDBC ResultSet. OpenXava 2.1.1 (2007-3-2) ------------------------- - OpenXava number version is logged. - Fix: Composite key with an int or long and NUMERIC in database fails searching in detail mode. - New methods setYear, setMonth and setDay added to Dates class. - Stereotype IMAGES_GALLERY/GALERIA_IMAGENES is shown nicely in Liferay Portal. - New method getAllMetaActionsIterator() added to ModuleManager to avoid using org.apache.commons.collections.IteratorUtils inside JSP (Eclipse WTP does not like it). - Ant target 'compile' in OpenXava/build.xml is refined in order to work fine even if it is the first ant target to be executed when a project is recently created. - Fix: Focus is lost inside Liferay when a request is done. - Fix: Avoid browser cache of PDF OpenXava generated documents. - Using key properties of parent model in a 'from' attribute from an aggregate works. That is, to use from="invoice.year" from a InvoiceDetail aggregate is allowed. OpenXava 2.1 (2007-2-12) ------------------------ MAIN FEATURES - Full support for EJB3 JPA as persistence engine. - Full support for Liferay portal. XML SYNTAX - Session objects declared in controllers.xml now can have global scope. A new scope attribute is added to element. - Attribute remove-selected-action added to in order to define a custom action for removing selected elements in a collection. JAVA API - View.getRemoveSelectedInCollectionAction() renamed to View.getRemoveSelectedCollectionElementsAction() - Protected method removeSelected added to RemoveSelectedInCollectionAction in order to facilitate the refiniment of the action. MISC - deployEJB (in OpenXava/build.xml) copy all hibernate jars to the ear in order to use Hibernate inside EJB2. - New ant target in OpenXava/build.xml 'generatePortlets' that generates a war file in portlet format but it does not copy it to deploy directory. - Logging of i18n problems is now low (only short warning messages). No exception is shown now. - Removed commit from list.jsp. Now in order to work with WebSphere you need to configure your hibernate.cfg.xml. Look at OpenXavaTest/hibernate.cfg.xml adn OpenXavaTest/websphere-as400.properties to see an example. - Hibernate Entity Manager and Hibernate Annotations updated to 3.2.1 - DateTimeFormatter improved for Polish locale. - New property javaLoggingLevel available in xava.properties to specify the log level for the OX applications. - No cache is used for OX portlets. expiration-cache is 0 in portlet.xml generated by OpenXava. - Polish translation for labels and messages. - wtpBuild ant target is dropped from OX. You can use 'rebuild' ant target instead. - New demo project ProductSale added. - Style of frame for collection elements supports Liferay. - The OX jsp are always updated in OX applications, in this way when a new OX version is updated the OX code in applications is update without problems - Removed incorrect stack trace about JPA when a datasource cannot be obtained, even if the application does not use JPA the trace was shown. - The properties in the files inside WEB-INF/classes have always preference, independently of classloader configuration of application server. - Choosing the encoding for portlet.xml is posible using portlet.encoding property in build.xml. FIXES - Fix: Maps.treeToPlains did not work with more than 2 levels. - Fix: Action for references (search, create, modifying) did not support more than 2 nested level. - Fix: javaLoggingLevel property in xava.properties had no effect inside junit test. Also now trim() is done before parse its value. - Fix: Typing @ in a windows using a view with sections changes the current tab. This may affect to all AltGr characters. - Fix: In view: Layout a reference besides to the next reference does not work (the next one was placed below). - Fix: Java 5 was required for portlet generation. Now it works (again) with Java 1.4 - Fix: Calendar for date editor does not work in a module called from another module. - Fix: Portlets does not work in WebSphere Portal 5.1 - Fix: HtmlPortlet does not recognize the language correctly. - Fix: Searching on focus lost in references with hidden key fails in the second attempt. - Fix: Image for editing in HTML_TEXT stereotype was missing. - Fix: MetaValidators.findFromParent print a NullPointer stacktrace if the type is an interface. - Fix: ModuleTestBase.assertListNotEmpty() works well, before one line list was considered as empty. OpenXava 2.0.4 (2006-12-19) --------------------------- UI BEHAVIOUR - More coherent behaviour for IMAGES_GALLERY stereotype. Now the images are always added to the gallery, although the save button in main entity is not pushed. - Searching in detail model for any displayed field includes references (before only it worked with plain properties) - Link for modify references available to users. - In list mode java.sql.Timestamp allows filter by year, month and year/month. - Informative message on adding new image to a Gallery. - Seaching by year/month in data types is allowed in list mode. - Images gallery show identification data about the object that own the images - Top button bar shows icon and bottom button bar shows buttons, without redundancy - java.sql.Timestamp can be used for filtering in list mode using plain dates. XML SYNTAX - New attribute modify (to disable/enable 'modify link') in - New attribute modify-reference (to disable/enable 'modify link') in - New attribute scale (useful for creating a more accurate hiberante mapping) in (by Radoslaw) - New attribute aligned-by-columns for and
in views. It allows layout the members by columns, as in a table. JAVA API - ModuleTestBase.getProperty now is public and static in order to access to xava-junit.property from any place. - New method ModuleTestBase.setLocale to change the locale of the client at runtime. - Strings.change allows sending null as string. - View class has this 3 new methods: putObject(), getObject() and removeObject() that allow to associated arbitrary objects to a view. - Method Dates.cloneWith2359() added. To clone a date but with time 23:59:59 999 - INCOMPATIBITY: Dates.clonWithoutTime() renamed to Dates.cloneWithoutTime() MISC - Style works fine in Liferay, adapting well to all look & feels. - Updated to Hibernate 3.2.1 - Liferay style integration improved. - XavaSuite works at 100% agains Liferay 4.1.3. - Logging using apache commons loggins instead of System.out/System.err/printStackTrace. - Default value (3000) for HTML_TEST/TEXTO_HTML stereotype. - StringArrayBytesConverter supports Blob as column type in DB. - StringTimeFormatter (used by TIME/HORA stereotype) format using 5 digits. - Referencing in 'from' attribute of a calculator inside an aggregate to properties of the parent model are allowed (look at section 3.8.4 of reference guide) - ConcatCaculator now admits until 5 strings/ints - MetaProperty.parse converts empty string in null (instead of 0) for all value of type Number. This can produce some little INCOMPATIBILITIES (now blanks are shown where before 0 was shown). - It's possible to create a folder named 'public' inside our OX project then all JSP inside it will be always public and accessibles even in a Portal. - Date format and parse are done depending on browser locale. - Ant target 'redeployPorlets' added to OpenXava/build.xml and used from all OX projects. - java.sql.Time are parsed using 24 hours format in all locales by default. - Some correction in translations for object_not_found. - ModuleTestBase.setValue(String model, String name, String value) throw onchange events as the setValue(String name, value) does. - JasperReport version returns to 1.1.1, because 1.2 has problems in some J2EE/portals server (WAS 5.1 + WPS 5.1 in an IBM iSeries) - The ant target 'clearGeneratedCode' does not fail although the gen-src (used only in EJB) does not exist. - portlet.xml is generated using UTF-8. - NotNullDateConverter now supports java.util.Date. - java.sql.Time supported (including JasperReport generation). - TimeFormatter renamed to StringTimeFormatter. - IBM WebSphere Portal 6.0 tested and supported - IChangeModeAction allows to change to PREVIOUS_MODE, in addition to DETAIL and LIST. - Using on defining a module in application.xml the detail action in each row is missing. - The buttonBarOnTop and buttonBarOnBottom properties of xava.properties are not longer used FIXES - Fix: htmlEditor does not work inside portal - Fix: "order by" links in list mode are displayed ugly in JetSpeed2. - Fix: String (or any other type) for property type and byte [] for cmp-type supported in Hibernate. - Fix: Stacktrace is shown in trace when a label is not in i18n files. - Fix: default value calculators do not work in collection of entities displayed as aggregates - Fix: Calculated properties inside a section that depend on a property on other section is not recalculated well. - Fix: util.Server restore XHibernate.isCmt state correctly. In order to use Server from calculators when you use hibernate + ejb. - Fix: Javascript calendar for date fails in Liferay. - Fix: Actions of references do not work inside nested sections. - Fix: Filtering in list by java.sql.Time does not work. - Fix: Filtering in list mode using other operators than '=' fails using Timestamp. - Fix: Focus does not work well inside a portal. - Fix: A blank line at first of the module using Internet Explorer. - Fix: Exporting to excel does not work inside JetSpeed 2. - Fix: On creating a new object from reference, when we are creating an object from a reference (more than 1 nested level) the reference in the original view is not filled. - Fix: Parsing numbers in Polish fails if the number is > 1000 - Fix: Searching an object with a single reference (with a single column) as key fails in hibernate. - Fix: createWebsphereEar ant target broken - Fix: with 'from' attribute does not work in - Fix: On removing an element from a collection using check box the dependent data was not updated. - Fix: If you try to filter pressing return (without click in filter) when searching a reference a error message was displayed. - Fix: When customize a list searching references always return to the main list mode of module. - Fix: When a new object is created from reference UI (with + icon), and it has a autogenerated hidden key, the reference is not filled with the new created object. - Fix: Defining a calculated property that mix s with 'value' and 'from' fails - Fix: Fails in tab when ordering by primary key in Informix OpenXava 2.0.3 (2006-10-02) --------------------------- UI BEHAVIOUR - It's possible to remove several rows from collection at once, using a checkbox + action - When you navigate or search to a new object all collections closes the detail view. In this way a lot of incorrect data display problems are removed. XML SYNTAX - Attribute 'maximum' (for validating maximum item count) allowed in element. - order in finder supports using a property of a reference inside an aggregate (address.state.name for example) for Hibernate and JPA. - inside , or have the attribute 'always-enabled', when this attribute is true the action is always present, even if the view, property or reference are not editable. - allowed inside members(groups and section) of view. In order to put an arbitrary action inside a view. JAVA API - The method getJRXML of JasperReportBaseAction admit full file path for specifying a resource of file system, before only resources from classpath could be readed. - View.setValue throws exception if member to update is not shown in view - Added method treeToPlain to Maps utility class. - Added method assertNoMessage to ModuleTestBase - Maps.putValueFromQualifiedName for put a value in a tree format map using a qualified name. - MapFacade.addCollectionElement method added and use from standard OpenXava actions. MISC - New stereotype: HTML_TEXT/TEXTO_HTML. - Chapter 2 of reference guide uses 'updateSchema' for creating database. - JPA code in POJOs only is generated if JPA persistence provider is set, or the property 'jpaCodeInPOJOs' in xava.properties is set to true. In this way POJOs can be compiled using a java 1.4 compiler. - Default validators for type or stereotype are supported. They can be defined in validators.xml. - If component name does not match with xml file name a meaningful message is produced - JSP taglib added. - JSP taglib added. - Calculated properties with IModelCalculator or IEntityCalculator are recalculated in view when some dependent value changed and an POJO (not EJB) populated with the current view data is injected in calculator before calculation. - Custom JSP are allowed in root folder. - It's possible to overwrite standard messages of OpenXava. - XavaResources.properties dropped from OpenXava. All its content is moved to Messages.properties. - Code generation for EJB2 exclude some finder cases only supported in Hibernate/EJB3 - Added 'as-aggregate' to to allow entity references behave as aggregate references. - It's possible override for our application a defaut controller of OpenXava (Collection, References, Typical, etc). - OpenXava/xava/controllers.xml is renamed to OpenXava/xava/default-controllers.xml. FIXES - Fix: checkbox of rows in collection is not shown when collections are not editable - Fix: SaveAction with resetAfter=false clear the data of references - Fix: as-aggregate for in does not work if the key of reference is autogenerated. - Fix: View.setValueNotifying and View.setValuesExecutingOnChangeActions does not execute the same action more than once. - Fix: Now CRUD.searchByViewKey does not throw on-change event for key in references, and CRUD.searchExecutingOnChange lanza on-change event for key in references. Now works as reference guide explains. - Fix: OnChange action associated to a view used for create a new reference crash if add error or messages - Fix: Editable mode of collection of entities inside an section fails. - Fix: assertListRowCount(0) works fine in junit tests - Fix: View.setEditable from inside a XAVA_SEARCH_ACTION in list mode does not affect to collections with - Fix: validator in aggregate that references to its parent of which key is single crash. - Fix: If the user removing a column from tab and after he filter by a aggregate value then fails: Filter is not done, and the list is not well displayed OpenXava 2.0.2 (2006-08-01) --------------------------- - On creating a new object from a reference the reference view is filled automatically with the just created object. - Added 'as-aggregate' to to allow entity collections behave as aggregate collections. - Added exportSchema and updateSchema to OpenXava/build.xml (see example in MySchool/MiEscuela build.xml) - It's possible to refine the default behavior of a collection-view with new new-action, save-action, hide-detail-action and remove-action elements in collection-view - add/removeListAction and add/removeDetailAction added to view. This allow add/remove programmatically actions to a collection view. - hiddenDetail action of Collection controller in controllers.xml is renamed to hideDetail. - New stereotype ZEROS_FILLED/RELLENADO_CON_CEROS - Feedback to the user of standard action are improved, specially those of collection. - Searching a reference using radio button instead of checkbox, because only an item can be selected. - Allows spaces at end of persistenceProviderClass property value in xava.propeties. - In upload forms (multiplar) any number of actions is allowed. - In IMAGES_GALLERY stereotype there is a cancel action in the form for upload image. - Added explicit support for identity (auto-increment) database columns by means of the new IdentityCalculator. - IPropertyAction added, to allow inject property name and view to an action defined in an - SearchByViewKeyAction has new protected methods for refining its behaviour easily. - list.jsp admit the parameter singleSelection to indicate if the list has to use chechbox or radio button. - CreateNewFromReferenceAction and SaveNewAction now have a property 'referenceSubview' (of View type) that has to be injected in controllers.xml. If you have some custom action that extends them remember modify your controllers.xml - The order of elements in entity/aggregate are more flexible. - Converters (defined in converters.xml or MyComponent.xml) are applied for not generated code too. In this case conversion is only used for list mode, and the programmer is responsible to include the conversion in get/set code. - Some adaptation a oracle syntax: Inner joins for tab works fine with Oracle (" as " dropped). OpenXava is refined in order to avoid this jetspeed flaw - All text editors are limited to 100 displayed charecters as maximum. You can customize it for you applicaction using maxSizeForTextEditor in xava.properties. - The textEditor.jsp editor has a new parameter 'maxSize' that is assigned to the 'size' attribute of html element. You can use it in your own steroetypes. - workspace.dir in openxava.properties (or equivalent) is ignore by OpenXava. Therefore, from now on you can rename the folder of your workspace without worrying about to change your openxava.properties. - Key with 0 as value works in searching - The ERROR messages on deleting the last object are not shown if removal is done correctly. - xava-junit.properties support the 'application' property to indicate the default value for the application to all the junit test the project. - Image editor does not show the broken image when there is no image. - Labels.get and Labels.exists methods do not fail, instead returns a default value. - XavaResource.getString never fails. This is for avoid some bug in jetspeed2 request implementations. - Fix: descriptions-list with order and without condition fails - Fix: collections of references to entities are full editable inside sections. - Fix: Sterotype IMAGES_GALLERY crash when the property is not in i18n files. - Fix: request.getLocale() throws NullPointerException in some circumstance inside Jetspeed2. - Fix: actions which description contains ' fails - Fix: Numeric text fields are aligned to right (maybe it was broken in some point) - Fix: Bug in CollectionBaseAction.getObjects() - Fix: collection of aggregates inside group inside section fails - Fix: Searching in detail fails with boolean and properties with converters - Fix: Searching in detail fails when more than one match to the searching OpenXava 2.0.1 (2006-06-29) --------------------------- - Support for EJB3 JPA: 100% supported, but still in beta stage until 2.1. > EntityManager can be used inside your own actions. > JPAPersistenceManager available and 100% tested > XPersistence class - keystroke supported for actions (in controllers.xml) - IHibernateIdGeneratorCalculator added, to customize the .hbm.xml generated code for id generators. - Search action in detail mode supports searching by any field or fields. Before only 'by primary key' was supported - Support for sequence id generator for Hibernate/EJB3. - Method XSystem.isJava5OrBetter() added. - Formatter is not required for stereotype that uses 'descriptionsEditor.jsp', including the case of multiple key with references. - Attributes 'editable' and 'throwPropertyChanged' added to taglib - Searching references of which key is hidden can be done using the first displayed field of reference. - PropertiesManager.executeGet and executeGets support qualified properties. - New method MapFacade.getValuesByAnyProperty to search by any property (not only the key) - Nes method Is.empty to ascertain if the argument (an object) is null, empty string or 0. - Actions with confirmation show a meaningful confirmation message (from description of action) - Keystrokes (control-1 to control-9) availables for section change. - Controls duplicated form submit: In this way last action is not repeated accessing portlets in WebSphere Portal. - Updated to httpunit 1.6.2 - Grammatical corrections to reference guide - Fix: In Hibernate int key with NUMERIC in db fails. - Qualified properties allowed in taglib - element added to in . Works as in case of - Eclipse validation droped from OpenXava project, in order to avoid errors in folder xdoclet OpenXava 2.0 (2006-05-22) ------------------------- - Model layer generated using POJOs. - Persistence managed by Hibernate. - Works with a simple Tomcat.