Skip to content

JSBML-1.2

Compare
Choose a tag to compare
@niko-rodrigue niko-rodrigue released this 13 Dec 12:17
· 1409 commits to master since this release

We are pleased to announce the release of JSBML-1.2, which is now available for download from GitHub (above) and from SourceForge.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

http://sbml.org/Software/JSBML

The main new feature in this release is the support for SBML Level 3 Version 2 (RC2). This involved some changes in the class hierarchy of JSBML. A notable SBML change introduced in SBML Level 3 Version 2 is that every SBase object can have an id and a name attribute. In JSBML, for compatibility reasons, we did not change the NamedSBase interface, so not every SBase is a NamedSBase. Only SBML elements that had id and name in SBML Levels/Versions below L3V2 will extend NamedSBase. So, when implementing support for SBML L3V2, we recommend that developers try to avoid using NamedSBase and just use SBase instead. The same is true for the JSBML classes UniqueNamedSBase and UniqueSId. If you were using the UniqueNamedSBase class, please try to use UniqueSId instead. As part of the upgrade to support SBML L3V2, users should also consider checking how they access InitialAssignment, Rule and EventAssignment objects, as often the methods make use of the variable or symbol attribute instead of the id attribute.

We have upgraded the minimum JDK requirement to 1.7 for this release, to be able to use the latest versions of the third-party libraries needed by JSBML. As the number of third-party libraries having JDK 1.8 as a minimum requirement increases, we may need to increase the minimum JDK requirement to 1.8 for next year's JSBML releases. (Please let us know in advance if you think requiring JDK 1.8 will be a problem for you.)

The method toString() available on most JSBML classes has been replaced by a generic method, so you may find some differences in the output produced by the JSBML classes compared to previous versions. One method we did not change for now is ASTNode.toString(), because doing so could cause many side effects. As part of the upgrade to SBML L3V2 and JSBML 1.2, we advise users to make sure they use ASTNode.toFormula() when they want to show/store the infix formula representation of an ASTNode, and to not rely on the toString() method for that purpose. Don't hesitate to provide us with some feedback about this change. We tried to keep any significantly different toString() method under a different name, starting with print and followed by the class name, for example Unit.printUnit() will produce the same output as the Unit.toString() method in JSBML 1.1.

Since the time of the last JSBML release, we have moved the JSBML source code repository to GitHub. Although we provide the main download files from GitHub, we will continue to distribute the releases from SourceForge until we develop a suitable release replacement scheme using either GitHub or sbml.org.

You can find a detailed list of the user-visible new features and bug fixes since JSBML version 1.1 on the NEWS file.

Thank you for your interest and support of JSBML and SBML in general.

The JSBML team.