Nesstar API Release Notes

This page documents new features, enhancements and visible changes included in Nesstar API releases.

For detailed information and tips on how to use the features of Nesstar API, please refer to the Javadocs bundled with the release and to the Nesstar-api-dev-mailing list: http://mailman.uib.no/listinfo/nesstar-api-dev

Version 0.7, 08 January 2014

Compatibility with previous version

It is not necessarily possible to use version 0.7 as a drop-in replacement for earlier versions due to a small change in com.nesstar.api.publishing.CSVFileDataSource.
Future versions may also break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Improvements

Deletion of studies

It is now possible to delete a study via the API. See Server.deleteStudy().

Trigger reindexing

It is now possible to start a reindexing process on the server. This will delete the current Lucene index and build a new one. Potentially time consuming and CPU-instensive operation. See Server.reIndex().

Support for more cube metadata

More cube metadata is now available via Cube.getMetadataMap().

Bug Fixes

Fixed bugs in case subset expressions.
Prevented user-defined from appearing in the variable bank interface.

Version 0.6.5, 06 August 2013

Compatibility with previous version

It is possible to use version 0.6.5 as a drop-in replacement for 0.6.4/0.6.3/0.6.2 version but not for other earlier versions.
Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Improvements

Custom user-properties

It is now possible to add custom properties to User objects. This is typically relevant if you want to develop your own user-registration system. User.getProperties() and User.setProperties().

Version 0.6.4, 22 February 2013

Compatibility with previous version

It is possible to use version 0.6.4 as a drop-in replacement for 0.6.3/0.6.2 version but not for other earlier versions.
Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Bug Fix

Fixed a major bug that required that id in the fileDscr-element was "F1". Now it can be anything, as long as it corresponds to what you set in StudyPublishingBuilder.addData()

Version 0.6.3, 18 February 2013

Compatibility with previous version

It is possible to use version 0.6.3 as a drop-in replacement for 0.6.2 version but not for other earlier versions.
Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Bug Fix

Fixed a major bug that sometimes prevented proper loading/population of Nesstar objects retrieved from tree nodes.

Version 0.6.2, 25 January 2013

Compatibility with previous version

It is possible to use version 0.6.2 as a drop-in replacement for 0.6.1 version but not for other earlier versions.
Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Bug Fix

Few major bugs in publishing modules were fixed.

Version 0.6.1*, 16 January 2013

* version 0.6 was not released due to a bug.

Compatibility with previous version

It is not possible to use version 0.6.1 as a drop-in replacement for earlier versions.
The method getLabel() in Level now throws the usual exceptions.

Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Additions

Support for Publishing

The main new feature of Nesstar API version 0.6.1 is support for Publishing. This is the first version that supports publishing of data/metadata 
through the API, allowing you to publish data programmatically from your systems/applications onto Nesstar Servers. Users are now able to publish multilingual metadata in DDI-XML format along with microdata in CSV format or feed rows from a JDBC result. To get started with publishing, please see the JavaDoc: com.nesstar.api.publishing

Enabling publishing via API even though is a breakthrough and major step ahead, yet, it is still in its exprimental stages.

Improvements

Exception handling

Exception handling added to getLabel() in the Level interface. Now getLabel() throws NotAuthorizedException,IOException exceptions.

Bug Fix

Fixed a bug that caused studies in search result to be incomplete

Version 0.5, 13 November 2012

Compatibility with previous version

It is not possible to use version 0.5 as a drop-in replacement for earlier versions.
Retrieving cell values from tabulations now require a TableCoordinates object that points to the cell.
Several Builder classes have been renamed: CorrelateOperationBuilder, LinearRegressionOperationBuilder, RegressionOperationBuilder, TabulateOperationBuilder (they have all had the "Operation" part removed).

Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Additions

Support for cubes

The main new feature of Nesstar API version 0.5 is support for cubes. Users are now able to retrieve cubes including data and metadata. To get started with cubes, pleaes see the JavaDoc: com.nesstar.api.cube.Cube

Improvements

Tabulation made more intuitive

Version 0.5 introduces a new way to retrieve cell values from tabulations. Instead of supplying a list of Objects, it now expects an instance of the TableCoordinates builder class. This class can hold the coordinates to a given cell in various forms. See the JavaDoc on TableCoordinates for more information.
Tables now support retrieving all values for a given variable. This is useful for continuous break variables or when using break variables where not all valid values are documented as categories.

Version 0.4.2, 21 September 2012

Compatibility with previous version

Version 0.4.2 is a bugfix release has undergone very small changes and should work as a drop-in replacement for version 0.4.

Future versions may still break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Improvements

More fault-tolerant DDI-parsing/handling

Fixed a bug which prevented parsing of DDI data with no fileDscr element.
Better exception handling when parsing issues occur.

Support for changing users' passwords.

Added setPassword method in User interface.
See com.nesstar.api.User::setPassword(String password)

Version 0.4, 31 August 2012

Compatibility with previous version

