.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

Release Notes
=============

Version 1.1.3
-------------

Messages are now handled in parallel

Retry mechanism implemented

Adapting to ONAP logging standard

Deployment using Cloudify made available

Bug fix: Too old files (thus not existing anymore) are ignored


Version: 1.1.1
--------------

:Release Date: 2019-01-30 (Casablanca Maintenance fixes)


**Bug Fixes**

DCAEGEN2-940  - Larger files of size 100Kb publish to DR

DCAEGEN2-941  - DFC error after running over 12 hours

DCAEGEN2-1001 - Multiple Fileready notification not handled


Version: 1.0.4
--------------

:Release Date: 2018-11-08 (Casablanca)


**New Features**

All DFC features from v1.0.4 are new.


**Bug Fixes**

This is the initial release.


**Known Issues**

No known issues.


**Known limitations**

 - DFC has only been tested successfully with one node.
 - The certificates are distributed hand to hand, no automated process.


**Security Issues**

No known security issues.


**Upgrade Notes**

This is the initial release.
