BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

BPM プラグイン プログラミング ガイド

 前 次 目次 索引 PDFで表示  

プラグインの管理

この章では、プラグインの管理方法について説明します。この章の内容は以下のとおりです。

 


プラグインの表示

インストールされているプラグインを表示するには、次の表に示す com.bea.wlpi.server.plugin.PluginManager インタフェース メソッド を使用します。

表7-1 インストールされているプラグインを表示するための PluginManager インタフェース メソッド

メソッド

説明

public com.bea.wlpi.common.plugin.PluginInfo getPlugin(java.lang.String pluginName, java.util.Locale lc) throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

指定されたプラグインに関するローカライズされた基本情報を取得する。

メソッド パラメータの定義は次のとおり。

このメソッドは、基本プラグイン情報を示す com.bea.wlpi.common.plugin.PluginInfo オブジェクトを返す。詳細については、PluginInfo オブジェクトを参照。

public com.bea.wlpi.common.plugin.PluginInfo[] getPlugins(java.util.Locale lc) throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

指定されたロケールのためにインストールされているプラグインのリストを取得する。

メソッド パラメータの定義は次のとおり。

lc −表示文字列をローカライズするロケールを示す
java.util.Locale オブジェクト。

このメソッドは、インストールされているプラグインを示すcom.bea.wlpi.common.plugin.PluginInfo オブジェクトの配列を返す。詳細については、PluginInfo オブジェクトを参照。


 

たとえば、次のコードは、指定されたロケール lc のためにインストールされているプラグインのリストを取得し、plugins[] 配列にこのリストを保存します。この例では、pmPluginManager EJB への EJBObject 参照を表します。

plugins[]=pm.getPlugins(lc);

getPlugin() メソッドおよび getPlugins() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManager Javadoc を参照してください。

 


プラグインのロード

インストールされているプラグインをロードするには、次の表に示す com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。

表7-2 インストールされているプラグインをロードするための PluginManager インタフェース メソッド

メソッド

説明

public void loadPlugin(java.lang.String pluginName, com.bea.wlpi.commonVersionInfo version) throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

指定されたプラグインをロードし、初期化する。

Plug-in Manager は、そのプラグインの機能をすでにロードされているプラグインの機能と結合する。

メソッド パラメータの定義は次のとおり。


 

たとえば、次のコードは、指定された Plug-in Manager バージョン version のためのプラグイン MyPlugin をロードします。この例では、pmCfgPluginManager EJB への EJBObject 参照を表します。

pmCfg.getPlugins(MyPlugin, version);

loadPlugin() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。

 


プラグインのコンフィグレーション

デフォルトでは、プラグインをコンフィグレーションするときに、プラグイン起動モードを指定できます。

たとえば、次の図は、WebLogic Intergration Studio でのデフォルトのプラグイン コンフィグレーション ダイアログを示しています。

図7-1 Studio でのデフォルトのプラグイン コンフィグレーション ダイアログ


 

起動モードは次のいずれかの値に設定できます。

プラグイン コンフィグレーション ダイアログへのアクセス方法については、『WebLogic Integration Studio ユーザーズ ガイド』の「ワークフロー リソースのコンフィグレーション」の「プラグインのコンフィグレーション」を参照してください。

必要な場合、プラグイン コンフィグレーション要件をカスタマイズできます。カスタマイズされたプラグイン コンフィグレーション要件は、前の図に示したテキスト「プラグインで定義されたデータが使用できません」の箇所に表示されます。

次の節では、プラグイン コンフィグレーション要件をカスタマイズする方法、およびプラグイン API を使用してコンフィグレーション値を編集する方法を説明します。この節の内容は以下のとおりです。

プラグイン コンフィグレーション要件のカスタマイズ

次の節では、プラグイン コンフィグレーション要件をカスタマイズするために必要な手順について説明します。この節の内容は以下のとおりです。

PluginData インタフェースの実装

XML フォーマットでプラグイン データを読み込み(解析し)、保存するには、PluginData インタフェースの実装に説明されているように、プラグイン データ インタフェースを実装します。

次のコード リストは、プラグイン コンフィグレーションのための PluginData インタフェースを実装するクラスを定義する方法を示しています。重要なコード行は、太字で示します。

注意: このクラスは、プラグイン サンプルには含まれていません。

コード リスト 7-1 PluginData インタフェースの実装−プラグイン コンフィグレーション

package com.bea.wlpi.test.plugin;

import java.io.IOException;
import com.bea.wlpi.common.plugin.PluginData;
import com.bea.wlpi.common.XMLWriter;
import java.util.List;
import java.util.Map;
import org.xml.sax.*;

