| Version | Date | Description |
|---|---|---|
| 1.0.0 | 2009-05-30 | The first stable version |
| 0.5.0 | 2007-05-01 | The second release with development status: Beta |
| 0.4.0 | 2007-03-04 | This is the first release with development status: Beta |
| 0.3.0 | 2007-01-08 | The third release |
| 0.2.0 | 2006-11-06 | The second release |
| 0.1.0 | 2006-10-15 | The first version 0.1.0 |
| Type | Changes | By |
|---|---|---|
![]() |
Bug in compare (Bug: 1722101, thanks Avihai). | lm |
![]() |
Deserialization of JSON object breaks on array of bytes. (Bug: 1728214, thanks P. Wolny). | lm |
![]() |
Invalid JSON serialization of empty string (Bug: 1744253 and 1958512, thanks P. Wolny). | lm |
![]() |
ReflectionMethodHelper should support "is" getters (Bug: 1828028, thanks D. Carrillo). | lm |
![]() |
JSON serialize don't work by Map (String,Object). (Bug: 1755893, thanks boci). | lm |
![]() |
Incorrectly escapized backslash. (Bug: 1769131, thanks T. Zalusky). | lm |
![]() |
Add additional Java date format (i.e. EST timezone). (Bug: 2164723, thanks T. Hein). | lm |
![]() |
Support for Beans with properties with type java.net.URL. (Bug: 2164752, thanks T. Hein). | lm |
![]() |
CsvParser throws exception when parsing certain data. (Bug: 1793604, thanks Ryan (rptsang)). | lm |
![]() |
Using the field "class" to represent the java class name breaks IE since class is a special word. (Bug: 1784930, thanks amccarri). | lm |
![]() |
Multiple references to same bean from another bean. (Bug: 2759772, thanks gokturk3). | lm |
![]() |
Support for Beans with properties with type Object. (Bug: 2477567). | lm |
![]() |
NPE in ConversionIterator. This exception appaer, when the object is not null, but the toString method get null. (Bug: 2786172). | lm |
![]() |
Convert Objects per fields, not methods. In some case it is better, the converter used the attributes per fields and not per method. This is better, if not exist for every body attribute a setter method. (Feature: 2786181). | lm |
| Type | Changes | By |
|---|---|---|
![]() |
Can't create a new instance of StackTraceElement in Java 5 (Bug: 1678348). | lm |
![]() |
Classloaders issue: In muliple classloaders environment (like application container) it would be nice if Sojo could be loaded by parent classloader of classloader of the application. Solution: Replacing Class.forName(className) with Class.forName(className, true, Thread.currentThread().getContextClassloader()). (Bug: 1686733, thanks B. Hunt). | lm |
![]() |
Deserialization of JSON object breaks on valid unicode char. (Bug: 1686652, thanks B. Hunt). | lm |
![]() |
Deserialization of JSON object breaks on Timestamp. (Bug: 1688969, thanks B. Hunt). | lm |
![]() |
Methods: equals and compare are breaking. (Bug: 1692340). | lm |
![]() |
JsonSerializer not Thread Safe. JsonSerializer.deserialize cannot be used in a Thread safe way, since the method delegates calls to satic parser JsonParserGenerate. A better way would be to generate the JsonParserGenerate with STATIC=false and use one Parser per JsonSerializer. (Bug: 1694100, thanks T. Huhtanen). | lm |
![]() |
Repeated call of JSONSerializer with different value. (Bug: 1705249, thanks T. Nagy). | lm |
![]() |
Sort List, Set, Map and Array there contains JavaBeans. (Feature Request: 1673100) | lm |
![]() |
Support for filtering by equals, hashCode and compare. (Feature Request: 1692337) | lm |
![]() |
Support for regexp by filtering. (Feature Request: 1706577) | lm |
| Type | Changes | By |
|---|---|---|
![]() |
Inconsistences return types between Xml and Json Serializer: the return type from XmlRpcSerializer.deserialize is a list that contain a desterilized Object as first element but this is not the same in JsonSerializer.deserialize , as this method return the desterilized Object directly not in a List (Bug: 1633051). | lm |
![]() |
XmlRpcSerializer is not thread safe in version 0.3. In version 0.2 of sojo the XmlRpcSerializer was a thread safe but in 0.3 this isn't true. The XmlRpcSerializer was changed, because so that is uniform to the other Serializer (JsonSerializer for example) (Bug: 1632206). | lm |
![]() |
By the org.xml.sax.helpers.DefaultHandler class in the characters-method can be data lose. The reason is to call this callback-method more than one times for more performance from the SAXParser. This is the case by the xerces implementation (org.apache.xerces.jaxp.SAXParserFactoryImpl). This can be a promlem by big XML-files. (Bug: 1664621). | lm |
![]() |
CSV data interchange (Feature Request: 1639781) | lm |
![]() |
Calculate over all values the ha shCode. This is the complement to the ObjectUtil.equals - Method. (Feature Request: 1671151) | lm |
![]() |
CompareTo method for all objects (JavaBeans too) (Feature Request: 1671946) | lm |
![]() |
Extend Serializer method deserialize: The Serializer get a second deserialize method with an additional parameter: public abstract Object deserialize(Object pvSourceObject, Class pvRootClass); So can deserialize Objects, where in the serialize isen't the class information. (Feature Request: 1656910) | lm |
![]() |
Create ThrowableConverterInterceptor: Can add a ThrowableConverterInterceptor to the Converter. This interceptor transform a Exception to a ThrowableWrapper. The benefit of this Conversion is, that can wrap a Throwable instance and can do an StackTrace or show the ExceptionMessage without a knowledge of the original ExceptionClass. For example, the server thrown a 'HibernateException' and the client don't know the hibernate library. In the StackTrace you can see the StackTrace of the server. (Feature Request: 1662346) | lm |
![]() |
Add parameter to type by ConverterInterceptor (beforeConvert / afterConvert). This is more flexible to define the to class type. (Feature Request: 1662347) | lm |
![]() |
Set desired date format:CURRENT serialized with JSON: {"dob":"Tue Feb 20 10:25:19 EST 2007","id":10} DESIRED serialized form: {"dob":"02/20/2007","id":10} (Feature Request: 1664604, thanks J. Saremi) | lm |
| Type | Changes | By |
|---|---|---|
![]() |
Can't call twice time the method ObjectUtil.makeSimple. By the second call is the result the same, how call of method ObjectUtil.makeComplex (Bug: 1622475). | lm |
![]() |
The result-Maps of ReflectionMethodHelper are modifiable (e.g. getAllGetterMethod). This is critical, because this Map's are static. If one instance this map change, work all instances with this changed map. (Bug: 1621357) | lm |
![]() |
JsonSerializer serialize Map with no String key not correct. This mean, the key was ignored (Bug: 1615199). | lm |
![]() |
JsonSerializer don't wrapped in double quotes and using backslash escapes (Bug: 1616053, thanks T. Nagy). | lm |
![]() |
Filter for properties. Not all properties of a class want to include by converting objects. Especial by interchange data are not all data (properties) relevant. With a filter can select the (transient) properties, that are filtered by serialize objects (Feature Request: 1612707, thanks G. Greg). | lm |
![]() |
Refactor package and class-names (remove common loggings library and replace with net.sf.sojo.core.NonCriticalExceptionHandler) (Feature Request: 1615202). | lm |
![]() |
Remove all dependencies to external libraries (Feature Request: 1625003) | lm |
| Type | Changes | By |
|---|---|---|
![]() |
Conversions don't detect cycels by Collections and Maps. This problem is occurrence, if Collections/Maps are nested in a other Collections/Maps. (Bug: 1589317) | lm |
![]() |
Only the call in the constructor CommonObjectUtil (true/false) is effected. (Bug: 1580303) | lm |
![]() |
Support for interchange format JSON. (Feature Request: 1580533) | lm |
![]() |
Support for interchange format XML-RPC. (Feature Request: 1583118) | lm |
| Type | Changes | By |
|---|---|---|
![]() |
serialize/deserialize complex object graph (Feature Requests: 1576716). | lm |
![]() |
easy navigate on the complex object graph (Feature Requests: 1576711). | lm |
![]() |
compare complex object graph (Feature Requests: 1576709). | lm |
![]() |
copy or clone complex object graph (Feature Requests: 1576708). | lm |