Leading Project for Biosimulation > Cell/Biodynamics Simulation > simBio
 

Feature Request ID FR-1:4: MS4 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 4 (MS4).

Description

Update to the latest version of used class libraries for the projects simBio, JavaSpace and JavaSpaceClient.

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

System Design

Current and latest version of used class libraries

Following class libraries exist in simBio after MS3 is implemented:

  1. Current Commons Lang version is 2.1, latest is 2.3
  2. Current Commons Logging version is 1.0.4, latest is 1.1
  3. Current Commons IO version is 1.1, latest is 1.3.2 (Required by MS3) - Note1
  4. Current Commons XMLIO version is 0.1pre, there are no official release (Required by MS3) - Note1
  5. Current JCommon version is 1.0.0-rc1, latest is 1.0.10 (Required by MS1) - Note1
  6. Current JFreeChart version is 1.0.0-rc1, latest is 1.0.6 (Required by MS1) - Note1
  7. Current JavaHelp version is 2.0_02, latest is 2.0_04
  8. Current log4j version is 1.2.13, latest is 1.2.14
  9. Current Xalan (serializer, xalan, xercesImpl, xml-apis) version is 2.7.0, which is the latest

Update these class libraries to the latest version

These class libraries have changed enough to make it worth to update:

  1. Replace current Commons Lang 2.1 with 2.3
  2. Replace current Commons Logging 1.0.4 with 1.1 - Note2
  3. Replace current Commons IO 1.1 with 1.3.2 - Note1
  4. Replace current JCommon 1.0.0-rc1 with 1.0.10 - Note1
  5. Replace current JFreeChart 1.0.0-rc1 with 1.0.6 - Note1

Update dependency

  1. In the latest JFreeChart is the class OldLegend removed. This is used by the class PlotLine's method createChart.
  2. In the latest JFreeChart are the classes for contour plots deprecated and no longer supported. It says "If you are creating contour plots, please try to use XYPlot and XYBlockRenderer." This is used by the class PlotContour. A study that compare the results of PlotContour by using XYPlot and XYBlockRenderer with the original PlotContour for rendering can be read here ContourPlot vs RenderPlot.

Solution for the update dependency

  1. Solved by setting the Boolean variable 'createLegend' to true instead of false when creating the instance of JFreeChart.
  2. No changes needed, because it is only deprecated and still work correctly. The conclusion has been evaluated and the result can be read here ContourPlot vs RenderPlot.

Test

  1. To test that the system design works, run the XML-file 3A_NCXvsCaL.xml in the Window cluster after my changes. The XML-file can be found in the NoNCX project at a private repository.
  2. Run the testcase ParameterSpaceTest to verify that the legends are plotting out correctly.
  3. Run the four existing testcases for the JavaSpace project (SpaceLocatorTest, RequestTest, ChannelTest and PropertyManagerTest).
  4. Run the two existing testcases for the JavaSpaceClient project (JSEntryTest and JSProtocolParserTest).
  5. 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_MS4 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_MS4. After the increment was accepted it was merged to the simBio project.

At the request of Sarai-sensei a branch for the JavaSpace and JavaSpaceClient projects, tagged as PR_SF was made. These branches contain all changes in these project that was done in milestone 1 to 4. Using these branches makes it easier to run MS4 with all of the previous milestones implemented.

Notes

Note 1: JavaSpaceClient
Remove the class library from the JavaSpaceClient project and change build path to include the class library from the simBio project instead (JavaSpaceClient can depend on simBio).
Note 2: JavaSpace
Also include the latest version in the JavaSpace project (simBio and JavaSpace project should be independent).