Red Hat Training

A Red Hat training course is available for Red Hat JBoss Operations Network

6.3. 新規モジュールソースタイプの作成

JBoss ON は、ローカルディレクトリーとリモートリポジトリーの両方を含む、さまざまな場所から CommonJS スクリプトモジュールをロードできます。
URL などの異なるソースからモジュールを読み込むサポートを作成できます。新しいモジュールソースの場所を作成するには、以下の 3 つの項目が必要です。
  • 新規の作成 ScriptSourceProvider インターフェース。
  • クラスの JAR の META-INF/services ディレクトリーに Java サービスエントリーを追加します。
  • 新しい JAR をクライアントおよび JBoss ON サーバーで使用できるように lib/ CLI インストールディレクトリーのディレクトリーに serverRoot/jon-server-3.3/modules/org/rhq/server-startup/main/deployments/rhq.ear/lib 配置し、サーバー側のスクリプト(alert スクリプト)で使用できるようにします。

例6.1 HTTP モジュールソースの場所

このスクリプトソースプロバイダーは、Java バージョンが HTTP または HTTPS プロトコルに対応している限り、指定の URI からスクリプトモジュールをダウンロードします。
  public class URLScriptSourceProvider implements ScriptSourceProvider {
  public Reader getScriptSource(URI scriptUri) {
  if (scriptUri == null) {
  return null;
  }
  try {
  return new InputStreamReader(scriptUri.toURL().openStream())
  } 
  catch (MalformedURLException e) {
  return null;
  } 
  catch (IOException e) {
  return null;
  }
  }
}
スクリプトプロバイダー JAR の META-INF ディレクトリーに services ディレクトリーを作成します。
次に、META-INF/services/ ディレクトリー内に、というファイルを作成します。 org.rhq.scripting.ScriptSourceProvider.JAR に実装されたソースプロバイダーの完全なクラス名(行ごとに 1 つ)を追加します。たとえば、 URLScriptSourceProvider 唯一のソースプロバイダーです。
com.example.URLScriptSourceProvider
これは JAR のレイアウトです。
* com
* example 
* URLScriptSourceProvider.class
* META-INF 
* services 
* org.rhq.scripting.ScriptSourceProvider
この JAR は、lib CLI インストールディレクトリーに ba を追加する必要があります。その後、スクリプトは、そのシステムの JBoss ON CLI で実行され、HTTP プロバイダーを使用してネットワークからファイルをダウンロードできます。
var myModule = require("http://server.example.com/rhq-scripts/stuff_js");
同じソースプロバイダーをアラートスクリプトで使用できるようにするには、JAR を JBoss ON サーバーの modules/org/rhq/server-startup/main/deployments/rhq.ear/lib/ ディレクトリーに追加する必要があります。