Change Log for OpenXava project =============================== 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 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. - French translation of labels and messages by a native French speaker. - 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 calcultors 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.