LDAPディレクトリー検索プラグインによるLotus Sametimeクライアントの拡張

IBM Lotus Sametime 7.5の開発をいちはやくスタートしましょう。この記事では、新しいEclipseベースのLotus Sametime 7.5 Connectクライアントを拡張して、連絡先情報を取得するためのLDAPディレクトリー・プラグインを構築する方法を見ていきます。

Mark Talbot (talbotm@us.ibm.com), Developer, Industry Solutions, IBM

Mark Talbot works for IBM as a developer for Industry Solutions. You can reach Mark at talbotm@us.ibm.com.



Kulvir Bhogal (kbhogal@us.ibm.com), Java Services Consultant, IBM Corporation

Kulvir Singh Bhogal works as an IBM consultant, devising and implementing Java-centric solutions at customer sites across the nation. You can contact Kulvir at kbhogal@us.ibm.com.



2006年 7月 27日

[編集者のメモ: この記事は、IBM Lotus Sametime Connect 7.5の最終バージョン情報を反映するために更新されました。IBM Lotus Sametime SDK 7.5で使用できる新しいサンプル・コードのダウンロードが追加されています。]

IBM Lotus Sametime 7.5が提供する数多くの機能の1つに、本質的な拡張性があります。Lotus SametimeクライアントはEclipseベースであるため、ユーザーは独自に開発するEclipseプラグインによって新機能を追加することができます。この記事では、Lotus Sametimeクライアントのユーザー・インターフェースを拡張するEclipseプラグインの構築方法について紹介します。ここでは、単純なHello Worldプラグインではなく、多くの企業が自社のLotus Sametimeクライアントへの追加を望んでいる、ディレクトリー・サービスからSametimeパートナーの情報を検索するPartner Lookupプラグインを紹介します。

この記事では、Partner Lookupプラグインの作成時にIBMが実施した一連の開発プロセスを見ていきます。また、無料で入手できるプラグイン開発用のEclipse Software Development Kit (SDK)の使用方法について説明します。このSDKにはプラグイン開発環境(PDE)が含まれています。この記事を読むことにより、独自のEclipseプラグインを作成してLotus Sametime 7.5クライアントを拡張できるようになります。

Eclipse WebサイトからEclipse SDKをダウンロードできます。また、この記事のダウンロードのセクションから、Partner Lookupプラグインをダウンロードできます。
Eclipse SDK(US) のダウンロードはこちら

Partner Lookupプラグインのプレビューと準備

多くの組織では、ディレクトリー・サービスを使用して組織のメンバーに関するデータを保存しています。こうしたディレクトリー・サービス により、組織を構成する個人について、電子メール・アドレスや電話番号など、組織のメンバーが互いに連絡を取るための重要な連絡先情報が保管されます。Microsoft Active DirectoryやOpenLDAPなど、多数のディレクトリー・サービス製品が市販されています。この記事では、LDAPサーバーとしてIBM Tivoli Directory Serverを使用します。IBM Software Trials and BetaのWebサイトからTivoli Directory Serverの体験版(US)をダウンロードできます。ここでは、読者がTivoli Directory Serverを既にインストールして稼働していることを前提としています。

Tivoli Directory Serverについて詳しくは、developerWorksの記事の『Introduction to LDAP: Part 1: Installation and simple Java LDAP Programming(US)』を参照してください。

Tivoli Directory Serverを使用する場合、次のように接尾辞を追加します。『Introduction to LDAP(US)』の記事で説明されているように、LDAPスキーマに対して、図1に示すように「IBM Tivoli Directory Server Configuration Tool(IBM Tivoli Directory Server構成ツール)」の「Manage suffixes(接尾辞の管理)」機能で、接尾辞dc=ibm, dc=comを追加します。

図1. IBM Tivoli Directory Server Configuration Tool (IBM Tivoli Directory Server構成ツール)
図1. IBM Tivoli Directory Server Configuration Tool

