BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > BPM トピック > BPM プラグイン プログラミング ガイド > プラグインの管理 |
BPM プラグイン プログラミング ガイド
|
プラグインの管理
この章では、プラグインの管理方法について説明します。この章の内容は以下のとおりです。
プラグインの表示
インストールされているプラグインを表示するには、次の表に示す com.bea.wlpi.server.plugin.PluginManager インタフェース メソッド を使用します。
たとえば、次のコードは、指定されたロケール lc のためにインストールされているプラグインのリストを取得し、plugins[] 配列にこのリストを保存します。この例では、pm は PluginManager EJB への EJBObject 参照を表します。 getPlugin() メソッドおよび getPlugins() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManager Javadoc を参照してください。
plugins[]=pm.getPlugins(lc);
プラグインのロード
インストールされているプラグインをロードするには、次の表に示す com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。
たとえば、次のコードは、指定された Plug-in Manager バージョン version のためのプラグイン MyPlugin をロードします。この例では、pmCfg は PluginManager EJB への EJBObject 参照を表します。 loadPlugin() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。
pmCfg.getPlugins(MyPlugin, version);
プラグインのコンフィグレーション
デフォルトでは、プラグインをコンフィグレーションするときに、プラグイン起動モードを指定できます。
たとえば、次の図は、WebLogic Intergration Studio でのデフォルトのプラグイン コンフィグレーション ダイアログを示しています。
図7-1 Studio でのデフォルトのプラグイン コンフィグレーション ダイアログ
Automatic −システム起動時に自動的に起動される。これはデフォルト設定です。
Manual −ユーザが手動で起動する必要がある。
Disabled −使用禁止であり、起動できない。
プラグイン コンフィグレーション ダイアログへのアクセス方法については、『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 インタフェース メソッドを使用します。
たとえば、次のコードは、pconfig.xml ファイルを使用して、MyPlugin プラグイン、指定された Plug-in Manager バージョン version、および MODE_AUTOMATIC 起動モードに関するプラグイン コンフィグレーション情報を設定します。この例では、pmCfg は PluginManagerCfg EJB への EJBObject 参照を表します。 setPluginConfiguration() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。 プラグイン コンフィグレーション値の取得 プラグイン コンフィグレーション値を取得するには、次の表に示す com.bea.wlpi.server.plugin.PluginManager インタフェース メソッドを使用します。
pmCfg.setPluginConfiguration(MyPlugin, version, MODE_AUTOMATIC,
pconfig.xml);
たとえば、次のコードは、MyPlugin と、指定された Plug-in Manager バージョン version に関するプラグイン コンフィグレーション情報を取得します。この例では、pm は PluginManager EJB への EJBObject 参照を表します。. getPluginConfiguration() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManager Javadoc を参照してください。 プラグイン コンフィグレーション値の削除 プラグインのコンフィグレーションは、不要になった時点で削除できます。コンフィグレーションを削除する場合、プラグイン自体ではなく、登録されているコンフィグレーションのみを削除します。 プラグイン コンフィグレーション値を削除するには、次の表に示す com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。
configData=pm.setPluginConfiguration(MyPlugin, version);
たとえば、次のコードは、MyPlugin と、指定された Plug-in Manager バージョン version に関するプラグイン コンフィグレーション値を削除します。この例では、pmCfg は PluginManagerCfg EJB への EJBObject 参照を表します。 deletePluginConfiguration() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。
pmCfg.deletePluginConfiguration(MyPlugin, version);
プラグインのリストの更新
プラグインのリストを更新するには、次の表に示す com.bea.wlpi.server.plugin.PluginManagerCfg インタフェース メソッドを使用します。
たとえば、次のコードは、ロードされているすべてのプラグインを更新します。この例では、pmCfg は PluginManager EJB への EJBObject 参照を表します。 refresh() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManagerCfg Javadoc を参照してください。
pmCfg.refresh();
Studio によるプラグインの管理
Studio 設計クライアント インタフェース内から、プラグインの表示、ロード、コンフィグレーションを行えます。詳細については、『WebLogic Integration Studio ユーザーズ ガイド』の「ワークフロー リソースのコンフィグレーション」を参照してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |