Version 1.5.6.6 (2016/06/09)
——————————————————————————–
A number of bug fixes to EDI format.
Addressed issue of the double question mark in EDI being processed correctly.

Version 1.5.3 (2015/03/03)
——————————————————————————–
SS-46 – OBS_CONF & OBS_PRE_BREAK Ids changed. EDI parser updated to support change.

Version 1.5.2 (2015/03/02)
——————————————————————————–
SS-45 – SdmxSourceReadableDataLocation.copyStream broken

Version 1.5.1 (2015/02/15)
——————————————————————————–
SS-43 – DataType Interface will benefit from getFileType
SS-41 – InMemorySdmxSuperBeanRetrievalManager – constructing with a null does not create a SuperBeansImpl
SS-40 – UrnUtil: Need a method to create a URN from a “short URN”
SS-39 – ObjectUtil – method: validOneString can NPE

Version 1.5 (2015/02/12)
——————————————————————————–
SS-38 – DataReaderEngine typo in ProvisionAgreement Header
SS-37 – Data Transform does not write Provision Agreement in Header
SS-33 – HeaderBean and HeaderBeanImpl do not have a setter for Embargo Date

Version 1.4.5 (2014/12/19)
——————————————————————————–
SS-30 – Bug in CrossReferenceResolverEngineImpl – does not populate missing references map
SS-32 – ReadableDataLocation needs a copy method

Version 1.4.3 (2014/12/02)
——————————————————————————–
SS-27 – ContentConstraint bean should not support multiple DataProviders
SS-29 – ContactBean does not persist the ID

Version 1.4 (2014/10/03)
——————————————————————————–
SS-26 – DTM Segment outputs invalid date

Version 1.3 (2014/09/01) ***Non Public Release***
——————————————————————————–
Reworked the structure of the Data Reader Engine
SS-2 – AbstractDataReaderEngine Behaviour of Default DSD/Flow/Provision
SS-3 – StructureWriterEngine 2.1 Support Registration REPLACE
SS-4 – SdmxStructureParserFactory Parse No Results Found Should Return empty SdmxBeans
SS-5 – AbstractDataReaderEngine does not store the Bean Retrieval Manager passed in to it
SS-7 – Constraint attachment incorrect when attached to multiple versions
SS-14 – DeepDataValidationEngine did not check observation values
SS-15 – KeyableImpl does not generate the correct KeyCode
SS-16 – Issues with Flat format in SdmxDataParser
SS-17 – Attempting to convert cross-sectional dataset with time NOT at the observation le
SS-18 – Writing EDI files, doesn’t honour the limitations on DSI restrictions
SS-19 – Writing SDMX 1.0 does not honour limitations of data formats
SS-24 – TextFormatBean – add method to state whether the Text Format has restrictions

Version 1.2.7 (2014/04/28)
——————————————————————————–
#1866 – EDI Parser can not cope with ATT+3+5+:::A1
#1865 – Implement output of RegistryInterface.SubmitStructureRequest v2.1

Version 1.2.6 (2014/04/17)
——————————————————————————–
#1858 – Require more specific exception type if DataReaderEngine can not resolve referenced Structure
#1857 – Trying to delete a Registration with an illegal datasource doesn’t work correctly

Version 1.2.5 (2014/04/03)
——————————————————————————–
#1846 – DataValidationEngine does not require ExceptionHandler
#1845 – DataValidationEngine missing validate dataset attributes
#1844 – ComponentSuperBean does not return TextFormatBean belonging to Concept

Version 1.2.4 (2014/04/02)
——————————————————————————–
#1840 – RESTRegistrationQueryImpl – getStartPeriod / EndPeriod should be renamed getUpdatedBefore / After
#1837 – No ability to set the parent unit on an OrganisationUnitMutableBean

Version 1.2.3 (2014/04/02)
——————————————————————————–
#1829 – DimensionSuperBean does not have a method to get the Measure representation
#1823 – Generic Data Reader not reading Dataset Attributes
#1809 – BASE_QUERY_MESSAGE_TYPE missing Registration
#1807 – SchemeMapBean requires validation
#1803 – Validation of Constraint Attachment
#1795 – TargetBeanImpl.validate incorrect error message
#1788 – Partial Codelist does not validate when missing parent codes
#1780 – StrucutreWriterManagerImpl does not honour documentation on Interface
#1779 – DataValidationManagerImpl should @Require a SdmxSuperBeanRetrievalManager
#1778 – DatasetInformation should be Immutable
#1777 – DatasetInformationNPE defence required
#1776 – Attribute Relationship Dimension Ids are not verified
#1772 – A MetadataAttribute which is presentational should not have a representation
#1771 – SDMXBean get composites does not work for HierarchyBean
#1769 – HCL can not create with formal levels
#1760 – Exceptions create a lot of noise
#1739 – Support MSD SuperBeans
#1710 – DataInformationManagerImpl getDataType on error message
#1708 – Resolving references for ContentConstraint using MaintainableCrossReferenceRetrieverEngineImpl
#1703 – Override getBuiltFrom in CodeSuperBean

