The UJO Framework release notes
*******************************

release 1.00 (2010-10-17)
+ the Ujorm User Guide is completed
+ new effective method for bulk loading of lazy attributes: OrmTools.loadLazyValuesAsBatch()
+ support for the Spring Framework to manage an ORM Session and Transactions
+ Criterion have got a native support for IN operator
+ UjoProperty default value reading is fixed in some cases
+ JavaDoc is improved

release 0.94 (2010-05-02)
+ stored database procedures and functions are supported
+ the class Query implements the interface Iterable thanks to idea of Jiri Pejchal
+ mapping the Enum to VARCHAR - by interface ValueExportable
+ mapping any user object to VARCHAR - by interface ValueExportable
+ new method OrmTools.loadLazyValues(...) to load lazy values to required depth
+ new method session.reload(ujo) to reload properties from database
+ new method Criterion.whereNull(..) to simple comparison to the NULL literal
+ MetaParams supports the "set(..)" value to change values
+ checking an open Session is done
+ assembling the meta-model is synchronized now
+ parameter name 'Orm2ddlPolicy' is renamed to 'orm2ddlPolicy'
+ class MetaView is renamed to MetaSelect
+ JavaDoc and Tutorial in the class are improved

release 0.93 (2010-03-07)
+ orm: the incremental database update by meta-model using DDL statements
+ orm: the LIMIT and OFFSET are supported by attributes of the Query
+ orm: database indexes are created by the meta-model, there are supported unique, non-unique indexes include a composed one
+ orm: new method to get a foreign key: OrmTable.readPK(property)
+ orm: checking the SQL keywords
+ orm: note: database table by the SQL statement: ALTER TABLE ormujo_pk_support RENAME TO ujorm_pk_support;
+ core: new method to copy value: UjoProperty.copy(from, to)
+ core: new method to create instance: Criterion.where(condition)
+ core: the Criterion visualization is improved by the method: Criterion.toString()
+ code cleaning

release 0.92 (2010-01-03)
+ THE IMPORTANT CHANGE: the method UjoProperty.getValue() replaces the value of null for default - instead of the original method Ujo.readValue() in the previous release!
+ two UjoProperties can be easily concatenated using the new type safe method add(...)
+ the base UJO objects support the 'java.io.Serializable' feature - include the OrmTable
+ code cleaning, extended JavaDoc, small bug fixing
+ orm: Enum support is done by mapping to a numeric DB type
+ orm: custom Java type mapping is supported by extending the class TypeService
+ orm: the new method OrmHandler.findPropertiesByTypeClass(Class) for common use is done
+ orm: simplified SQL dialect implementations is done include the ORACLE support
+ orm: a new feature available by method Sesssion.isRollbackOnly()
+ orm: default value for parameter SEQUENCE_CACHE is 100 (instead of original 64)
- orm: reading a null value from ResultSet is fixed
- orm: the MySqlDialect if fixed, an explicit use of  the engine 'InnoDB' was implemented

release 0.91 (2009-09-20)
+ pesimistic lock implementation for Ujorm
+ internal Ujorm sequence supports now: Long, Integer, BigInteger, Short, Char
+ two Criterion operators are done for a user customization in the SQL statement (Ujorm)
+ Hibernate support is fixed
+ new static method creates a ListProperty with the default property name
+ JavaDoc improvements include 'Tutorial in the class' is done
+ peformance tuning + new benchmark values are released

release 0.90 (2009-08-29)
+ new ORM implementation for databases: PostgreSql, MySql, Derby, H2, HSQLDB, Firebird and Oracle
+ new implementation QuickUjo can take the Ujo property name from a class field name
+ new factory methods of UjoProperty implementation
+ refactoring of the source code

release 0.85 (2009-04-20)
+ new interface UjoMiddle extends the Ujo interface in four methods (set, get, setText, getText)
+ the original UjoExt interface extends UjoMiddle now
+ the first Map & Ujo implementation is called MapImplUjo
+ new annotation @XmlElementBody supports a XML body value now
+ List serialization of the plain objects is supported (e.g. List<Integer>)
+ there is supported a text serialization of the list of simple objects (e.g. List<Integer>)
+ text serialization of the type java.sql.Date is supported
+ interface UjoProperty has new methods for a direction of sorting: isAscending(), descending()
+ new method UjoPropertyList.isItemTypeOf(Class) tests that property type is a type (or subtype) of the parameter
+ all 'Super' classes was renamed to the prefix 'Abstract' classes
+ class PropertyTextable is was renamed to ValueTextable
+ small bug fixing
+ JavaDoc completition

release 0.84 (2009-03-08)
+ new method: UjoProperty.isDefault(UJO) indicates whether a parameter value of the ujo "equal to" the property default value
+ new method: UjoProperty.isTypeOf(Class) returns true if property type is a type (or subtype) of the parameter
+ new property UjoPropertyRow.P_INDEX shows a property index
+ method Ujo.readProperties(..) returns the result properties in a natural order in case the properties was builded by a default newProperty() method
+ text reading from a PathProperty is fixed


