Andrus,
I just ran a couple of tests using the Xstream stuff, using some test
examples I have been using with our XMLcoder and Decoder.
Here is the code that I added to the cayenne-web-app example:
XStream xstream = new XStream(new DomDriver()); // does not require
XPP3 library
xstream.alias("artist", Artist.class);
String xml = xstream.toXML(artists);
System.out.println(xml);
And here is the resulting generated XML:
<list>
<artist serialization="custom">
<org.objectstyle.cayenne.CayenneDataObject>
<int>3</int>
<org.objectstyle.cayenne.ObjectId>
<objectIdKeys class="java.util.Collections-SingletonMap">
<k class="string">ARTIST_ID</k>
<v class="int">1</v>
</objectIdKeys>
<objectClass>webtest.Artist</objectClass>
<hashCode>-26571346</hashCode>
</org.objectstyle.cayenne.ObjectId>
</org.objectstyle.cayenne.CayenneDataObject>
</artist>
<artist serialization="custom">
<org.objectstyle.cayenne.CayenneDataObject>
<int>3</int>
<org.objectstyle.cayenne.ObjectId>
<objectIdKeys class="java.util.Collections-SingletonMap">
<k class="string">ARTIST_ID</k>
<v class="int">3</v>
</objectIdKeys>
<objectClass>webtest.Artist</objectClass>
<hashCode>-26571344</hashCode>
</org.objectstyle.cayenne.ObjectId>
</org.objectstyle.cayenne.CayenneDataObject>
</artist>
<artist serialization="custom">
<org.objectstyle.cayenne.CayenneDataObject>
<int>3</int>
<org.objectstyle.cayenne.ObjectId>
<objectIdKeys class="java.util.Collections-SingletonMap">
<k class="string">ARTIST_ID</k>
<v class="int">4</v>
</objectIdKeys>
<objectClass>webtest.Artist</objectClass>
<hashCode>-26571343</hashCode>
</org.objectstyle.cayenne.ObjectId>
</org.objectstyle.cayenne.CayenneDataObject>
</artist>
<artist serialization="custom">
<org.objectstyle.cayenne.CayenneDataObject>
<int>3</int>
<org.objectstyle.cayenne.ObjectId>
<objectIdKeys class="java.util.Collections-SingletonMap">
<k class="string">ARTIST_ID</k>
<v class="int">2</v>
</objectIdKeys>
<objectClass>webtest.Artist</objectClass>
<hashCode>-26571345</hashCode>
</org.objectstyle.cayenne.ObjectId>
</org.objectstyle.cayenne.CayenneDataObject>
</artist>
</list>
One of the advantages of our method is that you can use a mapping file so
you have complete control over the resulting XML and potentially it is a lot
cleaner. I think that other thing is that you lose the name of the
relationship and it will harder to parse.
I will look into the Xstream stuff further.
-John
On 5/12/05 10:29 AM, "Andrus Adamchik" <andru..bjectstyle.org> wrote:
>> Andrus just mentioned the XML serialization feature..how far along is
>> this? I ask because I recently used XStream
>> (http://xtstream.codehaus.org/) and found it fantastically easy to use
>> and also very fast. Just an idea..
>>
>> Holger
>
> This was developed by Kevin Menard and AFAIK this is still pretty unstable
> (http://objectstyle.org/confluence/display/CAY/2005/03/09/).
>
> I need to check out xtstream. If it happens to be something usable and
> easy to integrate with Cayenne, my vote would be to kill our own
> implementation.
>
> Andrus
>
>
>
This archive was generated by hypermail 2.0.0 : Thu May 12 2005 - 13:54:02 EDT