Changes from 1.8.0 to 1.9.0
---------------------------
** Bug
    * [FELIX-5464] - java.lang.NullPointerException at org.apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner.java:207)
    * [FELIX-5729] - NoSuchFieldError when @Reference referenceInterface type different than field type
    * [FELIX-5730] - Different separators in localization attribute
    * [FELIX-5771] - Metatype generation via bnd plugin creates incorrect file names
    

Changes from 1.7.2 to 1.8.0
---------------------------
** Bug
    * [FELIX-5700] - Metatype generation wrongly puts properties files into metatype directory


Changes from 1.7.2 to 1.7.0
---------------------------
** Bug
    * [FELIX-5466] - Adding Target Source URL may lead to NPE


Changes from 1.7.0 to 1.6.0
---------------------------
** Bug
    * [FELIX-5451] - Input/Output streams not properly closed in org.apache.felix.scr.generator
    * [FELIX-5452] - SCR bnd plugin fails when embedding jars with optional/excluded dependencies
    * [FELIX-5419] - SCR Bnd Plugin does not work with bnd-maven-plugin: org.apache.felix.scrplugin.SCRDescriptorException: Unable to load compiled class


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