Version 1.1.5 (2014/03/11) ***Non Public Release***
——————————————————————————–
#1756 – Duplicate entries in EDI are lost without warning
#1755 – Missing functionality: performing cross-reference checking of Structure Maps
#1753 – SDMXBeanImpl – getComposites – has a bug
#1749 – StaxUtil.copyNode – not checking empty strings “” (getNamespaceURI and others)
#1745 – ServiceRetrievalManager duplication of variable
#1744 – Truncation feature for EDI Observations needs to round values
#1742 – Exponent value in EDI file is not correct

Version 1.1.4 (2014/02/18)
——————————————————————————–
#1734 – Writing an EDI data file permits Observation Values longer than 15 characters
#1733 – Ranges are being ignored on EDI files which specify a range (e.g. 710)
#1716 – EDI data files do not distinguish between a delete message for a range of data

Version 1.1.3 (2014/02/14)
——————————————————————————–
Added MandatoryAttributesValidator class
# 1731 – EDI observation values do not allow the Exponent character
# 1730 – EDI Footnote section (FNS) can be illegal if there are no attributes
# 1729 – Empty attributes create illegal EDI

Version 1.1.1 (2014/01/23)
——————————————————————————–
# 1719 – Data Validation framework is to be re-worked
# 1718 – CompactDataReaderEngine should not read invalid attributes
# 1714 – The interface SchemaGenerator needs a new method
# 1713 – InputStream not closed after calling method isAZip in class: ZipUtil
# 1709 – EDI issue – data files without AgencySchemes – resolveAgencies flag set to true
# 1698 – Invalid REST data queries can cause an IndexOutOfBoundsException
# 1697 – BaseSdmxBeanRetrievalManager – stubs issue
# 1685 – StructureReferenceBeanImpl needs defence against invalid structures

Version 1.1 (2014/01/13)
——————————————————————————–
# 1681 – Provision Agreement name should be set to appropriate value
# 1680 – Semantic exception instead of NoResults in DataQueryImpl when building from REST query
# 1679 – Subclasses of SdmxException are not initialised with the correct SDMX_ERROR_CODE
# 1678 – SDMX_ERROR_CODE – spelling mistake on the enum INTERNAL_SERVER_ERROR
# 1677 – CrossSectionalDataStructureBeanImpl – getComponents does not have crossSectionalMeasures
# 1676 – Bug: Converting from CrossSectionalDataStructureBean to CrossSectionalDataStructureMutableBean – measure dimension codelist map
# 1675 – ComplexDataquery parsing that set 1.0 to version when it was not set
# 1674 – OrganisationSchemeXmlBeanBuilder writes the “Items” tag when no item exists
# 1673 – TextFormat CoreRepresentation in SDMX v2.0 Concept is being ignored
# 1672 – Missing “Integer” type in TextFormat in AbstractBuilder
# 1671 – Improve exceptions thrown from implementation
# 1670 – Cannot query for MeasureDimension in RestDataQuery
# 1669 – XSD generation wrong targetnamespace for dimension at obs
# 1668 – REST writer for data doesn’t check for provider null value
# 1667 – Wrong prefix/namespace for Dataset element in Compact 2.1
# 1666 – ComplexDataQuery parsing ignores second time value in clause
# 1665 – Keywords in REST queries should be lower-case
# 1664 – GenericDataReaderEngine – does not correctly ignore particular nodes
# 1663 – Data files that have structures referenced as URNs can’t be processed
# 1653 – Issue in RESTStructureQueryImpl constructor
# 1632 – Conversion to EDI can create duplicate messages
# 1626 – EDI observations allow illegal characters
# 1545 – XS DSD attributes level for section observation are swapped
# 1544 – Exception when reading XS DSD without Cross Sectional measures
# 1500 – Default behaviour of dimensionAtObservation
# BaseSdmxBeanRetrievalManager – Bug fix, get all transposed with get latest in getAllMaintainables(..) method
# BaseSdmxBeanRetrievalManager – Updated to suppport query for null class or MaintainableBean.class
# BaseSdmxBeanRetrievalManager, InMemoryRetrievalManager – Support retrieval of SubscriptionBeans
# ConceptBean – deserialisation NPE on transient field itemById
# ConstraintBeanAssembler – Bug fix, was not allowing attachments to multiple structures
# CrossReferenceResolverEngine, CrossReferenceResolverEngineImpl,BaseSdmxBeanRetrievalManager – use IdentifiableRetrievalManager methods to resolve references to identifiables
# CrossReferenceResolverEngineImpl – bug fix when resolving a sub agency from the BeanRetrievalManager (Split on ‘.’ was //. should have been \\.)
# DataflowBeanImpl – getCrossReferencedConstrainables do not add data structure ref to list if null
# ExternalReferenceRetrievalManager – created to resove refernce to external structures
# IdentifiableRetrievalManagerImpl – added option to resolve external references with ExternalReferenceRetrievalManager
# MaintainableBeanImpl – validate() fix bug where exception was thrown if structureURL was null BUT serviceURL was not null (this is valid)
# RESTStructureQueryImpl – do not set latest version=true if using the explicit StructureReferneceBean constructor
# RESTStructureQueryImpl – return ‘*’ if the version queried is all
# SdmxBeanImpl – getCrossReferences() remove null from returnSet
# SdmxBeansImpl – implementation returned latest version if version info is null, this is not in keeping with API documentation
# SdmxConstants – Added REST_WILDCARD
# StructureMapBeanAssembler – updated due to API change on RepresentationMapRef
# StructureQueryBuilderRest – Bug fix – modified to support queries for all OrganisationSchemes