Version 0.4 has undergone a few changes and is not a complete drop-in replacement for version 0.3. The guiding principle for this release has been to design a good API, and the changes reflect this.

However, 0.4 is mostly a feature release, where new functionality for statistical analysis has been added (Correlation and Regression analysis).

Most low-level operations for interacting with data and metadata have been kept stable between 0.3 and 0.4.

Future versions may also break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Additions

Support for correlation

Correlation (Pearson's R) is now supported.
See com.nesstar.api.Study::correlate(CorrelateOperationBuilder operationBuilder) and com.nesstar.api.analysis.CorrelationResult

Support for regression analysis

Regression analysis is now supported.
See com.nesstar.api.Study::regress(RegressionOperationBuilder operationBuilder) and com.nesstar.api.analysis.RegressionResult

Improvements

Convenience methods for building folder trees

If you don't care about multilingual folder labels or descriptions, convenience methods have been added to create and edit FolderTreeNodes without having to specify Maps of multilingual content.
See com.nesstar.api.FolderTreeNode::createFolderTreeNode(Locale language, String label, String description), com.nesstar.api.FolderTreeNode::setLabel(Locale language, String label) and com.nesstar.api.FolderTreeNode::setDescription(Locale language, String description)

Version 0.3, 04 June 2012

Compatibility with previous version

Version 0.3 has undergone a few changes and is not a complete drop-in replacement for version 0.2. The guiding principle for this release has been to design a good API, and the changes reflect this.

An important change is that the API from 0.3 onwards supports https, and this has required a simple change to the signature of NesstarDB::getServer().

The majority of the remaining changes have been done to the NesstarTreeNode-related interfaces for browsing/navigating the repository/server structure. Most low-level operations for interacting with data and metadata have been kept stable between 0.2 and 0.3.

Future versions may also break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Additions

https-support

It is now possible to connect to Nesstar Servers over https (in addition to http).
See com.nesstar.api.NesstarDB::getServer(URI serverAddress)

Searching

It is now possible to run searches against Nesstar Servers through the Nesstar API.
See com.nesstar.api.search.SearchQuery and com.nesstar.api.search.SearchResult

Reformed browse-tree logic

Nesstar Server repositories typically organize content in hierarchical folders (a.k.a. browse-tree, browse-list). The NesstarTreeNode-system introduced in 0.2 has been substantially changed to simplify tree interaction and navigation.
See com.nesstar.api.NesstarTreeNode

Simplified tabulation logic

To simplify coding of tabulation operations (e.g. cross-tabulations), tabulation expressions are now created using the builder pattern.
See com.nesstar.api.analysis.TabulateOperationBuilder

Version 0.2, 16 March 2012

Compatibility with previous version

Version 0.2 has undergone a few fundamental changes and is not a drop-in replacement for version 0.1. The guiding principle for this release has been to design a good API, and the changes reflect this.

Note that the majority of changes have been added to high-level interfaces for navigating the repository/server structure. Most low-level operations for interacting with data and metadata have been kept stable between 0.1 and 0.2.

Future versions may also break compatibility. The goal will be to keep the API as stable as possible - but no signatures should be considered frozen until version 1.0.

Additions

Multi-user concurrency

It is now possible to separate API-sessions to allow for multiple sessions in one client (e.g. a web-client).
See com.nesstar.api.NesstarDB::setSession(String sessionID)

Bank interfaces

Domain objects that implement the NesstarBankObject interface (e.g. Study, Variable, Question) will be easily available via the Bank-interface. A Bank is also a Map, and supports direct lookup (by ID) and getAll()-functionality.
See com.nesstar.api.Bank

Support for EGMS-Resources

EGMS is a superset of Dublin Core, see http://www.esd.org.uk/standards/egms/, and has been supported by Nesstar Server since version 3.5.
The new EGMSResource interface adds API-support for accessing EGMS-Resources
See com.nesstar.api.EGMSResource

Questions as first-class objects

Nesstar is backed by DDI-Codebook, where Questions are not isolated from Variables.
Regardless of this coupling, the Question interface will add API-support for accessing Questions directly.
See com.nesstar.api.Question

User and Role interfaces

Version 0.2 adds API-support for managing Users and for looking up existing Roles. Note that it is not possible to create new Roles via the API yet.
See com.nesstar.api.User and com.nesstar.api.Role

Case subset string expressions

In version 0.1, case-subsetting was fully object-oriented. In version 0.2 it is also possible to specify case subset with string expressions.
See com.nesstar.api.subset.CaseSubset::compile()

Removals

The Catalog-interface

In version 0.1, the Catalog interface was used to traverse the object tree (a.k.a. browse-tree). Catalogs represented “Folder”-like nodes that could contain domain objects and subcatalogs.
In 0.2, there is no Catalog interface. All interactions with the tree are handled by the NesstarTreeNode interface. The root of the tree can be obtained via the com.nesstar.Server-interface.
Nodes that allow children are created by the method
addChild(Map<Locale, String> labels, Map<Locale, String> descriptions)
See com.nesstar.api.NesstarTreeNode