Расширение клиента Lotus Sametime с помощью плагина просмотра LDAP-директорий

Вырвитесь вперёд, занявшись разработкой для IBM Lotus Sametime 7.5! Расширьте новый клиент Lotus Sametime 7.5 Connect на основе Eclipse и научитесь создавать плагин LDAP-директории для извлечения контактной информации.

Марк Тэлбот, разработчик отраслевых решений, IBM

Марк Тэлбот (Mark Talbot) - разработчик отраслевых решений в компании IBM. Вы можете связаться с Марком по адресу talbotm@us.ibm.com.



Кулвир Сингх Бхогал (Kulvir Singh Bhogal), программное обеспечение для WebSphere, Fort Worth, TX, IBM

Кулвир Сингх Бхогал работает в качестве консультанта IBM; он разрабатывает и реализует решения на основе Java для сайтов клиентов по всей стране.



22.12.2006

[Примечание редактора: Данная статья представлена в обновленном варианте, чтобы наиболее полно осветить последнюю версию IBM Lotus Sametime Connect V7.5. В нее включен новый образец кода для загрузки, который работает с IBM Lotus Sametime SDK V7.5.]

Одним из наиболее значительных преимуществ IBM Lotus Sametime 7.5 является его изначальная расширяемость. Поскольку клиент Lotus Sametime основан на Eclipse, вы можете обновить его функциональность с помощью плагинов Eclipse, разработкой которых вы занимаетесь. В данной статье мы покажем вам, как создать плагин Eclipse, способствующий расширению интерфейса пользователя клиента Lotus Sametime. Вместо того чтобы представить вам самый простой и обыкновенный плагин, в данной статье речь пойдет о плагине, который многие организации захотели бы добавить к своим клиентам Lotus Sametime. Это плагин Partner Lookup, с помощью которого можно просматривать информацию партнера по Sametime прямо из службы каталогов.

Из этой статьи вы узнаете о самом процессе разработки, через который мы прошли, создавая плагин Partner Lookup. Мы также покажем вам, как можно свободно пользоваться доступным Eclipse Software Development Kit (SDK), который включает в себя среду разработки плагина (plug-in development environment - PDE), для разработки плагинов. Прочитав эту статью, вы может быть уже решите взяться за создание ваших собственных плагинов Eclipse, чтобы расширить клиент Lotus Sametime 7.5.

Вы можете загрузить Eclipse SDK с Web-сайта Eclipse. Вы также можете скачать плагин Partner Lookup из раздела Загрузка в этой статье.

Предварительный просмотр и подготовка для плагина Partner Lookup

Многие организации используют службу каталогов для хранения данных о своих членах. Такие службы каталогов содержат информацию о каждом сотруднике, входящем в состав организации, среди которой адреса их электронной почты, номера телефонов и другая важная контактная информация, которая позволяет членам вашей организации поддерживать связь между собой. На рынке продуктов можно найти целый ряд служб каталогов, например Microsoft Active Directory и OpenLDAP. Для данной статьи мы воспользовались Tivoli Directory Server от IBM в качестве выбранного нами сервера LDAP. Вы можете загрузить пробную версию Tivoli Directory Server с IBM Software Web-сайта пробного ПО и бета-версий. В этой статье предполагается, что Tivoli Directory Server у вас установлен и работает.

Если вы не знакомы с Tivoli Directory Server, то у вас может появиться желание прочитать статью developerWorks, "Введение в LDAP: Часть 1: Установка и простое программирование Java LDAP," в которой отлично описывается процесс установки Tivoli Directory Server.

Если вы используете Tivoli Directory Server, добавьте индекс: dc=ibm, dc=com в вашу LDAP-схему, как это описано в статье "Введение в LDAP", с помощью функции управления индексами (Manage suffixes facility) в инструменте конфигурирования IBM Tivoli Directory Server как показано на рисунке 1.

Рисунок 1. Инструмент конфигурирования IBM Tivoli Directory Server
Инструмент конфигурирования IBM Tivoli Directory Server

