Changes from 1.7.4 to 1.8.0
---------------------------

** Task
    * [FELIX-3225] - Drop javadoc annotation support
    * [FELIX-3552] - Implement new features of DS 1.2
    * [FELIX-3550] - Reimplement the SCR Generator

** Bug
    * [FELIX-3571] - "Comparison method violates general contract!" error in maven-scr-plugin
    * [FELIX-3555] - Maven SCR Plugin shoudn't attempt to run on modules of type POM
    * [FELIX-3269] - @Property is not properly parsed.
    * [FELIX-3189] - Mixing full-qualified Reference annotations and imported one results in no References exported to seviceComponents.xml
    * [FELIX-3606] - SCR Plugin: build failure on wildcard imports (e.g. java.util.*)
    * [FELIX-3234] - @Property annotation raises exceptions on longValue=0L use 

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


Changes from 1.7.2 to 1.7.4
---------------------------

** Bug
    * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
    * [FELIX-3117] - NullPointerException when not implementing interface that is defined with @Service
    * [FELIX-3070} - SCR Plugin and dependencies with classifier cause issue depending on the order of dependency in pom.xml
    * [FELIX-3136] - Endless loop: JavaClassDescriptorManager.getJavaClassDescription()
    * [FELIX-3113] - NPE in multi-module Maven project


** Improvement
    * [FELIX-3066] - Add support for source directory include filter via plugin configuration


Changes from 1.7.0 to 1.7.2
---------------------------

** Bug
    * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
    * [FELIX-2978] - Lookup reference policy does not work for inherited components
    * [FELIX-2945] - SCR plugin: Parsing of "options" for property tag broken for java annotations
    * [FELIX-2906] - @Property(cardinality=Integer.MAX_Int, ...) causes java.lang.NumberFormatException
    * [FELIX-2878] - scr- and bundle-plugin in multimodule project fails with goal "test"

** Improvement
    * [FELIX-2939] - Maven SCR Plugin is not (marked as) thread-safe for parallel builds
    * [FELIX-2492] - scr plugin: using src annotations causes NoClassDefFoundError and other errors
    * [FELIX-2908] - Use same mechanism to get single annotation values as for multiple annotation values


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

** Bug
    * [FELIX-2704] - @Property(cardinality=Integer.MAX_Int, ...) causes java.lang.NumberFormatException
    * [FELIX-2835] - SCR plugin: Parsing of "options" for property tag broken for javadoc annotations
    * [FELIX-2777] - MavenJavaClassDescriptorManager ignores dependencies with system scope
    * [FELIX-2770] - maven-scr-plugin 1.6.0 incompatible with <packaging>pom</packaging> projects
    * [FELIX-2731] - NPE while scanning sources with QDox
    * [FELIX-2681] - NPE in assertMinScrAnnotationArtifactVersion when checking min. version of annotations dependency
    * [FELIX-2876] - <reference> element not generated when name is missing

** Improvement
    * [FELIX-2853] - Deprecate javadoc tags
    * [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


