2009-04-26

Weekly Report for Project(2009-04-26)

Hi,  Ben
        I have described my current progress about project,  and question list which i have now in this report,  can you spend a little time to review it and give me a feedback,  thank you:-)

1.  Things which I have done in this week
        (1)   Read all the relative documents in wiki,   such as User Guide,  Administrator Guide,  and Developer Guide,  etc
        (2)   Read the Tutorial of Simple Framework And know about the basic API of Simple,  mainly about   @Element,  @Atribute,  @ ElementList,  etc
        (3)   See a part codes of current domain objects

2.  Things which I am doing now
        (1)   Continue reading codes of current domain objects in Openmrs.
        I want to know more information of Simple’s annotations in Openmrs by do this.

3.  Question List
        (1)   The determinate range of objects which need be serialize/deserialize by XStream?
        When I see the code in domain objects,  I find that a few classes under the package “org.openmrs” are not have the any config annotation of Simple Framework,  such as Drug.java,  Order.java,  etc.
        Besides,  several classes not in package “org.openmrs”,  such as the “Parameter.java” in the package “org.openmrs.report”,  these classes also have the annotations of Simple Framework.
        So I am puzzled with the determinate range of objects which need to serialize.   Apparently,  the range of all domain objects in package “org.openmrs” is not same with the range of classes which have annotations of Simple Framwork.

        (2)   As using XStream to serialize objects,   now I have find three places which maybe need XStream to implement and haven’t be implemented in current code of Openmrs.
        1st:   “Root(strict=false)”
        In XStream,  it just implements the feature of “Root(strict=true)”.

        2nd:   “Element(required=true)”/”Attribute(required=true)”
        In XStream,  it only implements the feature of “(required=false)”,  it doesn’t have choices to config for “(required=true)”

        3rd:   “Element(data=true)”
        In XStream,  it doesn’t have this feature as Simple.  It just put the entity label for those special letter.

        All above,  I want to know while using XStream to serialize objects,  whether need these features all the same?   Or just a part?

        Ben,   As you say,   I have look a few topics,  if want to implement feature about “Element(data=true)”,  then need to upgrade XStream,  we need to override the HierarchicalStreamWriter class.   But I am not very sure if this manner can be suitable,  because I haven’t writen any trial code.

        (3)   Which properties of Class need to be omitted and which properties of Class need to exist in XML file as the Attribute?   (just as which properties need “useAttributeFor” and “omitField” method)
        I think whether I can get the exactly information just from the current information of Simple Framework’s annotations which have been defined in OpenMRS project.

        (4)   Which classes need Converter ?
        Now as my current knowledge,  I think just those classes (which don't serialize most of their properties or have some special converting mechanism while serialize their properties) need the Converter.

        (5)   The determinate requirements for serializing objects in my project?
        Now as i see more domain objects of Openmrs,  I find a few difference between serializing using XStream and Simple in Openmrs.  Such as some properties are defined as Attribute in the serialized xml string by Simple while they are defined as Element in the serialized xml string.  I think here is a few unmatched places and we need to fix them.


        (6)   At last i want to comfirm whether email or blog is the more convenient manner to communicate between us(such as reporting my current progress and submit my current question list,  etc)  ,   Ben ? And if you think i should using blog to submit my question list,  do you consider i should put post with label "openmrs",  because i think the talk about my question is just between us is ok?   do you agree?

        For me the two manners(email and blog) is ok,  you think which is more convenient i will do which:-)

2009-04-22

problem of my project "Serialization Service"

Hi,Ben and everyone
Now,I am preparing my final proposal for project "Serialization Service".
I have encountered a problem,as follow:

Question:How I can determin the detailed information about all the domain objects of OpenMRS?Such as which properties of object need to alias, what the alias name of the domain object, which properties of object need to omit, which objects need the specific converter?
I have problem knowing about these information :-/
Ben,or everyone else,Can you give me a guide where I can get these informations or how I can get these information?
Thanks,hope you help:-)

2009-04-21

GSoC 2009

Today,I am very happy my proposal has been accepted by my mentor and OpenMRS.Hah,Now I can know more about Open Source and give my contribution to Open Source.
Yeah,Just fighting for Open Source,a so cool work~~