Changes from 1.2.0 to 1.4.0
---------------------------
** Improvement
    * Update parent pom


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
