Changes from 3.0.0 to 3.0.1
---------------------------

** Bug

** Improvement

    * Removed changelog.txt from root of project
    * [FELIX-2954] - annotated component factory does not allow to provide a component instance explicitly
    * [FELIX-2956] - json should be embedded in the annotation scanner plugin
    * [FELIX-2966] - Annotations should automatically generate Import-Service/Export-Service headers
    * [FELIX-2965] - Annotations should allow to enable or disable auto-configuration mode.
    * [FELIX-3863] - Generate DependencyManager Annotation MetaData In Project Folder
    * [FELIX-3865] - Update DependencyManager annotation plugin with latest bndlb 
    * [FELIX-3866] - Added support for swap attribute in AspectService and AdpaterService annotations.

Initial Release 3.0.0
---------------------

** Bug

** Improvement