Для того, чтобы продемонстрировать работу плагина Partner Lookup, вам необходимо внести примеры каких-нибудь данных в директорию LDAP. Вы можете воспользоваться командой ldapadd из командной строки, чтобы добавить запись на ваш LDAP-сервер из файла Lightweight Data Interchange Format (LDIF). В статье "Введение в LDAP" описывается, как это можно сделать. Содержимое нашего файла LDIF представлено ниже.

Примечание: Вам следует изменить содержимое вашего файла перед его "заселением" в директорию LDAP. Для того чтобы плагин Partner Lookup смог собрать информацию о каком-то определенном партнере Sametime, этот партнер должен существовать в директории LDAP.

Мы используем адрес электронной почты партнера, чтобы ознакомиться с его данными. Соответственно, этот адрес должен находиться в вашей директории LDAP и поэтому должен быть включен в содержимое файла LDIF. Вам следует изменить нижеприведенное содержимое LDIF, чтобы оно отражало тот email-адрес, по которому вы хотели бы осуществить просмотр данных партнера. Например, в файле LDIF, который мы использовали ниже, содержатся образцы данных записей, связанных с email-адресами kbhogal@us.ibm.com и talbotm@us.ibm.com.

dn: dc=ibm, dc=com
dc: ibm
description: IBM is a fun place to work.
objectClass: dcObject
objectClass: organization
objectClass: top
o: International Business Machines
dn: ou=people, dc=ibm, dc=com ou: people description: All of the authors on this paper objectclass: organizationalunit objectclass: top
dn: cn=Kulvir Bhogal,ou=people, dc=ibm, dc=com mail: kbhogal@us.ibm.com uid: kbhogal userpassword:: a2Job2dhbA== objectclass: inetOrgPerson objectclass: organizationalPerson objectclass: person objectclass: top description: loves gyros homephone: 555-222-3333 sn: kbhogal cn: Kulvir Bhogal
dn: cn=Mark Talbot,ou=people, dc=ibm, dc=com mail: talbotm@us.ibm.com uid: talbotm userpassword:: dGFsYm90bQ== objectclass: inetOrgPerson objectclass: organizationalPerson objectclass: person objectclass: top description: likes long walks on the beach homephone: 555-111-2222 sn: talbotm cn: Mark W Talbot cn: Mark Talbot

Чтобы получить доступ к LDAP-серверу, Java-программа может воспользоваться Java Naming and Directory Interface - JNDI. Мы предполагаем, что у вас глубокие познания в области того, как эффективно использовать JNDI, чтобы у Java-программы был доступ к LDAP-серверу. Опять же, в статье "Введение в LDAP" очень хорошо описаны основные положения, необходимые вам для понимания тех концепций, которые мы демонстрируем. Далее вы увидите, как плагин Sametime использует JNDI для сбора контактной информации Sametime, хранящейся на Tivoli Directory Server. На рисунке 2 показан общий вид плагина Partner Lookup в действии.

Рисунок 2. Плагин Partner Lookup в Lotus Sametime 7.5
Плагин Partner Lookup в Lotus Sametime 7.5

Мы также предполагаем, что помимо Tivoli Directory Server, что у вас установлен клиент Lotus Sametime 7.5. В целях нашего эксперимента мы установили Tivoli Directory Server и клиент Lotus Sametime 7.5 на один и тот же ПК. Конечно, в реальной ситуации ваш клиент физически находился бы отдельно от вашего сервера директорий. Кроме того, для разработки плагина вам необходимо установить Eclipse 3.2 SDK, который находится в свободном доступе на web-сайте Eclipse . Как было упомянуто выше, Eclipse SDK содержит среду разработки плагинов (plug-in development environment - PDE), а также интегрированную среду разработки (integrated development environment - IDE), являющихся необходимым вам "арсеналом" для создания плагина Eclipse, который может значительно увеличить спектр дополнительных возможностей клиента Lotus Sametime.


Lotus Sametime 7.5, основанный на Eclipse