Partner Lookupプラグイン機能のデモンストレーションを行うには、LDAPディレクトリーにサンプル・データを入力する必要があります。コマンド・ラインからldapaddコマンドを使用し、Lightweight Data Interchange Format (LDIF)ファイルからLDAPサーバーにエントリーを追加します。この方法については、『Introduction to LDAP(US)』の記事で説明しています。LDIFファイルの内容は、次のとおりです。

注: LDAPディレクトリーに入力を行う前に、ファイルの内容を修正する必要があります。Partner Lookupプラグインで特定のSametimeパートナーに関する情報を収集するには、LDAPディレクトリーにそのパートナーが存在している必要があります。

パートナー情報を検索する際に、そのパートナーの電子メール・アドレスを使用します。そのため、そのパートナーの電子メール・アドレスがLDAPディレクトリーに格納され、LDIFの内容に含まれている必要があります。次のLDIFの内容を変更して、パートナー検索の対象となる電子メール・アドレスを含めます。例えば、下記で使用するLDIFファイルには、電子メール・アドレスkbhogal@us.ibm.comtalbotm@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

Javaプログラムは、LDAPサーバーへのアクセスにJava Naming and Directory Interface (JNDI)を使用します。ここでは、JNDIを使 用してJavaプログラムをLDAPサーバーにアクセスさせるための基本的な知識を読者が持っていることを前提としています。ここで紹介する概念を理解するために必要な基本知識については、『Introduction to LDAP(US)』の記事で詳しく説明しています。この後で確認するように、SametimeプラグインはJNDIを使用してTivoli Directory Serverに保存されているSametimeの連絡先情報を収集します。図2は、実行中のPartner Lookupプラグインのプレビューを示しています。

図2. Lotus Sametime 7.5のPartner Lookupプラグイン
図2. Lotus Sametime 7.5のPartner Lookupプラグイン

Tivoli Directory Serverに加えて、Lotus Sametime 7.5クライアントもインストール済みであることを前提としています。この例の場合、Tivoli Directory ServerとLotus Sametime 7.5が物理的に同じマシン上にインストールされています。もちろん、実稼働環境では、クライアントとディレクトリー・サーバーは物理的に別のマシンに存在することになります。さらに、プラグインの開発では、Eclipse 3.2 SDKもインストールする必要があります。これは EclipseのWebサイトから無料で入手できます。既に述べたように、Eclipse SDKにはプラグイン環境(PDE)と統合開発環境(IDE)が組み込まれています。すぐに使用可能なLotus Sametimeクライアント製品を拡張するEclipseプラグインの作成には、これらのツールが必要となります。

EclipseのWebサイト(US) はこちら


EclipseをベースとするLotus Sametime 7.5

ここで説明するPartner LookupプラグインのようなEclipseプラグインの開発について理解するには、Eclipseに関する詳細な知識は必要ありません。ただし、Eclipse IDEの基本概念を理解しておく必要があります(詳細については、『リソース』のセクションを参照してください)。Eclipseプラグインの開発を開始する前に、Eclipseの基本用語について確認します。

Eclipseプラグインは、Eclipseプラットフォームに役立つコンポーネントです。プラグインを設定し、Eclipseプラットフォームのユーザー・インターフェース機能を高めたり、Eclipseプラットフォーム上で非ユーザー・インターフェース・ベースのサービスを使用することができます。Eclipseプラグインは、拡張ポイント・スキーマを使用して拡張ポイントを定義します。拡張ポイント・スキーマは、拡張プラグインと呼ばれるプラグインが拡張を宣言することにより、ホスト・プラグインを変更する方法を定義します。拡張ポイントはホスト・プラグインで定義されますが、拡張は拡張プラグインによって宣言されます。

例えば、拡張ポイントにより、ホスト・プラグインのメニュー項目を変更する方法を定義できます。Lotus Sametime 7.5クライアントは、com.ibm.collaboration.realtime.people.personActionというIDを持つ拡張ポイントを定義するプラグインを備えています。ここでは、この拡張ポイントの機能を拡張する拡張プラグインを作成します。具体的には、図2にグラフィックで示されるPartner Lookup機能を追加します。