release 0.831 (2009-01-31)
+ performance improving: for example a deserialization ArrayUjo is about 36% faster in compare to JAXB

release 0.83 (2009-01-29)
+ UjoCriteria supports a searching for objects in the list
+ support or the Proxy pattern design of the BeanUjo class
+ SimpleDateFormat synchronization if fixed

release 0.82 (2008-11-23)
+ there are three new Ujo implementations for different purposes:
+ FactoryUjo: a factory to creating new instances by a property type, the special parameter constructor is supported as well as no parameter constructor
+ RegistrarUjo: the implementation allows to register the PropertyChangeListener for selected property and an action (before or after) value change
+ FieldUjo: the solution provides an access to a private object fields by UjoProperty
+ all implementations are in a different package structure and they will not in the core in the future

release 0.81 (2008-10-21)
+ new class PathProperty for a composition of several UjoProperties
+ Charset is supported by a UjoManager object
+ UjoProperty implements a CharSequence for an easy access to the property Name
+ new class ListProperty extending UjoPropertyList is created for property ArrayList implementations
+ new method is UjoPropertyList.removeItem(UJO, ITEM) is added
+ new method SuperUjoExt.remove(UjoPropertyList, ITEM) is added
+ small bug fixing and new JUnit tests

release 0.80 (2008-09-07)
+ UJO actions are converted from a primitive type int to an new object UjoAction
+ all ACTION constants are moved to the interface UjoAction
+ serialization performance is improved
+ motivation tutorial in a "slide show" format is available on the home page
+ framework version is available in the manifest of JAR file
+ command line: "java -run ujo.jar" shows version number and some basic information about framework
+ class ZeroProviderImpl was removed, its function was replaced by UjoProperty.getDefault() feature
- class UjoManagerXML is fixed for a multi thread access

release 0.80.rc3 (2008-08-23)
+ new methods UjoExt.getText(...) and Ujo.setText(...) are available for a text processing
+ new method UjoExt.findProperty(String)
+ SingleUjoTabModel enhancements
+ PojoUjo class was renamed to a more comprehensible name BeanUjo (include properties and subclasses)
+ Properties *Rife was removed from the UJO Framework core for simplification class model

release 0.80.rc2 (2008-08-07)
+ some abstract implementations of UjoExt interface are slightly improved for better type safe features
+ there is created a new method to set columns to a UjoTableModel class
+ methods of UjoTextable interface was extended about the "context" parameter. The original methods is implemented in a SuperUjo class
+ method of UjoCloneable interface was extended about the "context" parameter.

release 0.80.rc (2008-07-13)
+ UjoExt interface is significantly improved for better type safe features
+ documentation extensions

release 0.80.beta (2008-06-23)
+ interface UjoExt offers a more conventional attribute access
+ chaining of properties is supported
+ default value management is just implemented by a new method getDefault() instead of an obsolete solution using an ACTION_ZERO_REPLACE constant
+ Java parameter -enableassertions switch on a value type checking in a method Ujo.writeProperty(...)
+ many documentation areas are supplemented include a JavaDoc
+ Internet home page is redesigned

release 0.75 (2008-05-18)
+ API of PojoProperty class was extended for a better usability
- bug of Resource Bundle data export was fixed

release 0.74 (2008-05-11)
+ CSV persistence is supported now
+ XML performance was improved
+ new Ujo implementation called UjoPojo is done for a JavaBean class support
+ API of persistence tools was slightly changed for better extension features

release 0.73 (2008-04-14)
+ attributes in a XML export file is supported now
+ performance tuning 
+ XML persistence performance tests are completed and described in documentation  
+ action constants are reevaluated (there is recommended to recompile your project)

release 0.72 (2008-03-16)
+ UJO implementations have got extended API for easier PROPERTY building with a better type saving.
+ class UjoComparator have got new method: equals(UJO ujo1, UJO ujo2)  
+ documentation was supplemented

release 0.71 (2007-11-26)
+ code cleaning: a compilation with parameter "-Xlint:unchecked parameter" doesn't write any warning.
+ API cleaning: an obscure class names with a suffix "Easy" was replaced by a word "Rife"  
+ documentation was improved

release 0.70 (2007-11-16) 
+ project documentation is translated into English
+ unnecessary class MapUjoTextable was removed
+ class SingleUjoTabModel is fixed

release 0.70.beta2 (2007-10-19)
+ project documentation is fixed and significantly extended
+ method UjoTableModel.insertRow(..) is renamed to addRow(..)

release 0.70.beta (2007-10-12)
+ the first public version
+ Ujo interface API is finished
+ XML export / import is working
+ Resource bundle export / import is working
+ a Zero provider is supported
+ project documentation version is available in a Czech language only

-- 
EOF