При нашей помощи детальное понимание Eclipse для разработки плагина Eclipse, типа плагина Partner Lookup, не обязательно. Однако мы рассчитываем, что вы имеете представление об основных понятиях Eclipse IDE (см. раздел Ресурсы для получения более подробной информации). Для того чтобы начать процесс разработки плагина Eclipse, давайте пройдемся по нескольким базовым терминам Eclipse.

Плагин Eclipse является компонентом, дополняющим платформу Eclipse. Вы можете настроить плагин, чтобы дополнить интерфейс пользователя платформы Eclipse или чтобы предоставить сервис для платформы Eclipse, не основанный на интерфейсе пользователя. Плагины Eclipse могут задавать точки расширения, используя схему расширения точек. Согласно такой схеме определяется, каким образом плагин, называющийся расширяющим (extender) плагином, может модифицировать хост-плагин, декларируя расширение. Точки расширения задаются на хост-плагинах, а расширения декларируются расширяющими плагинами.

Например, точка расширения может задать средство для модифицирования пункта меню хост-плагина. У клиента Lotus Sametime 7.5 есть плагин, определяющий точку расширения, ID которой - com.ibm.collaboration.realtime.people.personAction. С помощью данной статьи вы сможете создать расширение, которое повысит функциональность такой точки расширения. То есть, вы добавляете функциональность Partner Lookup, что показано на рисунке 2.

Подготовка среды разработки плагина (plug-in development environment - PDE)

Далее в тексте этой статьи мы будем называть Eclipse 3.2 SDK просто Eclipse. После того, как вы установили Eclipse, откройте его. Для того чтобы разработать плагин Eclipse, перейдите в перспективу Plug-in Development, выбрав Window - Open Perspective - Other. Появится диалоговое окно Select Perspective, как показано на рисунке 3. Выберите Plug-in Development и нажмите OK.

Рисунок 3. Выбор диалогового окна Perspective
Выбор диалогового окна Perspective

По умолчанию установлена PDE для расширения платформы Eclipse. Однако, ваша задача - написать плагин, чтобы расширить приложение клиента Sametime. Для того чтобы это осуществить, вам необходимо настроить PDE для расширения Lotus Sametime вместо Eclipse. Этот приём известен как изменение целевой платформы (Target Platform). Чтобы изменить целевую платформу в PDE, выберите Window - Preferences. Появится диалоговое окно Preferences. Из левой части окна разверните пункт меню Plug-in Development. Затем выберите предпочтение Target Platform как показано на рисунке 4.

Рисунок 4. Выбор предпочтения Target Platform
Выбор предпочтения Target Platform

Далее, измените местонахождение целевой платформы, направив ее в директорию вашего клиента Sametime с помощью кнопки Browse. Затем нажмите на Reload. Этим действием вы загрузите плагины Sametime. Если плагины Sametime не появились, проверьте, правильный ли путь вы ввели для директории вашего клиента Sametime. Он должен указывать на папку, содержащую директорию плагинов. Нажмите Apply, а затем OK.


Расширение интерфейса пользователя в Sametime с помощью плагина Partner Lookup

Теперь, когда PDE подготовлена, вы можете смело засучить рукава и заняться непосредственной разработкой плагина. В Eclipse, выберите File - New Project и в появившемся диалоговом окне New Project выберите Plug-in Development - Plug-in Project как показано на рисунке 5, а затем нажмите Next.

Рисунок 5. Диалоговое окно New Project
Диалоговое окно New Project

Далее появится мастер New Plug-in Project. Дайте название проекту com.devWorks.example.ldaplookup, задайте установки по умолчанию и нажмите Next. Отмените опцию "This plug-in will make contributions to the UI". Если выбрана эта опция, то класс Activator будет расширять AbstractUIPlugin. Однако если вы отмените опцию, то класс Activator будет расширять класс Plugin (а это как раз то, что вам нужно).

