Changes from 1.10.0 to 1.9.12
-----------------------------
** Improvement
    * [FELIX-5072] - Support optional property "pattern" in @SlingFilter annotation


Changes from 1.9.12 to 1.9.10
-----------------------------
** Improvement
    * [FELIX-4859] - Documentation inconsistency in filter.order vs service.ranking


Changes from 1.9.10 to 1.9.8
----------------------------
** Bug
    * [FELIX-4648] - SlingAnnotationProcessor.processSlingFilter cannot deal with multiple scopes


Changes from 1.9.8 to 1.9.6
---------------------------
** Improvement
    * [FELIX-4277] - The maven-scr-plugin generates false warnings when using @SlingServlet
    * [FELIX-4393] - @Property should accept empty name values on instance fields 

Changes from 1.9.6 to 1.9.4
---------------------------
** Improvement
    * [FELIX-4170] - Deprecate inheritance of component descriptors


Changes from 1.9.4 to 1.9.2
---------------------------
** Bug
    * [FELIX-4047] - Unable to create single valued (String) array property

** Improvement
    * [FELIX-4063] - Avoid warnings when using @SlingServlet and @SlingFilter annotations 


Changes from 1.9.2 to 1.9.0
---------------------------
** Bug
    * [FELIX-3977] -  @Property: ArrayIndexOutOfBoundsException empty array default value  


Changes from 1.9.0 to 1.8.0
---------------------------
** Bug
    * [FELIX-3940] - Abstract class is not detected 
 
 
Changes from 1.8.0 to 1.7.0
---------------------------
** Improvement
    * [FELIX-3169] - Add support for new PASSWORD attribute type of Metatype service


Changes from 1.6.0 to 1.7.0
---------------------------

** Task
    * [FELIX-3225] - Drop javadoc annotation support
    * [FELIX-3247] - Change annotation retention from source to class
    * [FELIX-3552] - Implement new features of DS 1.2
    * [FELIX-3550] - Reimplement the SCR Generator
    * [FELIX-3551] - Support the DS annotations

** Bug
    * [FELIX-3457] - Component annotation does not detect abstract class
    * [FELIX-3077] - Abstract class is not detected as abstract
    * [FELIX-3593] - ClassCastException when using short-cut notation inside array value annotations

** Improvement
    * [FELIX-2689] - Upgrade Descriptor generator to new parent POM and adapt legal files


Changes from 1.5.0 to 1.6.0
---------------------------

** Bug
    * [FELIX-3077] - Abstract class is not detected as abstract


Changes from 1.5.0 to 1.6.0
---------------------------

** Bug
    * [FELIX-2957] - Filter scope should be an array
    * [FELIX-2943] - Component generated by @SlingServlet does not match default settings of @Component

** Improvement
    * [FELIX-2939] - Maven SCR Plugin is not (marked as) thread-safe for parallel builds
    * [FELIX-2908] - Use same mechanism to get single annotation values as for multiple annotation values


Changes from 1.4.0 to 1.5.0
---------------------------

** Bug
    * [FELIX-2704] - @Property(cardinality=Integer.MAX_Int, ...) causes java.lang.NumberFormatException

** Improvement
    * [FELIX-2753] - Support array of classes for @Service annotation
    * [FELIX-2874] - Add new scopes to SlingFilter annotation and use new property names
    * [FELIX-2838] - Allow classes to be specifed as values for the @Property annotation
    * [FELIX-2863] - Warnings and error messages contain @scr.* if annotations are used
    * [FELIX-2690] - Add changelog.txt to SCR/Metatype generation modules


