JSBML 1.1 release
JSBML-1.1
We are pleased to announce the release of JSBML-1.1.
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
http://sbml.org/Software/JSBML
At the end of this message, you can find a detailed list of the
user-visible new features and bug fixes since 1.0.
Thank you for your interest and support of JSBML and SBML in general.
The JSBML team.
Version 1.1 (09-12-2015)
- New Features:
- Implemented the ability to support multiple version of SBML Level 3
package definitions. - Improved the Maven pom files, and changed the Maven group ids and
artifact ids. They should be stable now. With these changes in place,
we can update the Maven repository much more quickly and easily. Next
steps are to make JSBML available in Maven Central. - Added some utility classes to improve support for SBML files written by
the Cobra toolbox before the SBML Level 3 FBC package was created. The
CobraFormulaParser class can parse properly the Cobra gene associations
String into an ASTNode. The CobraUtils class contain a method to parse
the SBML notes into a Java Properties object. - Updated the implementation of the SBML Level 3 Groups package to the
Groups version 0.7 specification.
- Implemented the ability to support multiple version of SBML Level 3
- Bug Fixes:
- The compartment 'units' attribute was not written in SBML L1. This is
corrected now. - SBML L1 rules were not correctly written: the wrong XML element name
was used. Now it uses the correct L1 names and attributes. - The clone constructor for the Species class did not copy the
speciesType attribute. Thanks to Olivier Martin who reported the
problem. - The clone constructor for the FunctionDefinition class did not copy the
id attribute.- Since the merge with the astnode2 branch in 1.1-beta1, the attributes
on mathML elements where processed before calling the main
processAttributes method and as a consequence, some of them where not
processed at all, like 'sbml:units'. Thanks to Matthias König who
reported the problem.
- Since the merge with the astnode2 branch in 1.1-beta1, the attributes
- The compartment 'units' attribute was not written in SBML L1. This is
Version 1.1-beta1 (12-10-2015)
- New Features:
- Changed the default JSBML formula compiler. WARNING: this changes the
default output for comparison operators. The parsing is now very close
to what the libSBML L3 parser is doing. - Added support for the nested CVTerms introduced in SBML L2V5 and
L3V2. We created some new methods in the CVTerm class to be able to
manipulate nested terms. - Merged with the ASTNode2 branch (experimental). This is not used by
default, but it is starting to work well. We were able to pass all tests
from the SBML Test Suite using the ASTNode facade that uses the ASTNode2
classes underneath. We made this work so that no API change is needed --
old code should work without modifications. - Changed the printing of ASTNode in SimpleTreeNodeChangeListener to
avoid many exceptions being printed when reading an XML file and the
log4j DEBUG is activated (SF.net tracker item #88). - Improved CellDesigner LayoutConverter.
- Added a new class, PackageUtil, to check and fix the package versions and
namespaces if needed. This method is called after we read a file from
XML or before we write the model to XML. In the near future, the method
SBase.registerChild will take care of setting everything properly. - Added a default load of the parsers for environment not setup properly
for it (Eclipse, Matlab dynamic path, OSGi, ...). - Modified the way we initialize the XML factories so that it is explicit
(to OSGi for example) which classes and packages are used. Then there
is no more need to define the System properties about the XML factories
which solve an other reported problem with OSGi bundles. Thanks to all
users who reported and tested problems related to OSGi. - Implemented a new interface CompartmentalizedSBase and changed all
elements that can have a compartment so that they extend it. - Added a createCurve method to ReactionGlyph.
- Improvements in the arrays flattening code.
- Updated spatial to implement version 0.90 of the draft specifications.
- Implemented FBC version 2.
- Implemented distrib version 1 draft 0.16.
- Modified the SBMLReader so that we are able to parse some UncertML
Strings as XMLNode, even when they are on their own, via
org.sbml.jsbml.xml.XMLNode.convertStringToXMLNode(String). - Added a new class DistribModelBuilder to help users to create distrib
elements, including uncertML XMLNode. - Implemented the multi draft rev 459 (Nov 2014).
- Changed the default JSBML formula compiler. WARNING: this changes the
- Bug Fixes:
- Methods that accepted Double/Integer/Boolean values or returned those
where updated to double/integer/boolean in the spatial and render
package. Instead of null values PropertyUndefinedExceptions are now
thrown when necessary. - Tracker item #83: the equals method from StringBuilder is
not implemented so we have to compare the content of the StringBuilder
or use other utility method to compare properly the StringBuilders. - Tracker item #84: corrected and improved the XMLNode.toString method.
- Tracker item #85: removing spaces with the String.trim() method in
org.sbml.jsbml.Creator.setEmail(String) before checking the validity
of the email address. Thanks to Camille Laibe who reported this
problem. - Tracker item #87: changed HashMap to Map in the SBMLValidator API.
- When writing math formula, in some cases, parentheses were not generated
properly surrounding relational expressions. This is now fixed. Thanks
to Miguel de Alba for reporting this problem.
- Methods that accepted Double/Integer/Boolean values or returned those
J S B M L 1.1
JSBML is a free, open-source programming library to help you read, write,
manipulate, translate, and validate SBML files and data streams. It is not
an application itself (though it does come with example programs), but
rather a library you can embed in your own applications.
This is the a short description of the JSBML 1.1 final release files.
Here you will find the following:
jsbml-1.1.jar -- jar file containing the classes of JSBML-1.1
jsbml-1.1-with-dependencies.jar -- jar file containing the
classes of JSBML-1.1 including all of the currently supported
SBML L3 packages and any needed dependencies libraries classes.
jsbml-1.1-full.zip -- full distribution of JSBML-1.1
containing the two jars file described above plus the sources and
documentation along with the build script to be able to compile the
library. Contain also the jsbml modules sources and binaries.
For more information about JSBML, please visit the JSBML website at
http://sbml.org/Software/JSBML
Thank you for your interest in JSBML!
The JSBML Team.