Класс Activator определяет продолжительность деятельности плагина в ваших интересах. AbstractUIPlugin расширяет класс Plugin. AbstractUIPlugin также предоставляет несколько дополнительных методов и прямой доступ к графическому интерфейсу пользователя (GUI) Eclipse. Поскольку вы не вносите никаких прямых дополнений в интерфейс пользователя, расширять класс AbstractUIPlugin не требуется. Вы дополняете интерфейс пользователя Eclipse через точку расширения. После того как вы отменили выделение опции, нажмите Finish. Должно появиться подокно Package Explorer, как показано на рисунке 6.

Рисунок 6. Package Explorer
Package Explorer

Далее вы редактируете манифест-файл вашего плагина. То есть, вы модифицируете манифест-файл, указывая дополнительные плагины, необходимые для плагина Partner Lookup, чтобы расширить интерфейс пользователя клиента Lotus Sametime. Нажмите двойным щелчком на файл META-INF/MANIFEST.MF. Таким образом открывается редактор манифеста плагина (Plug-in Manifest Editor). Если Plug-in Manifest Editor не появился, нажмите правой кнопкой мыши на MANIFEST.MF и выберите Open With - Plug-In Manifest Editor. В Manifest Editor выберите закладку Dependencies. Затем нажмите на кнопку Add, как показано на рисунке 7.

Рисунок 7. Закладка Dependencies в редакторе манифеста плагина (Plug-In Manifest Editor)
Закладка Dependencies в редакторе манифеста плагина (Plug-In Manifest Editor)

Редактор манифеста плагина является изображением графического интерфейса пользователя (GUI) для build.xml, plugin.xml и MANIFEST.MF. Нажав на кнопку Add, вы увидите диалоговое окно с целым списком доступных плагинов. Добавьте плагин com.ibm.collaboration.realtime.people, плагин com.ibm.rcp.realtime.livenames и плагин org.eclipse.jface в необходимый вам список плагинов.

Если у вас уже установлен плагин org.eclipse.ui в качестве зависимости, то зависимость org.eclipse.jface не обязательна. Если ни один из плагинов не появляется в диалоговом окне, проверьте правильность вашей целевой платформы. После того как вы закончили, сохраните изменения и закройте Plug-in Manifest Editor.

Далее, вы можете создать класс, который вызывается, когда пользователь Sametime нажимает на правую кнопку мыши на имя партнера и выбирает пункт Partner Lookup из контекстного меню. Этот класс, называемый нами com.devWorks.example.ldaplookup.PartnerLookupDelegate, расширяет класс LiveNameActionDelegate, который мы получаем из плагина com.ibm.rcp.realtime.livenames, с которым мы ранее задекларировали зависимость.

После создания вами класса PartnerLookupDelegate, вы можете соединить класс PartnerLookupDelegate с интерфейсом пользователя (UI) Lotus Sametime, используя точку расширения, выставленную через плагин org.eclipse.ui.

Создайте класс Java под названием PartnerLookupDelegate и с именем пакета com.devWorks.example.ldaplookup. Дайте возможность этому классу расширить класс com.ibm.rcp.realtime.livenames.LiveNameActionDelegate.

Добавление кода в ваши действия

Когда вызывается название меню, которое вы определили в метке вашей точки расширения, инициируется публичный метод void run(IAction arg0) объекта, расширяющего класс LiveNameActionDelegate. В нашем случае, мы перезаписываем метод runWithEvent с помощью кода, чтобы установить соединение с LDAP-сервером и вывести на экран контактную информацию, связанную с партнером.

Для большей наглядности, мы задали класс, называемый com.devWorks.example.ldaplookup.LDAPConfig. Чтобы экспортировать информацию по настройке LDAP-сервера, вам необходимо установить соединение с вашим LDAP-сервером с помощью файла параметров. В производственной среде строка, являющаяся единицей конфигурации, должна быть экспортировать как предпочтение Eclipse. Строка, которая отображается для пользователя, должна быть интернационализирована. Если вы хотите знать больше о предпочтениях Eclipse и о том, как Eclipse осуществляет интернационализацию, см. раздел Ресурсы. Чтобы упростить задачу, мы не осуществляем экспорт с помощью настроек Eclipse и интернационализации.