プラグイン開発環境(PDE)の準備

これ以降の説明で出てくる「Eclipse」とは、「Eclipse 3.2 SDK」を意味します。Eclipseをインストールして開いてください。Eclipseプラグインを作成するには、「ウィンドウ」-「パースペクティブのオープン」-「その他」を選択して、「プラグイン開発」パースペクティブに変更します。図3に示すように、「パースペクティブの選択」ダイアログ・ボックスが表示されます。「プラグイン開発」を選択して「OK」をクリックします。

図3.「パースペクティブの選択」ダイアログ・ボックス
図3.「パースペクティブの選択」ダイアログ・ボックス

デフォルトでは、Eclipseプラットフォームを拡張するようにPDEが設定されています。ただしここでの目的は、Sametimeクライアント・アプリケーションを拡張するプラグインを作成することです。そのためには、EclipseではなくLotus Sametimeを拡張するようにPDEを設定する必要があります。これを、ターゲット・プラットフォームの変更といいます。PDEのターゲット・プラットフォームを変更するには、「ウィンドウ」-「設定」を選択します。「設定」ダイアログ・ボックスが表示されます。左側のペインで、「プラグイン開発」項目を展開します。次に、図4に示すように、「ターゲット・プラットフォーム」プリファレンスを選択します。

図4. 「ターゲット・プラットフォーム」プリファレンスの選択
図4. 「ターゲット・プラットフォーム」プリファレンスの選択

次に、「参照」ボタンを使用して、ターゲット・プラットフォームの場所をSametimeクライアント・ディレクトリーに変更します。「再ロード」ボタンをクリックします。この操作により、Sametimeプラグインが読み込まれます。Sametimeプラグインが表示されない場合は、入力したSametimeクライアント・ディレクトリーのパスが正しいかどうかを確認してください。このパスは、プラグイン・ディレクトリーを格納するフォルダーのパスでなければなりません。「適用」をクリックして「OK」をクリックします。


Partner LookupプラグインによるSametimeユーザー・インターフェースの拡張

PDEの準備ができたので、次は実際のプラグイン作成に取りかかります。Eclipseで、「ファイル」-「新規プロジェクト」を選択します。図5に示すように、表示された「新規プロジェクト」ダイアログ・ボックスで「プラグイン開発」-「プラグイン・プロジェクト」を選択し、「次へ」をクリックします。

図5. 「新規プロジェクト」ダイアログ・ボックス
図5. 「新規プロジェクト」ダイアログ・ボックス

その結果、「新規プラグイン・プロジェクト」ウィザードが表示されます。プロジェクトにcom.devWorks.example.ldaplookupという名前を付けてデフォルト設定を受け入れ、「次へ」をクリックします。「このプラグインをUIに追加」オプションの選択を解除します。このオプションを選択すると、ActivatorクラスによってAbstractUIPluginが拡張されます。このオプションの選択を解除すると、ActivatorクラスによってPluginクラスが拡張されます(ここでの目的のとおり)。

Activatorクラスは、ユーザーに代わってプラグインのライフ・サイクルを指定します。AbstractUIPluginによってPluginが拡張されます。AbstractUIPluginによっていくつかのメソッドが追加され、EclipseのGUIに直接アクセスできるようになります。ユーザー・インターフェースに直接機能を追加するわけではないため、AbstractUIPluginクラスを拡張する必要はありません。拡張ポイントを介してEclipseユーザー・インターフェースの機能を拡張します。このオプションの選択を解除してから、「終了」をクリックします。図6に示すように、「パッケージ・エクスプローラ」ペインが表示されます。

図6. パッケージ・エクスプローラ
図6. パッケージ・エクスプローラ

