Menu

Initial release from sojo version 0.1.0

Are Plain Old Java Objects (POJOs) to complex?

POJOs are very importend for the development. With POJOs you can develop object orientated and independent from often changed technologies.

But what is with cases, where Java must communicate with "other worlds". Other worlds are interfaces,
where object orientation is not supported or is the best decision. For example by:

* operation of complex Java-Objects-graphs:
- copy or clone complex object graph (can manage different version (object history) from one object graph)
- compare complex object graph
- extend objects to additional information (e.g.: object-versions (number of changes), change date or user)
- easy navigate on the complex object graph
- serialize complex object graph without implementation from the interface java.io.Serializable
- making object-values immutable, for testing concurrent access - multi threading)
* remote acces/communication:
- HTTP protocol - request and response are based on String represantation
- RMI (Java-Object must serializable (marshalling) or deserializable (unmarshalling))
- WebService or XML RPC - convert Java-Object in special String represantation, in XML
- create value object/transfer object to transport over the network
* data access:
- object/relational persistence respectively object/relational mapping
- flat files (convert Java-Object-Graph to a flat represantation)
- property files (e.g. convert Strings to Long, Date, ... by reading a property file and map the value to setter from a Bean)
- legacy systems
* GUI interface:
- transform business models to GUI-models (DataBinder)
- every changes on the GUI-model must to notice (integrated PropertyChangeListener or VetoableChangeListener)
* and so on ...

In cases, where object orientation and not object orientation must work together, exist the problem of independent mismatched. The SOJO want to do this problem a little bit smaller.

This project is follow someone's example from Commons BeanUtils. The main differnt to this frameworks is, that SOJO can convert complex Java-Object graphs (with cycle detection) to a desired structure. The aim from this framework is, to provide a "pluggable" basis to integrate different kind of conversions (also your own implementations). With this infrastructure can solve problems, where POJOs are not supported or are not the best decision.

Feature for the first version 0.1.0:

- serialize/deserialize complex object graph (Feature Requests: 1576716).
- easy navigate on the complex object graph (Feature Requests: 1576711).
- compare complex object graph (Feature Requests: 1576709).
- copy or clone complex object graph (Feature Requests: 1576708).

Bugs:

Homepage:

http://sojo.sourceforge.net

Download:

http://sourceforge.net/project/showfiles.php?group_id=178713

Posted by Mario Linke 2006-10-15

Log in to post a comment.