def validate(self, required_props):
        """
        Check if the required application metadata properties have been populated.

        :param required_props: List of required properties
        :type required_props: list
        :return: True, if the metadata is valid
        :raises: InvalidApplicationMetadataError
        """
        missing_props = [p for p in required_props if not getattr(self, p)]
        if missing_props:
            missing_props_str = ', '.join(sorted(missing_props))
            raise InvalidApplicationMetadataError(properties=missing_props_str)
        return True