Changes from 1.0.0 to 1.2.0
---------------------------
** Improvement
    * [FELIX-855] - Collection support in iPOJO Temporal Dependencies
    * [FELIX-860] - Temporal Dependency Proxy injection
    
Changes from 0.8.1 to 1.0.0
---------------------------
** Improvement
    * [FELIX-625] - Temporal Dependency improvements (onTimeout policies)
    * [FELIX-673] - Provide OBR description to iPOJO bundles
    * [FELIX-716] - Provide XML schemas for iPOJO descriptors


Version 0.8.1
-------------
    * Initial release