@classmethod
def add_application_properties(cls, application, new_groups,
    add_default_group=True, **kwargs):
    """Add argparse properties for an application

        If the application does not exist, the application will be added in
        the applications properties storage.

        new_groups: extend the existing groups defined. If no group is defined
        before, this extend the groups of the default application.

        :param application: the name of the application
        :param new_groups: list of the configuration groups
        :param add_default_group: if True the default groups will be add
        :params kwargs: other properties to change
        """
    if application not in cls.applications:
        cls.applications[application] = {}
    app = cls.applications[application]
    if kwargs:
        app.update(kwargs)
    if new_groups:
        if 'configuration_groups' not in app:
            app['configuration_groups'] = []
            if add_default_group:
                app['configuration_groups'].extend(cls.applications[
                    'default']['configuration_groups'])
        cg = app['configuration_groups']
        for new_group in new_groups:
            if new_group not in cg:
                cg.append(new_group)