次に、プラグインのマニフェスト・ファイルを編集します。具体的には、マニフェスト・ファイルを編集して追加のプラグインを指定します。この追加のプラグインは、Partner LookupプラグインがLotus Sametimeクライアントのユーザー・インターフェースを拡張する際に必要となります。META-INF/MANIFEST.MFファイルをダブルクリックします。Plug-in Manifest Editorが開きます。Plug-in Manifest Editorが開かない場合は、MANIFEST.MFファイルを右クリックして「アプリケーションから開く」-「プラグインのマニフェスト・エディター」を選択します。Manifest Editorで「依存関係」タブを選択します。図7に示すように、「追加」ボタンをクリックします。

図7. 「プラグインのマニフェスト・エディター」の「依存関係」タブ
図7. 「プラグインのマニフェスト・エディター」の「依存関係」タブ

Plug-In Manifest Editorは、build.xml、plugin.xml、MANIFEST.MFのGUI形式です。「追加」ボタンをクリックすると、使用可能なプラグインの一覧を示すダイアログ・ボックスが表示されます。該当するプラグイン・リストに、com.ibm.collaboration.realtime.people、com.ibm.rcp.realtime.livenames plug-in、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クラスを作成した後、org.eclipse.uiプラグインによって表示される拡張ポイントを使用してPartnerLookupDelegateクラスとLotus Sametime UIを結合します。

PartnerLookupDelegateという名前のJavaクラス(パッケージ名はcom.devWorks.example.ldaplookup)を作成します。このクラスにより、com.ibm.rcp.realtime.livenames.LiveNameActionDelegateクラスを拡張します。

アクションに対するコードの追加

拡張ポイントのラベルで定義したメニュー名が呼び出されると、LiveNameActionDelegateクラスを拡張するオブジェクトのpublic void run(IAction arg0)メソッドが起動します。ここでは、runWithEventメソッドをコードで上書きしてLDAPサーバーに接続し、パートナーに関連付けられている連絡先情報を表示します。

ここまでに、com.devWorks.example.ldaplookup.LDAPConfigと呼ばれるクラスを定義しました。LDAPサーバーの構成情報を外部化するには、プロパティ・ファイルを使ってLDAPサーバーに接続する必要があります。実稼働環境では、設定項目である文字列はEclipseプリファレンスとして外部化する必要があります。また、ユーザーに表示される文字列は国際化する必要があります。EclipseプリファレンスとEclipseの国際化処理の詳細については、『リソース』のセクションを参照してください。ここでは説明を簡単なものにするため、Eclipseプリファレンスを使用した外部化と国際化を使用した外部化は行いません。

LDAPサーバーへの接続

Lotus Sametimeクライアントの起動時に、Partner LookupプラグインによってLDAPサーバーへの接続が確立されます。ユーザーによるSametimeセッションの間、この接続は使用されます。具体的には、Activatorクラスの開始メソッドが起動し、この開始メソッドによりActivatorクラスのinitializeLDAPメソッドが呼び出されます。

注: プラグインごとに1つのActivatorインスタンスが存在します。そのため、Partner Lookupのコンテキスト・メニューを使用するたびにLDAP接続を確立するのではなく、Activatorインスタンスの一部としてLDAP接続をキャッシュします。

次のコードでは、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クラスでは、LDAPサーバー設定情報を格納するリソース・バンドルが(ldapconfig.propertiesという名前のファイル形式で)存在することが前提となります。次のように、ldapconfig.propertiesファイルを更新して、LDAPサーバーのロケーションとプロパティーならびにサーバーへアクセスするための認証クレデンシャルを反映する必要があります。

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

実行メソッドの上書き

特定のSametimeパートナーに関連するLDAPエントリーの検索ロジックは、実行メソッドで実行されます。これについて、順を追って詳しく見ていきましょう。既に説明したように、runWithEventメソッドは、拡張ポイントのラベルで定義したメニュー名が呼び出されたときに起動します。

