2010-03-17

Ujorm 0.93 released

The open-source ORM framework Ujorm 0.93 for rapid Java development based on a relation database has been released. The framework provides a type-safe API for database queries so the most of typing errors are detected before running the application. Developer can take an advantage of a code-completion in their favorite IDE at coding time.

New features:
  • incremental database update by meta-model using DDL statements
  • LIMIT and OFFSET are supported
  • database indexes are created by the meta-model, added support for unique, non-unique indexes including the composed one
  • checking of SQL keywords
  • more enhancements inspired by the real needs of developers of commercial application

Release of version 1.0 is scheduled for autumn 2010, in this version is planned:
  • controlling the session and transactions by the Spring Framework 
  • support for calling database stored procedures
  • completing Wiki documentation

Related links:

2010-01-04

UJO Framework 0.92 was released

What does this framework? It is a Java framework with a powerful object architecture for a common use - include an object-relation mapping (ORM) for a rapid development. The unique object architecture is suitable for to different text persistence, building new common generic functions due its easy introspection or a data binding for example.

The core changes of the release 0.92

  • 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
The Ujorm changes:
  • Enum support is done by mapping to a numeric DB type
  • custom Java type mapping is supported by extending the class TypeService
  • the new method OrmHandler.findPropertiesByTypeClass(Class) for common use is done
  • simplified SQL dialect implementations is done include the ORACLE support
  • a new feature available by method Sesssion.isRollbackOnly()
  • default value for parameter SEQUENCE_CACHE is 100 (instead of original 64)
  • reading a null value from ResultSet is fixed
  • the MySqlDialect if fixed, an explicit use of  the engine 'InnoDB' was implemented

2009-10-23

Using the UJO in Hibernate

How to use UJO objects in the ORM framework Hibernate?
What may be the reason to replace traditional POJO objects by more invasive alternative?

Some answers can be found in the article published on a server TheServerSide .


2009-08-30

Ujorm - new high performance ORM for Java

Let me to introduce a new open source ORM framework for Java called Ujorm. I have created the ORM solution especially for a rapid development of persistent layer, however the first performance tests show that some types of SELECT query are very fast in comparison to its competitors. Next features are: the type safe parameters in the query, small memory footprint and the minimum size of the entire solution.

After the publication of UJO architecture it became clear that it would be difficult to gain the favor of developers, without more services. Therefore I started to form a new ORM solution that would evaluate its interesting features and I believe now this result has much to offer.

I hope that you will not be angry if I compare my solution with the popular Hibernate. The motivation presentation is here:
http://ujoframework.org/presentation/

Results of benchmark tests are in the following table, details of testing can be found in the presentation.

Action Ujorm 0.90 Hibernate 3.3.1 Ratio
single select0.37 s0.82 s2.2
empty selects1.2 s156 s126.6
multi select21 s173 s8.1
insert10 s12 s1.2
delete82 s215 s2.6
update8 s4 s0.5

Descriptions of actions:
  • single select - a one big select for all order items (with a condition)
  • empty selects - 2000 selects with the empty result - where a condition contains different parameter values
  • multi select - many different selects to emulate a server application or statements with no optimization
  • insert - insert 2000 orders, 14000 items and 1 user
  • delete - execution many statements to delete all table rows
  • update - modify and save a loaded BO


ORM home page:
http://ujoframework.org/orm/

Link to the source code:
https://sourceforge.net/projects/ujoframework/files/

Link to FAQ:
http://ujoframework.org/dokuwiki/doku.php?id=orm_faq

Your suggestions and comments are welcome. If you are interested to cooperation please contact the author at: ujoframework(at)gmail.com .

Pavel

2009-05-29

UJO Framework release 0.85

The UJO Framework was essentially extended to version 0.85. This release can be used in a Maven structure project by the dependency tag:

  <dependency>
<groupid>org.ujoframework</groupid>
<artifactid>ujo-core</artifactid>
<version>0.85.00</version>
</dependency>

The most importat changes are:

  • the first Map & Ujo implementation called MapImplUjo is published
  • new annotation @XmlElementBody supports a XML body value now
  • List serialization of the plain objects is supported, 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
  • new interface UjoMiddle extends the Ujo interface in four methods (set, get, setText, getText)

2008-10-27

jWorkSheet 0.81 is released

The last changes:
  • the better security of your personal data: if the data.xml file is missing or is empty, the application tries to restore a backup and show an info dialog
  • the first application parameter can specify a data directory (for a portable launching e.g.)
  • sorting the project description is allowed by a click on the table header
  • UJO Framework release 0.81 is used

2008-09-07

UJO Framework release 0.80

The UJO Framework was essentially extended to version 0.80. Some news are:

  • the new interface UjoExt is available for a better comfort to developers. The interface supports for example a chaining of properties or setters
  • optimized deserialization of UJO objects, which is now faster as JAXB 2.1.
  • simplification of some methods by a new interface UjoAction

UJO Framework provides objects with a different architecture from JavaBeans. The original idea was a toy with generic data types of Java 5.0 however over time it appears, that the architecture has some exciting features:
  • an easy object introspection without a heavy PropertyDescriptor implementation
  • a transfer of the UJO properties (not values) by a collection to a method
  • the core of the building has two interfaces for an easy implementation

These properties open up new possibilities for the use in the J2EE mainly in a production of generic operations over objects. Framework contains some tools for managing the UJO object in addition. See a short motivational presentation for more information.
Slide show

You can find a link to a reference application called jWorkSheet on the project home page.
The jWorkSheet is a project time tracker desktop application which uses the architecture UJO objects consistently for all persistent objects.

I welcome all feedback and comments.