К основному контенту

Установка Extension Library

По просьбам трудящихся опишу на родном языке процесс установки библиотеки Extension Library. Справедливости ради отмечу, что подобным образом можно устанавливать любые кастомные библиотеки компонентов для XPages (да-да, Extension Library, конечно же не единственная библиотека в своем роде).


В этом посте будет описана установка Extension Library на сервер, затем на клиент (Designer). Я не буду описывать все возможные способы установки, рассматривать обновление версии Extension Library или удаление библиотеки. Во-первых, зачем куда чего устанавливать:
1. На сервер: для возможности пользователям работать с приложениями: все обращения идут к серверу, а значит и ресурсы должны лежать там.
2. На клиент: для возможности разработки (компоненты должны быть доступны в палитре) и тестирования/работы на локале. При открытии приложения в клиенте Notes на локале идет обращение к локальным ресурсам. Вот.

Приступим, установка на сервер:
1. Исходные данные:
- Domino Server 8.5.3 +
- Соответствующая версия Extension Library. Напоминаю, что взять можно ее тут.

2. Развернуть базу Update Site
- Развернуть на сервере базу на основе шаблона Eclipse Update Site. Шаблон лежит на сервере в дополнительных шаблонах (advanced templates)

- В ACL нужно дать права тем, кто будет размещать там плагины. Минимальный необходимый доступ: Author

3. Загрузить плагины в базу Update Site
- Среди скаченных файлов библиотеки, должен быть updateSiteOpenNTF.zip - его надо распаковать
- В архиве 2 папки: features, plugins - и один файл: site.xml. Он-то и нужен
- Открываем только что развернутую базу Update Site, жмем "Import Local Update Site", указываем путь к файлу site.xml и ОК.

- Как только импорт будет завершен, отобразится список загруженных плагинов.

4. Изменить серверный Notes.ini
- В Notes.ini на сервере нужно добавить переменную OSGI_HTTP_DYNAMIC_BUNDLES, с указанием пути к базе Update Site, например: OSGI_HTTP_DYNAMIC_BUNDLES=updateSite1.nsf
- Может быть указано более одной базы UpdateSite через ",", например: OSGI_HTTP_DYNAMIC_BUNDLES=updateSite1.nsf,folder\updateSite2.nsf
- На каждом сервере, где будет указана данная переменная будет работать реплика базы Update Site. Т.е. для тиражирования на другие сервера нужно добавить указанную выше переменную в Notes.ini серверов и сделать на них реплики Update Site.

5. Перезагрузить сервер
- После выполнения данных шагов необходимо перегрузить Domino сервер командой res ser
- При загрузке сервера (а точнее задачи http), вы должны будете увидите строку со следующим содержанием:
HTTP JVM: CLFAD0330I: NSF Based plugins are being installed in the OSGi runtime. For more information please consult the log
- Проверить, подгружены ли конкретные плагины можно командой: tell http osgi ss com.ibm.xsp.extlib. Пример ответа:
> tell http osgi ss com.ibm.xsp.extlibx
16/04/2013 09:22:17 Framework is launched.
16/04/2013 09:22:17 id State Bundle
16/04/2013 09:22:17 12 <<LAZY>> com.ibm.xsp.extlibx.relational_9.0.0.v00_01_20130415-0518
16/04/2013 09:22:17 13 <<LAZY>> com.ibm.xsp.extlibx.sbt_9.0.0.v00_01_20130415-0518
16/04/2013 09:22:17 14 RESOLVED
com.ibm.xsp.extlibx.relational.derby_9.0.0.v00_01_20130415-0518
16/04/2013 09:22:17 15 RESOLVED com.ibm.xsp.extlibx.oauth_9.0.0.v00_01_20130415-0518
16/04/2013 09:22:17 Master=106
16/04/2013 09:22:17 19 <<LAZY>> com.ibm.xsp.extlibx.core_9.0.0.v00_01_20130415-0518
16/04/2013 09:22:17 20 RESOLVED com.ibm.xsp.extlibx.controls_9.0.0.v00_01_20130415-0518
16/04/2013 09:22:17 24 <<LAZY>> com.ibm.xsp.extlibx_9.0.0.v00_01_20130415-0518

Важно знать:
Плагины установленные данным способом на самом деле не находятся на сервере, а подгружаются автоматически через OSGI. Т.е. как только задача http будет завершена, плагины не будут доступны.

Установка на клиент
1. Исходные данные:
- Клиент Notes 8.5.3 +
- Extension Library, установленная на сервере через Update Site

2. Включить опцию установки плагинов
- В Domino Designer идем в File -> Preferences

- Ищем опции Domino Designer и в них выставляем галку "Enable Eclipse plug-in install"

3. Устанавливаем плагины
- Находясь в Domino Designer: File -> Application -> Install

- В появившемся окне выбираем опцию Search for new features to install, Next >

- В следующем пункте Add remote location.
- В диалоге забиваем произвольное название и указываем Web URL к базе Update Site -> ОК -> Finish.
- Во время установки для каждого *.jar файла будет выскакивать предупреждение тип "А точно установить?". По-умолчанию там выбрано "Нет, пропустить установку этого компонента", нужно переключить на "Установить" и нажать ОК
- После установки всех плагинов Designer нужно перезапустить, что он сам любезно предложит сделать.
Примечание:
1. Можно установить плагины так же через имеющийся в скаченных файлах библиотеки updateSiteOpenNTF-designer.zip. Тогда на шаге выбора источника установки нужно указать не "Add remote location", а "Add Zip/Jar location" и выбрать путь к *.zip файлу
2. Или вообще вручную скопировать папки features и plugins из updateSiteOpenNTF-designer.zip в Notes\Data\workspace\applications\eclipse

P.S. Часть поста про установку на сервер, по-сути вольный и не абсолютно полный пересказ вот этой статьи. Тем не менее это не теоретический пост, данный путь проходился ни один раз самостоятельно.

Комментарии

Популярные сообщения из этого блога

Занимательные алгоритмы. Поиск цикла в односвязном списке

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (Lotus Notes), которые можно было бы задать на собеседовании, плавно перешел к воспоминаниям о своих первых собеседования, когда опыта работы еще не было. Опыт самих собеседований у меня не велик а места, где задавались действительно интересные задачи (а не задачки типа: написать сортировку массива любым известным способом) вообще равны одному - это ABBYY. Как минимум одна задачка в списке на знание и понимание классических алгоритмов, описанных в книге Дональда Кнута -  Искусство программирования .

Unit-testing object validation when validator has DI

Summary Unit test object validation when validator(s) has a dependency. For instance, we have some custom field and cross-field validators. Want to test their combination. Additionally some of validators have dependencies, injected through constructor or setters. You're not using property injection, right? Shortcut If you are just searching for an answer, here's the fast way: Declare CustomConstraintValidatorFactory that implements javax.validation.ConstraintValidatorFactory Override getInstance method and on facing your constraint validator class instantiate it Otherwise delegate validator construction to org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl Build validator factory and provide it your CustomConstraintValidatorFactory Build validator, using that factory... Go to demo project on GitHub for details:  https://github.com/MrArtemAA/blog-demos/blob/master/test-validator-with-injection/src/test/java/ru/artemaa/d

Lotus Notes FAQ. 8/9 Eclipse. Как настроить уведомления о Sametime сообщениях

Н а написание данной "инструкцию" натолкнул мой коллега. Помню, первый раз сам долго искал, как отключить постоянно выпрыгивающие уведомления о новых сообщениях в Sametime. И так, речь идет о клиентах IBM Notes 8+ версии Standart (Eclipse based). Как настроить уведомления о Sametime сообщениях?