Thank you so much for the appreciation. In terms of open bugs in Jira, it 
unfortunately is a matter of fact that we lost states on quite issues during 
the migration from BugZilla to Jira. As such, there's some issues showing up as 
open when they have been in another state (resolved, in progress, ...).

In other words, if you happen to find really old issues, chances are high that 
the same (maybe a very similar) issue has been fixed elsewhere.

Regards
Werner

> -----Ursprüngliche Nachricht-----
> Von: Bryan Helm [mailto:[EMAIL PROTECTED]
> Gesendet: Donnerstag, 26. April 2007 15:22
> An: [email protected]
> Betreff: Re: [castor-user] [XML] Marshalling Nested Hashmaps
> 
> Thanks, Werner. I appreciate the hard work you do that
> keeps Castor improving. I was only stuck on the older
> version because of my hacks and Jira issue #1313 not
> being worked on, so I had no idea there was a fix in
> place.  I will certainly try the latest version with
> my mappings changed back to the simpler form that I
> thought should work originally, and confirm it is all
> working as expected now.
> 
> Bryan
> 
> --- Werner Guttmann <[EMAIL PROTECTED]> wrote:
> 
> > Bryan,
> >
> > if you are stuck with Castor 0.9.9, most of the bug
> > fixing and/or
> > refactoring that has gone into (better) support for
> > (nested) maps will
> > not be available to you .. :-(. Are you in a
> > position to explain briefly
> > why you could not switch to e.g. Castor 1.1 or 1.1.1
> > ?
> >
> > I will have a look at CASTOR-1313 to get an idea
> > what this is about ....
> >
> > Werner
> >
> > Bryan Helm wrote:
> > > I had a lot of problems with this, and had to hack
> > up
> > > my version of Castor to get it to work (so now I
> > am
> > > stuck on an older version).  For version 0.9.9.1,
> > I
> > > added my own support following the pattern of the
> > > existing support.  I had to implement new MapItem
> > > classes for arrays or collections to be values of
> > hash
> > > maps. I did not submit my changes as a patch
> > because I
> > > don't think what I did was the right way to
> > support
> > > this - it was a quick-and-dirty fix.
> > >
> > > See CASTOR-1313 for other related Map weaknesses
> > when
> > > the value is itself multivalued, e.g. a Map, List,
> > or
> > > array.  If somebody is revamping Map processing,
> > it
> > > would be nice to keep that in mind as well.
> > >
> > > Bryan
> > >
> > > --- Christopher Spoehr <[EMAIL PROTECTED]> wrote:
> > >
> > >> Hello-
> > >>
> > >> I'm trying to marshal/unmarshal a HashMap of
> > >> HashMaps (eventually it will be a HashMap of HMs,
> > >> Vectors, and Arrays, but one step at a time.) The
> > >> XML I'll eventually be working with will be given
> > to
> > >> me as one string - that's why I'm working with
> > the
> > >> string readers/writers.
> > >>
> > >> Using the Castor FAQ and the archives, I've
> > gotten
> > >> Castor to marshal and unmarshal the bean class
> > >> holding the HM successfully for a single
> > dimensional
> > >> HashMap. For the nested HM, Castor marshals
> > >> acceptably but gets hung up on the unmarshaling.
> > Any
> > >> tips would be appreciated. I'd seen in a previous
> > >> thread that Stephen Bash has had some experience
> > >> with this. Are you still out the Stephen?
> > >>
> > >> Holder Class:
> > >>
> > >> public class HashMapHolderBean {
> > >>
> > >>   private HashMap heldHashMap;
> > >>
> > >>   public HashMapHolderBean()
> > >>   {
> > >>           heldHashMap = new HashMap();
> > >>   }
> > >>
> > >>   public HashMapHolderBean(HashMap inputHashMap)
> > >>   {
> > >>           heldHashMap = inputHashMap;
> > >>   }
> > >>
> > >>   public HashMap getHeldHashMap() {
> > >>           return heldHashMap;
> > >>   }
> > >>
> > >>   public void setHeldHashMap(HashMap map) {
> > >>           heldHashMap = map;
> > >>   }
> > >> }
> > >>
> > >> HashMapHolderBeanMapping.xml:
> > >> <?xml version="1.0" encoding="UTF-8"?>
> > >> <mapping>
> > >>   <class
> > >>
> > name="com.sbc.cctp.easl.web.artt.HashMapHolderBean"
> > >> auto-complete="false">
> > >>           <description>Default mapping for class
> > >>
> > >
> >
> com.sbc.cctp.easl.web.artt.HashMapHolderBean</description>
> > >>           <map-to xml="hash-map-holder-bean" />
> > >>           <field name="heldHashMap" collection="map">
> > >>                   <bind-xml name="held-hash-map">
> > >>                           <class
> > >> name="org.exolab.castor.mapping.MapItem">
> > >>                                   <field name="key" type="string">
> > >>                                           <bind-xml name="key" 
> > >> node="element"
> > />
> > >>                                   </field>
> > >>                                   <field name="value"
> > >> type="java.lang.Object">
> > >>                                           <bind-xml name="value"
> > node="element">
> > >>                                                   <class
> > >> name="org.exolab.castor.mapping.MapItem" />
> > >>                                           </bind-xml>
> > >>                                   </field>
> > >>                           </class>
> > >>                   </bind-xml>
> > >>           </field>
> > >>   </class>
> > >> </mapping>
> > >>
> > >> Marshalling/Unmarshalling code:
> > >>   private String testMarshalling()
> > >>   {
> > >>           HashMap mapHM = new HashMap();
> > >>           mapHM.put("test","Hello World.");
> > >>           mapHM.put("test2","Hello Universe");
> > >>
> > >>           HashMap level2 = new HashMap();
> > >>           level2.put("level2_1","I'm level two");
> > >>
> > >>           mapHM.put("level2", level2);
> > >>
> > >>           HashMapHolderBean hashMapHolder = new
> > >> HashMapHolderBean(mapHM);
> > >>           StringWriter stringWriter = new
> > StringWriter();
> > >>
> > >>           try
> > >>           {
> > >>
> > >>                   //InputSource mappingSource = new
> > InputSource(
> > >> new StringReader(generateMapString()));
> > >>                   InputSource mappingSource = new
> > >>
> > >
> >
> InputSource(ClassLoader.getSystemResource("HashMapHolderBeanMapping.xml").
> toString());
> > >>                   Mapping mapping = new
> > >>
> > >
> >
> Mapping(AutomatedRegressionTestTool.class.getClassLoader());
> > >>                   mapping.loadMapping(mappingSource);
> > >>
> > >>                   Marshaller marshaller = new
> > >> Marshaller(stringWriter);
> > >>                   marshaller.setMapping(mapping);
> > >>                   marshaller.marshal(hashMapHolder);
> > >>           }
> > >>           catch (Exception e)
> > >>           {
> > >>                   log.error("Marshalling Error",e);
> > >>           }
> > >>
> > >>           return stringWriter.getBuffer().toString();
> > >>   }
> > >>
> > >>   private HashMapHolderBean
> > testUnMarshalling(String
> > >> marshalled)
> > >>   {
> > >>           String sourceString = marshalled;
> > >>           log.info("Marshalled length: " +
> > >> marshalled.length());
> > >>           log.info("Source length: " +
> > >> sourceString.length());
> > >>           log.info(sourceString);
> > >>
> > >>           HashMapHolderBean hmhb = new
> > >> HashMapHolderBean();
> > >>
> > >>           try
> > >>           {
> > >>                   InputSource mappingSource = new
> > >>
> > >
> >
> InputSource(ClassLoader.getSystemResource("HashMapHolderBeanMapping.xml").
> toString());
> > >>                   Mapping mapping = new
> > >>
> > >
> >
> Mapping(AutomatedRegressionTestTool.class.getClassLoader());
> > >>                   mapping.loadMapping(mappingSource);
> > >>
> > >>                   Unmarshaller unm = new
> > Unmarshaller(mapping);
> >
> === message truncated ===
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
> 
>     http://xircles.codehaus.org/manage_email


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to