Issue Details (XML | Word | Printable)

Key: XSTR-415
Type: Wish Wish
Status: Closed Closed
Resolution: Fixed
Priority: Minor Minor
Assignee: Joerg Schaible
Reporter: Hinse ter Schuur
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
XStream

Let JavaBeanConverter use bean introspection

Created: 20/Jul/07 07:56 AM   Updated: 25/Feb/08 05:01 PM   Resolved: 26/Jul/07 05:05 PM
Component/s: Converters
Affects Version/s: None
Fix Version/s: 1.3

File Attachments: 1. Java Source File BeanWithBeanInfoConverter.java (15 kB)
2. Text File patch.txt (6 kB)

Issue Links:
Supercedes
 


 Description  « Hide

Currently the JavaBeanConverter uses reflection. Maybe it's better to use bean introspection. The attached patch changes BeanProvider, so that it uses bean introspection.

Maybe it's better to add a setBeanProvider info to the JavaBeanConverter in order to support other (custom) BeanProviders.



Sort Order: Ascending order - Click to sort in descending order
Jim Redman added a comment - 20/Jul/07 01:29 PM

Here's an alternate approach in case you are interested. We save the types, because, for example, byte or char types will not be handle correctly if the type is not encoded in the file. It also only writes changed properties and uses the current class loader to get the beaninfo (should probably default to Introspection if the beaninfo does not exist, etc. etc. etc.).

There are some other tweaks, like not saving a property if it is hidden and expert, not saving read-only properties, etc. Also has mapping of class names, so that if you move a bean from one package to another, or just rename it, you can still read the file (I think that this duplicates a feature that is already in XStream).

We've been using this for close to 2 years now. It saves and restores our 200+ javabeans (http://www.ergotech.com) and most of the javabean editor. That is, we treat our screens and similar as a JavaBeans.


Hinse ter Schuur added a comment - 24/Jul/07 08:47 AM

Added an updated version of the JavaBeanConverter and BeanProvider as attachement of issue <a href="http://jira.codehaus.org/browse/XSTR-280">XSTR-280</a>. Contains fix for omitted fields and field aliases.


Joerg Schaible added a comment - 26/Jul/07 05:05 PM

@Hinse:
Thanks for your patch. I've added a modified version of the patch you've provided in XSTR-280 and made the tests JDK independent.

@Jim:
Also thank you for your contribution. Basically the functionality is already too specialized, some of it can already be done with other mechanisms of XStream. However, there are some interesting details.


Joerg Schaible added a comment - 25/Feb/08 05:01 PM

Closing issues before next release.