実行メソッドで最初に行うことは、参照対象であるSametimeパートナーの電子メール・アドレスの抽出です。 Sametimeパートナーは、com.ibm.collaboration.realtime.people.Personオブジェクトとして認識されます。getContactIdメソッドを呼び出し、そのユーザー・オブジェクトの電子メール・アドレスを取得します。この電子メール・アドレスの文字列は、LDAP検索を実行するための基準(LDAP用語の場合は検索フィルター)として使用されます。

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

次に、ActivatorクラスのinitializeLDAPメソッドで既に確立されているLDAP接続へのハンドルを取得します。これは、LDAPサーバーに接続されているjavax.naming.directory.DirContextオブジェクトにより実行されます。

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

次に、SearchControlsオブジェクトを使用し、LDAP検索の範囲と検索結果として戻される値を設定します。

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

フィルター基準は、ユーザーの電子メール・アドレスです。ここでの検索対象は、姓(sn)、説明(description)、自宅の電話番号(homephone)、共通名(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クラスが作成されました。次に、Lotus Sametime GUIからPartner LookupプラグインにアクセスするPartner Lookupメニュー項目を作成します。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クライアントに対して固有となるIDを定義します。ラベルには、ユーザーへのメニューの表示方法を記述します。ここでは、Partner Lookupというメニュー項目を作成します。


Eclipse内でのSametimeプラグインのテスト

Eclipseの「実行」メニューで「実行」を選択します。「実行」ダイアログ・ボックスの左側のペインで、「Eclipseアプリケーション」を右クリックして「New_configuration」を選択します。図8に示すように、この画面からアプリケーションを設定することができます。

図8. 「実行」ダイアログ・ボックス
図8. 「実行」ダイアログ・ボックス

図9に示すように、Eclipseの外部で実行する場合と同じようにLotus Sametimeクライアントが表示されます。

図9. EclipseでのLotus Sametime 7.5クライアント
図9. EclipseでのLotus Sametime 7.5クライアント

テストベッド用の公開Sametimeサーバー

テストを行うために、IBMの公開Lotus Sametimeサーバーmessaging.ngi.ibm.comにログインしました。公開Lotus Sametimeサーバーの詳細については、IBM Community ToolsのWebサイトを参照してください。IBMの公開Lotus Sametimeサーバーとの対話を行う場合、ユーザー名とパスワードはIBMのユーザー名とパスワードと同じになります。IBMのユーザー名およびパスワードは、IBMのWebサイトからユーザー登録することにより取得できます。ここでは、リストに少なくとも1人以上のSametimeパートナーが記載されていることを前提としています。このパートナーは、前のステップでLDAPサーバーにディレクトリー情報を追加したパートナーです(『Partner Lookupプラグインのプレビューと準備』を参照)。

ログインすると、図10に示すようにLotus Sametime 7.5が表示されます。パートナー名を右クリックします。既に説明したように、このSametimeパートナーに関して、電子メール・アドレスに基づいたディレクトリー情報がLDAPサーバーに保存されています。「Partner Lookup(パートナー検索)」コンテキスト・メニュー項目が表示されます。「Partner Lookup(パートナー検索)」コンテキスト・メニュー項目を選択します。

図10. Lotus Sametime 7.5クライアント
図10. Lotus Sametime 7.5クライアント

作成したプラグインが呼び出され、LDAPサーバーが検索されます。すべて正しく設定されていれば、次に示すようなダイアログ・ボックスが表示され(図11を参照)、LDAPサーバーに保存されているSametimeパートナーの情報が表示されます。

図11. 「LDAP lookup(LDAP検索)」ダイアログ・ボックス
図11. 「LDAP lookup(LDAP検索)」ダイアログ・ボックス

Lotus Sametimeへのデプロイ

新しいプラグインをデプロイしてLotus Sametimeクライアント・アプリケーション内で(Eclipse内ではなく)実際に使用する方法は簡単です。EclipseからプラグインのJARファイルをエクスポートします。次に、エクスポートされたプラグイン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 に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=338448
ArticleTitle=LDAPディレクトリー検索プラグインによるLotus Sametimeクライアントの拡張
publish-date=07272006