OpenXava Changelog

New in version 4.9.1

February 4th, 2014
  • 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.

New in version 4.8.1 (October 1st, 2013)

  • New features:
  • 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.
  • Fixes:
  • 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.

New in version 4.8 (July 25th, 2013)

  • This version adds nested actions in a drop-down menu in the button bar (by means of subcontrollers), many new improvements in "My reports", improvements in list mode, and many more new features and some important fixes.

New in version 4.7.1 (May 29th, 2013)

  • This version adds the possibility of aligning by columns in the root view, an image gallery editor which uses a dialog, Russian documentation improvements, and many new features and bugfixes.

New in version 4.7 (April 4th, 2013)

  • 'My reports' actions store 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.
  • A 30% performance improvement in automated module tests.
  • Many more new features and fixes.

New in version 4.6.1 (January 9th, 2013)

  • New features:
  • 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.
  • Fixes:
  • 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 formatting 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 editing in custom report dialog.
  • Fix: Comparator values are not kept when a column is editing in custom report dialog.

New in version 4.6 (November 23rd, 2012)

  • Custom reports generation from a list.
  • It’s possible to customize the list mode defining your own editor.
  • You can assign a model object (an entity or a transient object) directly to a View to populate it.
  • In the jUnit tests, you can assert the content of generated PDFs.
  • New @RowAction annotation for collections.
  • Labels and messages are available in Russian.
  • The file name for generated reports includes model name and time.
  • Many more new features and fixes.

New in version 4.4 (March 28th, 2012)

  • Totals and row count are shown in collection frames when they are folded.
  • The comparator 'range' has been added to the list and collections filter.
  • Java 7 support.
  • A slide effect for hiding and showing frames.
  • Frames fill all the width of the view.
  • HtmlUnit has been upgraded to 2.9.
  • jQuery UI has been upgraded to 1.8.12.
  • jQuery has been upgraded to 1.5.2.
  • Liferay 4.1 is no longer supported.
  • A new method setConditionValuesTo() in ModuleTestBase.
  • Some bugfixes.

New in version 4.3.1 (January 13th, 2012)

  • This version fixes references with @AsEmbedded to read the referenced object if the ID has an event associated, dialogs on IE9, "object not found" when the ID is inside a section, parent entities not being injected in EntityValidor if the reference name does not match the model name, Oracle 9 maximum open cursors exceeded, an exception on commit from a dialog disabling the dialog and showing the error message in a hidden layer, and calculated values which depend on an unsaved value not being correct after modifying a collection.

New in version 4.2.2 (August 17th, 2011)

  • JetSpeed 2.2.1 is supported.
  • A new PersistenceUnit controller and SetPersistenceUnitAction class to facilitate multi-database applications.
  • BaseAction no longer implements IChangeControllersAction, but still implements the change controllers related methods.
  • The date format has been improved for Catalan.
  • Many bugfixes.

New in version 4.2.1 (July 12th, 2011)

  • View.setLabelId() supports a qualified member name as an argument.
  • Commons FileUpload was upgraded to 1.2.2.
  • The "images/" prefix of all action definitions was removed in default-controllers.xml; it was optional since v4.2.
  • English and Spanish messages were refined.
  • The new csvEncoding property is available in xava.property to define the encoding of the generated CSV.
  • Many bugs were fixed.

New in version 4.2 (June 21st, 2011)

  • 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.
  • The top right red 'Loading...' AJAX indicator has been 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.
  • A slide effect on list pagination (only for iPad).
  • A flip effect on changing mode (only for iPad).
  • Styles allow you to define more details about the UI behavior.
  • More new feature and fixes.

New in version 4.1.2 (April 12th, 2011)

  • A 'not contains' comparator was added to the list and collections filter.
  • A new ManyToMany.edit action was provided for updating elements from a many-to-many collection.
  • A new reload() method was added in ModuleTestBase for simulating clicking of the browser reload button.
  • createNotValidatingCollections() was added to MapFacade.
  • The user only can choose 20 rows per page at most for lists and collections, in order to maintain good performance.
  • A new 'reportParametersProviderClass' property was added to xava.properties.
  • Photos are shown in lists and collections.
  • There were some other new minor features and many bugfixes.

New in version 4.1 (February 16th, 2011)

  • Bean Validation JSR-303 support was added.
  • 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 is available for list and collections by adding a "+" to property names.
  • An automatic horizontal scrollbar was added for list and collections so as not to enlarge the UI.
  • Hibernate was upgraded to version 3.6.1.
  • Stereotype PASSWORD/CONTRASENA was added.
  • When the model is transient, the default controller-mode for the module is DetailOnly.

New in version 4.0.1 (January 12th, 2011)

  • New features:
  • 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.
  • Fixes:
  • 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.

New in version 4.0 (November 25th, 2010)

  • 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.

New in version 4 Milestone 3 (March 26th, 2010)

  • 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.

New in version 4 Milestone 2 (January 27th, 2010)

  • 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 < use-object / > in < action/ >.
  • 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.
  • Removed history.txt file.
  • 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 < action/ >, this produces a BACKWARD INCOMPATIBILITY over 4m1.
  • DWR engine.js is cached to improve performance.
  • No error occurs, but only a warning, when < use-object / > (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.

New in version 3.1.4 (August 28th, 2009)

  • This release adds support for @Formula annotations, formatters for list mode, translations to Serbian and Swedish, support for Liferay 5.2.3, and more than 50 new features and fixes.

New in version 3.1.3 (June 16th, 2009)

  • @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).

New in version 3.1.2 (April 23rd, 2009)

  • 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.

New in version 3.1.1 (February 24th, 2009)

  • Full support for WebSphere Portal 6.1, including the portlets look and feel.
  • This release allows you to use several AJAX portlets in the same portal page.
  • There are many new features and fixes.

New in version 3.1 (December 17th, 2008)

  • This version has all functionality of 3.0.3, but it generates an AJAX application. Just update to OX 3.1, and your OX (3.x, 2.x, or 1.x) application will use AJAX without touching a single line of code.