Установка соединения с LDAP-сервером

Когда клиент Lotus Sametime запускается, плагин Partner Lookup пробует установить соединение с LDAP-сервером. Это соединение используется на протяжении всего сеанса, осуществляемого пользователем Sametime. То есть, запускается метод пуска класса Activator, который в свою очередь инициирует метод initializeLDAP класса Activator.

Примечание: Существует только один представитель класса Activator на плагин. Соответственно, вместо того, чтобы каждый раз устанавливать LDAP-соединение при использовании контекстного меню Partner Lookup, мы помещаем LDAP-соединение в кэш как часть нашего представителя класса Activator.

В коде, приведенном ниже, получается идентификатор объекта javax.naming.directory.DirContext.

   private void initializeLDAP() {
	try {
		Properties props = new Properties();
		// Setup your environment here
		props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
			"com.sun.jndi.ldap.LdapCtxFactory");
		props.setProperty(Context.PROVIDER_URL,
		LDAPConfig.getString("LDAPLookup.ldapserver")); 
		props.setProperty(Context.URL_PKG_PREFIXES, 
			"com.sun.jndi.url"); 
		props.setProperty(Context.REFERRAL, "ignore"); 
		props.setProperty(Context.SECURITY_AUTHENTICATION, 
			"simple");
// Set your LDAP username and password here props.setProperty(Context.SECURITY_PRINCIPAL, LDAPConfig.getString("LDAPLookup.ldapusername")); props.setProperty(Context.SECURITY_CREDENTIALS, _LDAPConfig.getString("LDAPLookup.ldappassword")); ctx = new InitialDirContext(props); } catch (NamingException e) { System.out.println("Error Connection to LDAP Server."); ctx=null; } }

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

public class LDAPConfig 
{
	private static final String BUNDLE_NAME =
		“com.devWorks.example.ldaplookup.ldapconfig"; 
	private static final ResourceBundle RESOURCE_BUNDLE = 
	ResourceBundle.getBundle(BUNDLE_NAME);
private LDAPConfig() { }
public static String getString(String key) { try { return RESOURCE_BUNDLE.getString(key); } catch (MissingResourceException e) { return '!' + key + '!'; } } }

Согласно классу LDAPConfig должен присутствовать ресурсный пакет (в форме файла под названием ldapconfig.properties), на котором будет храниться информация о конфигурации LDAP-сервера. Вам необходимо обновить файл ldapconfig.properties, чтобы местоположение вашего LDAP-сервера и свойства, а также авторизированные регистрационные данные были отражены для доступа к серверу:

LDAPLookup.ldapserver= ldap://<server-name>:389 
LDAPLookup.ldapusername= <cn=yourusername> 
LDAPLookup.ldappassword= <yourpassword> 
LDAPLookup.EOL=

Обход метода запуска

Логика просмотра соответствующей LDAP-записи о каком-либо определенном партнере Sametime осуществляется по методу запуска, который мы будем рассматривать очень детально по частям, чтобы вам стало понятнее. Как было упомянуто выше, метод runWithEvent запускается, когда вызывается название меню, которое вы задаете в метке вашей точки расширения.

Первое, что вы должны сделать в методе запуска, - извлечь email-адрес партнера Sametime, который вам интересен. Наш партнер Sametime известен как объект com.ibm.collaboration.realtime.people.Person. Вы получаете email-адрес объекта Person, вызвав метод getContactId. Эта строка email-адреса используется в качестве вашего критерия (или в терминологии LDAP, поискового фильтра) для осуществления вашего LDAP-просмотра.

Person persons [] = getSelectedPersons();
Person person = persons[0]
String id = person.getContactId();
String ldapMessage = “”;
System.out.println("Performing Lookup for" + id);

Затем вы получаете идентификатор для вашего LDAP-соединения, установленного ранее методом initializeLDAP класса Activator. Соединение с вашим LDAP-сервером осуществляется через объект javax.naming.directory.DirContext.

DirContext ctx = Activator.getDefault().getLDAPConnection();

Далее вы задаете границы вашего LDAP-поиска, а также и то, что должно быть вам возвращено в результате поиска, используя объект SearchControls:

SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
constraints.setReturningAttributes(new String[] { "sn",
	"description", "homephone", "cn" });
String filter = "mail=" + id;
String BASE_SEARCH = "";

Критерием вашего фильтра является email-адрес. Вы запрашиваете, чтобы была возвращена фамилия (surname - sn), описание, домашний телефон и обычное имя (common name - cn).

Затем осуществляется запрос вашего LDAP-сервера следующим вызовом с помощью ограничения и фильтра, который вы только что установили. Результаты приходят обратно к вам в форме объекта javax.naming.NamingEnumeration.

NamingEnumeration results = ctx.search(BASE_SEARCH, filter,constraints);

Далее вы циклически перебираете результаты, соединяя их в цепочку строки (ldapMessage), которую плагин предоставляет в качестве ответа.

SearchResult sr = (SearchResult) results.next();
Attributes attributes = sr.getAttributes();
NamingEnumeration attributeNames = attributes.getIDs();
ldapMessage = "";
while (attributeNames.hasMoreElements()) 
{
	String attributeName = (String) attributeNames.next();
	Attribute attribute = attributes.get(attributeName);
	String attributeValue = (String) attribute.get();
	ldapMessage = ldapMessage.concat(attributeName + "="
	+ attributeValue + Messages.getString("LDAPLookup.EOL"));
}

В конце используется виджет org.eclipse.swt.widgets.MessageBox для вывода результатов вашего LDAP-запроса:

Shell shell = new Shell();
MessageBox messageBox = new MessageBox(shell, SWT.OK);
messageBox.setMessage(ldapMessage);
messageBox.setText("LDAP lookup for " + id); 
messageBox.open();

Подключение вашего плагина

После того как вы создали класс PartnerLookupDelegate, вам необходимо создать пункт меню Partner Lookup, чтобы получить доступ к плагину Partner Lookup с графического интерфейса пользователя (GUI) Lotus Sametime. Чтобы создать пункт контекстного меню для Lotus Sametime GUI, вам необходимо расширить точку расширения, к которой вы имеет доступ через плагин org.eclipse.ui.

Откройте закладку plugin.xml и отредактируйте plugin.xml таким образом, чтобы он появлялся со следующей декларацией точки расширения:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin> 
 <extension
       point="org.eclipse.ui.popupMenus">
    <objectContribution
          adaptable="false"
          id="com.devworks.example.ldaplookup.prersonselection"
          objectClass="com.ibm.collaboration.realtime.livenames.PersonSelection">
       <action
             class="com.devworks.example.ldaplookup.PartnerLookupDelegate"
             enablesFor="1"
             id="com.devworks.example.ldaplookup.PartnerLookupDelegate"
             label="Partner Lookup"
             style="push"/>    
    </objectContribution>     
 </extension>
</plugin>

Мы задаем несколько пунктов конфигурации для точки расширения org.eclipse.ui.popupMenus. Сначала, мы определяем класс, который расширяет класс LiveNameActionDelegate. Для этого класса мы задаем тот класс, который мы создали (com.devWorks.example.ldaplookup.PartnerLookupDelegate). В качестве идентификатора мы устанавливаем ID, уникальный для клиента Lotus Sametime 7.5. Метка описывает то, как меню предоставляется пользователю. В нашем случае мы решили создать пункт меню под названием Partner Lookup.


Тестирование плагина Sametime в Eclipse

Из меню запуска в Eclipse, выберите Run. В левом подокне диалогового окна Run щелкните правой кнопкой мыши на Eclipse Application и выберите New_configuration. У вас появится возможность настроить ваше приложение, как показано на рисунке 8.

Рисунок 8. Диалоговое окно Run
Рисунок 8. Диалоговое окно Run

Клиент Lotus Sametime должен появиться таким же образом, как если бы он был запущен вне Eclipse, как показано на рисунке 9.

Рисунок 9. Клиент Lotus Sametime 7.5 в Eclipse
Клиент Lotus Sametime 7.5 в Eclipse

Общедоступный испытательный стенд Sametime

Для нашего тестирования мы зарегистрировались в системе с помощью общедоступного сервера IBM Lotus Sametime: messaging.ngi.ibm.com. Более подробно вы можете ознакомиться с общедоступным сервером Lotus Sametime на Web-сайте IBM Community Tools. При взаимодействии с общедоступным сервером IBM Lotus Sametime имя вашего пользователя и пароль являются теми же самыми, как и ваши имя пользователя и пароль для IBM. Получить имя пользователя и пароль IBM вы можете, зарегистрировавшись на одном из IBM Web-сайтов. Мы предполагаем, что у вас есть хотя бы один Sametime партнер в вашем списке, для которого вы добавили информацию директории ранее в ваш LDAP-сервер (см. раздел "Предварительный просмотр и подготовка плагина Partner Lookup").

После того, как вы зарегистрировались в системе, появится Lotus Sametime 7.5 как показано на рисунке 10. Щелкните правой кнопкой мышки на имя партнера. Как было сказано выше, в директории на партнера Sametime должна быть информация, установленная для него или нее в вашем LDAP-сервере, на основе связанных с ними email-адресами. Вам следует посмотреть пункт контекстного меню Partner Lookup. Выберите пункт меню Partner Lookup.

Рисунок 10. Клиент Lotus Sametime 7.5
Клиент Lotus Sametime 7.5

Вызывается плагин, созданный вами, и запрашивается ваш LDAP-сервер. Если все установлено правильно, то должно появиться диалоговое окно, такое же, как и приведенное ниже (см. Рисунок 11), отображающее информацию партнера Sametime в таком виде, в котором она хранится на вашем LDAP-сервере.

Рисунок 11. Диалоговое окно просмотра LDAP
Диалоговое окно просмотра LDAP

Размещение в Lotus Sametime

Разместить ваш новый плагин и непосредственно его использовать в рамках приложения клиента Lotus Sametime (а не в рамках Eclipse) достаточно просто. Экспортируйте JAR-файл плагина из Eclipse. Затем скопируйте экспортированный JAR-файл плагина в директорию <sametime-root>/eclipse/plug-in, где <sametime-root> является директорией, в которой установлен клиент Lotus Sametime. Если Lotus Sametime выполняется в это время, перезапустите его, чтобы обнаружить плагин. После чего ваш плагин Eclipse станет частью клиента Lotus Sametime.

Для разработчика добавление плагина в Lotus Sametime с использованием способа размещения, описанного выше, будет достаточно. Однако, совсем по-другому будет происходить внедрение плагина в среду предприятий, в которую вовлечены сотни тысяч потребителей. Для этого предприятия могут создать свои собственные сайты, на которых клиенты, основанные на Eclipse, смогут узнавать обо всех обновленных версиях. Для более подробной информации о внедрении плагина и использовании сайтов обновлений обратитесь к разделу Ресурсы.


Заключение

Из данной статьи вы узнали о том, как расширить возможности клиента Lotus Sametime 7.5. Расширение клиента Lotus Sametime стало возможным благодаря тому, что клиент основан на Eclipse. Клиент Lotus Sametime предоставляет точки расширения, которые вы можете интегрировать путем создания заказного плагина. Такой заказной плагин может модифицировать хост-плагин, декларируя расширение. В данной статье мы продемонстрировали, как создать заказной плагин, который получает доступ к LDAP-серверу и извлекает информацию, связанную с партнером Sametime.


Загрузка

ОписаниеИмяРазмер
Sample plug-in codesametimeLDAP.zip5 KB

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Lotus
ArticleID=185319
ArticleTitle=Расширение клиента Lotus Sametime с помощью плагина просмотра LDAP-директорий
publish-date=12222006