В моем текущем приложении я хочу создавать и настраивать osgi-сервисы во время выполнения через пользовательский интерфейс. Я изучил спецификацию OSGi Metatype, но она поддерживает только атрибуты простого типа.
Итак, мои вопросы: есть ли веская причина, почему нет поддержки типов атрибутов, таких как другие службы osgi, и кто-нибудь знает о уже существующем проекте, который делает что-то подобное?
UPDATE
Для дальнейшего уточнения моего вопроса:
То, что я хочу сделать, - это создавать и настраивать новые службы в соответствии с потребностями пользователя программного обеспечения. Это должно даже работать, если в систему добавлены новые сервисные интерфейсы.
Предположим, у меня есть сервисный интерфейс для отправки уведомлений
public interface NotificationService {
void notify(Notification n);
}
и реализация для отправки уведомлений, например, на Twitter. Через спецификацию Metatype я мог бы закодировать информацию о том, что сервису Твиттера нужны имя пользователя и пароль. Это позволяет мне динамически создавать пользовательский интерфейс во время выполнения для создания новых служб уведомлений Twitter.
Это работает с простыми типами данных, но спецификация Metatype не обрабатывает зависимости от других сервисов. Например. Допустим, у Notification
есть вложение файла, и поэтому службе Twitter требуется служба FileUpload для хранения файлов.