public class ConfigData implements PluginData {
private static final String YESORNO_TAG = "yesorno";

private String yesOrNo;
private transient String lastValue;

public ConfigData() {
this.yesOrNo = TestPluginConstants.CONFIG_NO;
}

public ConfigData(String yesOrNo) {
this.yesOrNo = yesOrNo;
}

public void load(XMLReader parser) {
}

void setYesOrNo(String decision) {
yesOrNo = decision;
}

String getYesOrNo() {
return yesOrNo;
}

public void setDocumentLocator(Locator locator) {
}

public void startDocument()
throws SAXException {
}

public void endDocument()
throws SAXException {
}

public void startPrefixMapping(String prefix, String uri)
throws SAXException {
}

public void endPrefixMapping(String prefix)
throws SAXException {
}

public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
throws SAXException {
lastValue = null;
}

public void endElement(String namespaceURI, String localName, String name)
throws SAXException {
if (name.equals(YESORNO_TAG))
yesOrNo = lastValue;
}

public void characters(char[] ch, int start, int length)
        throws SAXException { 
String value = new String(ch, start, length);

if (lastValue == null)
lastValue = value;
else
lastValue = lastValue + value;
}

public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
}

public void processingInstruction(String target, String data)
throws SAXException {
}

public void skippedEntity(String name)
throws SAXException {
}

public void save(XMLWriter writer, int indent) throws IOException {
writer.saveElement(indent, YESORNO_TAG, yesOrNo);
}

// TODO:
public List getReferencedPublishables(Map publishables) {
return null;
}

public String getPrintableData() {
return toString();
}

public String toString() {
return "ConfigData[yesOrNo=" + yesOrNo + ']';
}

public Object clone() {
return new ConfigData(yesOrNo);
}
}

PluginPanel クラスの定義

設計クライアント内でプラグイン GUI コンポーネントを表示するには、PluginPanel クラスの定義に説明されているように、プラグイン パネル クラスを拡張するクラスを定義します。

次のコード リストは、プラグイン コンフィグレーションのために PluginPanel クラスを拡張するクラスを定義する方法を示しています。重要なコード行は、太字で示します。

注意: このクラスは、プラグイン サンプルには含まれていません。

コード リスト 7-2 PluginPanel クラスの定義−プラグイン コンフィグレーション

package com.bea.wlpi.test.plugin;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.border.EtchedBorder;
import java.util.List;
import java.util.Locale;
import com.bea.wlpi.common.plugin.PluginPanel;
import com.bea.wlpi.common.plugin.PluginPanelContext;
import com.bea.wlpi.client.studio.Studio;
import com.bea.wlpi.common.VariableInfo;

public class ConfigPanel extends PluginPanel {

JPanel ButtonPanel = new JPanel();
ButtonGroup YesNoButtonGroup = new ButtonGroup();
JRadioButton YesButton = new JRadioButton();
JRadioButton NoButton = new JRadioButton();
TitledBorder titledBorder = new TitledBorder(new EtchedBorder());

public ConfigPanel() {
super(Locale.getDefault(), "halloween");
// super(Locale.getDefault(), "pgconfig");
//TODO: 文字列のためのリソース バンドルを作成
setLayout(null);
setBounds(12,12,420,300);
ButtonPanel.setBorder(titledBorder);
ButtonPanel.setLayout(null);
add(ButtonPanel);
ButtonPanel.setBounds(72,60,300,144);
YesButton.setText("JavaHelp");
YesButton.setSelected(true);
YesNoButtonGroup.add(YesButton);
ButtonPanel.add(YesButton);
YesButton.setBounds(60,36,100,23);
NoButton.setText("HTML Help");
YesNoButtonGroup.add(NoButton);
ButtonPanel.add(NoButton);
NoButton.setBounds(60,60,100,23);
titledBorder.setTitle("Online Help");
}

public void load() {
ConfigData myData = (ConfigData)getData();
if (myData != null) {
if (myData.getYesOrNo().equals(TestPluginConstants.CONFIG_NO)) {
NoButton.setSelected(true);
} else {
YesButton.setSelected(true);
}
}
}

public boolean validateAndSave() {
ConfigData myData = (ConfigData)getData();
if (myData != null) {
myData.setYesOrNo(YesButton.isSelected()
? TestPluginConstants.CONFIG_YES
: TestPluginConstants.CONFIG_NO);
}
return true;
}
}

ConfigurationInfo 値オブジェクトの定義

プラグイン コンポーネント データをさらに詳細に定義するには、プラグイン コンフィグレーションのための com.bea.wlpi.common.plugin.ConfigurationInfo 値オブジェクトを定義します。この場合、基本プラグイン情報を定義するときに、config パラメータを使用して、com.bea.wlpi.common.plugin.PluginInfo 値オブジェクトに ConfigurationInfo オブジェクトを渡すことができます。

PluginInfo 値オブジェクトの定義時に config パラメータを null に設定した場合、プラグイン固有のコンフィグレーションは定義されません。この場合、Studio でのデフォルトのプラグイン コンフィグレーション ダイアログの図に示した Studio のプラグイン コンフィグレーション ダイアログが表示されます。PluginInfo 値オブジェクトの定義方法については、PluginInfo オブジェクトを参照してください。

たとえば、次のコード リストは、ConfigurationInfo 値オブジェクトを定義する方法を示しています。

