Changes from 0.0.2 to 0.0.4
---------------------------
** Bug
    * [FELIX-4827] - Improve logging on LoginModule registration

** Improvement
    * [FELIX-4978] - Enable name hint for JAAS Config entries
    * [FELIX-5083] - Set webconsole.configurationFactory.nameHint for JAAS configurations

Initial Release 0.0.2
---------------------

** Task
    * [FELIX-3935] - Add testcases for validating the JAAS Feature implementation
    * [FELIX-3980] - Add documentation related to usage of Felix JAAS Bundle
    * [FELIX-3981] - Create a sample project for demonstrating Felix JAAS main features
    * [FELIX-3989] - Add support for determining code coverage with integration testcases
    * [FELIX-4318] - prepare for initial release of JAAS Bundle

** Bug
    * [FELIX-3985] - ConfigSpiOsgi should be registered by default
    * [FELIX-3998] - Updating JAAS config leads to registration of duplicate LoginModules
    * [FELIX-4387] - JAAS config fields are initialized too late in the ConfigSpiOsgi constructor
    * [FELIX-4390] - Login modules registered via LMF not updated if LMF service config changes

** Improvement
    * [FELIX-3983] - Use inlined Sling commons PropertiesUtil for reading config values
    * [FELIX-3984] - Use default application/realm name of 'other' if none specified
    * [FELIX-4389] - Configuration ranking for LMF services should also use "jaas.ranking" property
    * [FELIX-4414] - Empty string value in jaas.realm should also trigger default

** New Feature
    * [FELIX-3705] - Bundle to simplify JAAS usage in OSGi

