Состояние администраторских услуг развертывания OSGi

Я думаю, что это способ обратной совместимости со старым iOS SDK и использования нового API при использовании более нового SDK. Также без предупреждений об устаревании в коде с использованием устаревшего класса.

    if ([UIAlertController class]) {
        // Use new API to create alert controller, add action button and display it
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"CityBoard" message:error.errorDescription preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction* ok = [UIAlertAction actionWithTitle: @"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
            [alertController dismissViewControllerAnimated:YES completion:nil];
        }];
        [alertController addAction: ok];
        [self presentViewController:alertController animated:YES completion:nil];
    } else {
        // We are running on old SDK as the new class is not available
        // Hide the compiler errors about deprecation and use the class available on older SDK
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"CityBoard"
                                                        message:error.errorDescription
                                                       delegate:self
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];
#pragma clang diagnostic pop
14
задан Thilo 28 May 2009 в 04:04
поделиться

2 ответа

Администратор развертывания - одна из тех служб компендиума OSGi, которая, похоже, привлекла относительно мало внимания. Очевидно, что существует спецификация и, следовательно, предположительно эталонная реализация и тесты на соответствие. Реализация была внесена в проект Apache Felix, но, похоже, она почти бесследно затонула.

Я изучал Deployment Admin при разработке поддержки файлов PAR в SpringSource dm Server, но модель не подходила для наших случаев использования. В частности, пакет с данным символическим именем (и любой версией) не может находиться в двух разных пакетах развертывания, которые установлены в одной и той же среде OSGi.

Напротив, два файла PAR, установленные в одном экземпляре сервера dm, могут оба содержат пакет с данным символическим именем пакета (и той же самой или другой версией пакета). Мы рассматриваем это как требование масштабирования приложения: мы не хотели, чтобы большие приложения «сталкивались» просто потому, что их разработчики упаковали один и тот же пакет. Службы также охватываются файлами PAR.

В dm Server 2.0 мы обобщили концепцию PAR на «планы», которые представляют собой файлы, ссылающиеся по имени типа и версии на устанавливаемые артефакты. План может быть ограниченным (например, PAR) или неактивным и может быть атомарным (это означает, что жизненный цикл его содержимого атомарно привязан к жизненному циклу плана, как PAR) или неатомарным.

Вложенные структуры также могут быть исследован как возможный будущий стандарт OSGi для удовлетворения требований к определению области действия приложений, но с точки зрения дизайна, несколько отличной от области действия сервера dm. Вложенная платформа не может автоматически видеть пакеты и службы в своей родительской платформе. Таким образом, по умолчанию модель является изолированной, будь то изоляция дочерних фреймворков друг от друга или изоляция дочерних и родительских фреймворков. Области действия сервера dm намеренно изолируют дочерние элементы друг от друга, но изолируют дочерний элемент от его родителя только в одном направлении: дочерний элемент может видеть все пакеты и службы своего родителя.

10
ответ дан 1 December 2019 в 13:59
поделиться

Возможно, вам будет интересно узнать, что Apache Ace (который в настоящее время находится в стадии инкубации и наращивания) может динамически создавать пакеты развертывания для администратора развертывания и использовать (по умолчанию, при обеспечении целевой OSGi) Администратор развертывания Феликса.

Поскольку веб-сайт находится в стадии разработки: Apache Ace - это среда распространения программного обеспечения, которая позволяет централизованно управлять и распространять программные компоненты, данные конфигурации и другие артефакты в целевые системы. Он построен с использованием OSGi и могут быть развернуты в различных топологиях. Целевые системы обычно также основаны на OSGi, но не обязательно.

6
ответ дан 1 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: