Changes from 1.6.0 to 1.5.0
---------------------------
** Improvement
    * [FELIX-5373] - Improve failure message when enabling metatype and using no or private properties only
** Bug
    * [FELIX-5304] - SERVICE_PID property should not be created
    * [FELIX-5328] - NoClassDefFound not wrapped in the ClassScanner
    * [FELIX-5345] - Incorrect encoding in metatype props file


Changes from 1.5.0 to 1.4.0
---------------------------
** Improvement
	* [FELIX-5108] - scr bnd plugin: Add option to suppress writing log to filesystem
** Bug
    * [FELIX-5074] - Using org.apache.felix.scr.bnd together with maven-bundle-plugin leads to using the wrong bnd version


Changes from 1.4.0 to 1.3.0
---------------------------
** Improvement
    * [FELIX-4773] - Generated service component xml does not conform to XSD
** Bug
    * [FELIX-4836] - Bnd Scrplugin is called twice by BndTools
    * [FELIX-4861] - Metatype generation should fail if there is no configuration property
    * [FELIX-4622] - Regression: SCR spec version detection incorrect for activate method
    * [FELIX-4774] - Support for @Reference annotation with unbind method "-"


Changes from 1.3.0 to 1.1.0
---------------------------
** Improvement
    * [FELIX-4586] - A field must be volatile if methods are generated for a dynamic reference
** Bug
    * [FELIX-4567] - scr bnd plugin incompatible with maven-bundle-plugin 2.5.0
    * [FELIX-4296] - Cannot deactivate service interface detection in DS annotations
    * [FELIX-4587] - Update method is not verified


Changes from 1.1.0 to 1.0.0
----------------------------
** Improvement
    * [FELIX-4461] - Update to ASM 5 for Java 8 compatibility