The following API Changes were also made:
# CategorisationRetrievalManager – added getCategorisationsForCategoryScheme
# CrossReferencedRetrievalManager – return Set not List for performance reasons
# CrossReferencingRetrievalManager – return Set not List for performance reasons
# HierarchicalCodeSuperBean – override getBuiltFrom() to return HierarchicalCodeBean
# IdentifiableRetrievalManager – getAgency(id) and getIdentifiableBeans(..) methods added
# ItemSchemeBean – added filterItems(..)
# KeyValues – added method: List getCascadeValues();
# RepresentationMapRef – Map getValueMappings() changes to Map> getValueMappings() (change to Mutable version as well)
# SdmxBeanRetrievalManager – subclasses IdentifiableRetrievalManager
# SdmxBeans container changed getAgencySchemes(agencyId) to singluar getAgencyScheme, as only one scheme per agency, this is also true for DataConsumerScheme & DataProviderScheme

Version 1.0.5 (2013/10/16)
——————————————————————————–
# bug fix in MetadataSet constructor
# 1616 – Gesmes: The Test indicator in the segment UNB is not supported
# 1615 – EDI files should cope with blank space at the end of the line

Version 1.0.4 (2013/10/10)
——————————————————————————–
# MetadataBeanImpl – Added constructor: Collection

Version 1.0.3 (2013/10/08)
——————————————————————————–
# EDI Bug fix – sender name was not being output to the sender PartyBean

Version 1.0.2 (2013/10/04)
——————————————————————————–
# BaseSdmxBeanRetrievalManager – added getProxy()
# Moved the Interface Listener from SdmxSourceUtil to SdmxAPI
# SdmxApi – MetadataWriterFactory new Interface
# SdmxApi – MetadataFormat new Interface
# SdmxApi – CrossReferenceException, fix NPE when a Bean has no IdentifiableParent
# SdmxApi – Added method to MetadataWriterEngine
# SdmxBean – SDMXBeanImpl added text to SdmxNotImplementedException
# SdmxBean – DataKeyBeanImpl, implement deep equals
# SdmxBean – MetadataBeanImpl, implement deep equals
# SdmxBean – MetadataReportBeanImpl, implement deep equals
# SdmxBean – MetadataSetBeanImpl, implement deep equals
# SdmxBean – MetadataSetBeanImpl, override equals() and toString() method
# SdmxBean – ReferenceValueBeanImpl, added deep equals, bug fix on get target type
# SdmxBean – ReportedAttributeBeanImpl, implement deep equals
# SdmxBean – TargetBeanImpl, implement deep equals
# ReferenceValueBeanImpl bug fix on type.getReportPeriod (class cast) – now uses .toString()
# MetadataSetBeanImpl version 2.1 constructor changed to remove parent (which was MetdataBean) – parent now null
# ReferenceValueBeanImpl would not validate with dataset reference.
# Construction of DataQueryImpl – if dataflow can not be found throw an SdmxNoResultsException not SdmxSemmanticException
# SdmxMessageUtil.parseSdmxErrorMessage will now throw the Same exception type that came back from the SDMX service

Version 1.0.1 (2013/09/20)
——————————————————————————–
# BaseSdmxBeanRetrievalManager getMaintainableBean(StructureReferenceBean sRef,boolean returnStub, boolean returnLatest) throws
exception if the sRef is null. API updated to reflect change

# AbstractDataReaderEngine setCurrentDataflow NPE fix – create datasetHeaderBean if null
# 1596 – Parse Date with hours and mins looses the mins
# DeepDataValidationEngine NPE fix when text format has no text type
# AbstractDataValidationEngine validateSeriesKey beomces validateKey and is used to validate both series and groups
# SdmxSourceReadableDataLocationFactory if constructured with a file, ensure file exists otherwise throw excpetion
# StaxUtil Stack overflow on skip to end node

Version 1.0 (2013/09/05)
——————————————————————————–
Version 1.0 release