Leading Project for Biosimulation > Cell/Biodynamics Simulation > simBio
 

Feature Request ID FR-1:3: MS3 on how to release distributed computation packages

Aim

To release packages for distributed computation at SourceForge. The JavaSpace and JavaSpaceClient projects are now located in a private repository.

This aim is divided into 4 milestones. This is Milestone 3 (MS3).

Description

Move the plotting feature from JavaSpaceClient and integrate it into the simBio project.

Correct Bug ID 15. For more information see simBio Bug Tracking System.

There are limitations in that simBio and JavaSpace project should be independent while JavaSpaceClient can depend on simBio and JavaSpace.

System Design

Plotting feature

  1. Move all files in the following packages to the simBio project:
    /JavaSpaceClient/src/main/java/org/simBio/sim/ps
    /JavaSpaceClient/src/main/java/org/simBio/sim/ps/serialize
    /JavaSpaceClient/src/main/java/org/simBio/sim/ps/view
  2. Rename the file Parser.java (one of the above files) to TocParser.java.
  3. Create a class for parsing protocol XML-files, ProtocolParser, in the simBio project. ProtocolParser will be used to set and get all possible protocol XML-file unique variables.
  4. Create a class that inheritance the class ProtocolParser, JSProtocolParser, in the JavaSpaceClient project. The JSProtocolParser class will contain Java Space unique methods, like getServiceURL and getCodeBases.
  5. Merge the ParameterChanger classes to the simBio project and also remove methods that have to do with parsing protocol XML-files. This will be handled by the ProtocolParser from now and ParameterChanger will only handle the parameter changing.
  6. Move the ParseXMLs class to the simBio project and also remove methods that don't have to do with creation of Toc-files and Csv-files. ProtocolParser will be used to get values from the Protocol XML-file.
  7. Include the Commons IO and Commons XMLIO class library in the simBio project. Use same version as in JavaSpaceClient.
  8. Update files that depend of the above changes.
  9. Implement the TODO: Do not use the propertymanager for serviceURL and codebase in JSEntry.
    Service URL and Codebase
    After the implementation of this TODO the tags serviceURL and codebase must be declared in all protocol XML-files that use JavaSpace.

To fix Bug ID 15

  1. Implementation of the plotting feature in the simBio project will solve this.

Test

  1. To test that the system design works, run the XML-file 3A_NCXvsCaL.xml in the Window cluster after the changes. The XML-file can be found in the NoNCX project at a private repository.
  2. Run the three existing testcases for the JavaSpace project (SpaceLocatorTest, RequestTest and ChannelTest).
  3. As it is now, two testcases exist in the JavaSpaceClient project (JSEntryTest and PropertyManagerTest). Some changes need to be done before any of these test cases can work.
    1. JSEntryTest needs to correct the file path for input protocol XML-file and a protocol XML-file needs to be committed.
    2. PropertyManagerTest should be moved to the JavaSpace project because there is the PropertyManager class located. Also change the testcase so it only use test properties from the simBioServer.properties file.
  4. Make a new testclass in simBio, ProtocolParserTest, which test the new ProtocolParser class.
  5. Make a new testclass in JavaSpaceClient, JSProtocolParserTest, which test the new JSProtocolParser class.
  6. Make a new testclass in simBio, ParameterSpaceTest, which will test that the plotting feature works by reading data from a test Toc-file.
  7. Make a new testclass in simBio, EntryTest, which test that the new feature works from a XML-file, including collection of XML-files for generating of toc- and cvs-files, and finally plotting. This will be done by creating a stub of 3A_NCXvsCaL.xml.
  8. Add a new testcase to the JSEntryTest, which test that the collection of XML-files for generating of toc- and cvs-files, plotting works from a XML-file. This will be done by creating a stub of 3A_NCXvsCaL.xml.
  9. Add a new testcase to the JSEntryTest, which test the execute entry in JSEntry. Use the stub of 3A_NCXvsCaL.xml created above for the test.
  10. Verify that bug ID 15 is solved (XmlDir tag) by running the new EntryTest.
  11. Test that all existing testcases in the simBio project still works.

Test Result

All the specified tests have been run with successful result.

Committed Files

The version has been tagged to JavaSpace_MS3 in the simBio_mikael project. Changed files in the JavaSpace and JavaSpaceClient projects are saved in the JavaSpace_mikael and JavaSpaceClient_mikael projects, tagged as version JavaSpace_MS3. After the increment was accepted it was merged to the simBio project.