ci = new ConfigurationInfo(TestPluginConstants.PLUGIN_NAME, 12,
"test plugin configuration",
TestPluginConstants.CONFIG_CLASSES);

CONFIG_CLASSES フィールド要素値は、TestPluginConstants.java クラス ファイル内で定義されており、次のようにクラスを定義します。

final static String CONFIG_DATA = 
"com.bea.wlpi.test.plugin.ConfigData";
final static String CONFIG_PANEL = 
"com.bea.wlpi.test.plugin.ConfigPanel";
final static String[] CONFIG_CLASSES = {
CONFIG_DATA, CONFIG_PANEL
};

ConfigurationInfo の詳細については、ConfigurationInfo オブジェクトを参照してください。

プラグイン コンフィグレーション値の設定

プラグイン コンフィグレーション値を設定するには、次の表に定義された com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。

表7-3 コンフィグレーション値を設定するための PluginManagerCfg インタフェース メソッド

メソッド

説明

public void setPluginConfiguration(java.lang.String pluginName, com.bea.wlpi.common.VersionInfo version, int startMode, java.lang.String config) throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

プラグイン コンフィグレーション情報を設定する。

メソッド パラメータの定義は次のとおり。


 

たとえば、次のコードは、pconfig.xml ファイルを使用して、MyPlugin プラグイン、指定された Plug-in Manager バージョン version、および MODE_AUTOMATIC 起動モードに関するプラグイン コンフィグレーション情報を設定します。この例では、pmCfgPluginManagerCfg EJB への EJBObject 参照を表します。

pmCfg.setPluginConfiguration(MyPlugin, version, MODE_AUTOMATIC,
pconfig.xml);

setPluginConfiguration() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。

プラグイン コンフィグレーション値の取得

プラグイン コンフィグレーション値を取得するには、次の表に示す com.bea.wlpi.server.plugin.PluginManager インタフェース メソッドを使用します。

表7-4 コンフィグレーション値を取得するための PluginManager インタフェース メソッド

メソッド

説明

public com.bea.wlpi.common.plugin.ConfigurationData getPluginConfiguration(java.lang.String pluginName, com.bea.wlpi.common.VersionInfo version) throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

プラグイン コンフィグレーション情報を取得する。

メソッド パラメータの定義は次のとおり。

このメソッドは、コンフィグレーション情報を示す com.bea.wlpi.common.plugin.ConfigurationData オブジェクトを返す。特定のコンフィグレーション情報にアクセスするために使用できるメソッドの詳細については、ConfigurationData オブジェクトを参照。


 

たとえば、次のコードは、MyPlugin と、指定された Plug-in Manager バージョン version に関するプラグイン コンフィグレーション情報を取得します。この例では、pmPluginManager EJB への EJBObject 参照を表します。.

configData=pm.setPluginConfiguration(MyPlugin, version);

getPluginConfiguration() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManager Javadoc を参照してください。

プラグイン コンフィグレーション値の削除

プラグインのコンフィグレーションは、不要になった時点で削除できます。コンフィグレーションを削除する場合、プラグイン自体ではなく、登録されているコンフィグレーションのみを削除します。

プラグイン コンフィグレーション値を削除するには、次の表に示す com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。

表7-5 コンフィグレーション値を削除するための PluginManagerCfg インタフェース メソッド

メソッド

説明

public void deletePluginConfiguration( java.lang.String pluginName, com.bea.wlpi.common.VersionInfo version) throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

プラグイン コンフィグレーション情報を削除する。

メソッド パラメータの定義は次のとおり。


 

たとえば、次のコードは、MyPlugin と、指定された Plug-in Manager バージョン version に関するプラグイン コンフィグレーション値を削除します。この例では、pmCfgPluginManagerCfg EJB への EJBObject 参照を表します。

pmCfg.deletePluginConfiguration(MyPlugin, version);

deletePluginConfiguration() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。

 


プラグインのリストの更新

プラグインのリストを更新するには、次の表に示す com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。

表7-6 プラグインのリストを更新するための PluginManagerCfg インタフェース メソッド

メソッド

説明

public void refresh() throws java.rmi.RemoteException, com.bea.wlpi.common.WorkflowException

キャッシュ内のプラグイン情報を更新する。

注意: このメソッドを実行するには大量のリソースが必要なため、その使用を制限する必要があります。

このメソッドは、ロードされているすべてのプラグインを Plug-in Manager に再照会し、その内部プラグイン機能キャッシュを再構築する。プラグイン機能が動的にコンフィグレーションされている場合、プラグインはこのメソッドを呼び出すことができる。


 

たとえば、次のコードは、ロードされているすべてのプラグインを更新します。この例では、pmCfgPluginManager EJB への EJBObject 参照を表します。

pmCfg.refresh();

refresh() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。

 


Studio によるプラグインの管理

Studio 設計クライアント インタフェース内から、プラグインの表示、ロード、コンフィグレーションを行えます。詳細については、『WebLogic Integration Studio ユーザーズ ガイド』の「ワークフロー リソースのコンフィグレーション」を参照してください。

 

ページの先頭 前 次