2009-08-24

Weekly Report for Project (2009-08-24)

    What i have done in last week are as follow:

    (1) I have communicated with Ben about how to design the page "confrimImport.jsp" for showing all things will be imported.

    (2) I have communicated with Ben about how to search a guess answer/setmember and confirm when to add occ mapping for every concept imported, guessed, and chosen

    (3) I have completed a part of writting the controller "ConfirmImportConceptFormController".

     And the left work is as follow:

     #1 write the confirmImport.jsp to list off all things will be imported into database.

     #2 improve the controller "ConfirmImportConceptFormController" to deal with the post request from page "confirmImport.jsp"

2009-08-17

Weekly Report for Project (2009-08-17)

    What i have done in last week are as follow:

    (1) I have communicated with Ben about how to design UI for picking up a similar concept to save into user's database.

    (2) I have looked through some simple stuffs introducing the spring mvc. And now i will begin to implemented the UI and controllers for importing similar concepts.

Weekly Report for Project (2009-08-10)

    Sorry for delay posting my project updates about two weeks, because i couldn't access google blogger when i was at home in the past two weeks. What i have done in last two weeks (2009/7/26 - 2009/8/10) are as follow:

    (1) I have resolved the ticket#1701.

    (2) Modify the occ's serialization, so that it can deal with the case that openmrs will only go one level for user object when do serialization.

    (3) Completed a part of importing similar concept work, now we can see the box having the similar concepts in it, the left work for me is that deseiralize from the string and save that similar concept into openmrs database.

2009-07-25

Weekly Report for Project (2009-07-25)

    What i have done in last week are as follow:

    (1) I completed the renaming work for serialization.xstream module.

    (2) I completed one direction for occ's work that sending concepts from occmodule to occ.

    (3) I have listed my questions to Ben and Phillipe, after i have look a little into the work of importing similar concepts from occ. The next step is to get an agreement on how to implement this function

2009-07-19

Weekly Report for Project (2009-07-19)

    What i have done in last week are as follow:

    (1) I mainly completed the work of moving serialization framework from branch into serialization-xstream module.

    (2) I have listed all my questions while i design for occ and occmodule's serialization work, now i have resolved many questions from Ben's answer.

2009-07-12

Weekly Report for Project (2009-07-13)

    What i have done in last week are as follow:

    (1) I have resolved the ticket#1623

    (2) I have seen all codes of occ and occmodule and installed occ and occmodule in my local machine successfully.

    (3) Updated jars of occmodule to match with Openmrs1.5.x in my machine

    (4) Began to design for occ's serialization and listed several problems to my Mentor Ben.

2009-07-05

Weekly Report for Project (2009-07-06)

    What i have done in last week are as follow:

    (1) I have given a patch for ticket#1588

    (2) I have stepped through all code of occmodule and most code of occ

    Sorry, Ben. I think in this week, i did too little things, i have spent too much time on resolving ticket#1588 because of my limmitted ability.

2009-06-28

Weekly Report for Project (2009-06-28)

    What i have done in last week are as follow:

    (1) I have written a wiki page describing how to serialize and deserialize.

    (2) I have downloaded the occmodule and occ, begin to familiarize them in order to do serialization work for them.

    (3) I am cooperating with jmiranda to resolve ticket#1588.

2009-06-20

Weekly Report For Project (2009-06-20)

    What i have done in last week are as follow:

    (1) I modified the logic to deal with short serialization, define a count variable in Own Serialization Strategy instead of using a threadlocal.

    (2) I abstracted some more in "BaseShortConverter", so that every sub short converter became more clear.

    (3) I collect three lists about which using Simple Framework's annotations and its seiralizer.

2009-06-15

Weekly Report for project (2009-06-15)

    In the past week, what i have done are as follow:

    (1) Complete the short serialization work including "XStreamShortSerializer.java" and all short converters for short-serialized class.

    (2) Complete all unit tests for every short-serialized class.

    (3) Write a class "XStreamShortSerializerTest" which contains some test methods for short serialization

2009-06-07

Weekly Report For Project (2009-06-07)

    In this week, what i have done are as follow:

    (1) Add a part of unit tests for testing long serialization and a file "XStreamSerializerTest.java" which has test methods which test the cglib's serialization, build reference for cglib, etc


    (2) Add and resolve a ticket about dealing with "set ImplementationId from web app"

    (3) Add a class "ConvertImplementationId" which convert all serialized data of ImplementationId from Simple to XStream

2009-05-30

Weekly Report for project(2009-05-30)

    In this week, What i have done are as follow:

    (1)  I have sent a mail about the serialization mapping which i did in "XStreamSerializer".  And talk with other devs to improve the mapping for domain objects

    (2)  I have do the short converters for a part classes, such as User/Patient/Person

    (3)  Modified the logic in "XStreamSerializer.java"

2009-05-24

Weekly Report for project(2009-05-24)

    Last week, because the problem of internet, i cannot login in my blogger for more than a week. Now, i can login in it through proxy.

    In the passed two weeks, the work i have done as follow:
    (1)  add function for serializing cglib proxy
    (2)  complete all config opearation in "XStreamSerializer.java"
    (3)  write three testcases PersonAddress/PersonName/CohortSerializationTest.java

2009-05-10

Weekly Report for Project(2009-05-10)

    My work in this week mainly contains finish my final proposal, create my project's branch("serialization")  and begin to code.

    For this weeky, i haven't new questions, most questions have been resolved in communication with Ben throught email:-)

2009-05-04

Weekly Report For Project(2009-05-03)

1. Things which I have done this week
        (1) Read the source code about all domain classes and some code about the report module.
        (2) Read the document about unit test framework used in OpenMRS.

2. Things which I am doing now
        (1) Reading the API doc of XStream and some specific source code about those classes which will be used in this project.

3. Question List
        (1) The form of writing the unit test for Serialization
        As i see the document and some codes about unit test in Openmrs.  I have a problem,  i think if i should write a new Testcase for every domain object?  or i can just write a new method with "@should" in the class "SerializatoinServiceTest" for every domain object?
        Ben,  can you tell me which test class i can refer to?

        (2) About implementing the feature of "@Element(data=true)"
        I think if i extends some classes of XStream and override methods in them in order to implement the feature "@Element(data=true)",  then I don't know this manner whether will break some licences in XStream?

        (3) The form through which I will do my project
        Some projects will be done in a branch or module.  And I want to know if I can directly code for my project in current core codes in Openmrs,  Or also need make a new branch for my project?

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~~