Mathematica BSFスクリプトエンジン
Apache Antとの統合
GUIKit`のフレームワークに含まれて出荷されたBSFをサポートするサードパーティの製品であるWolfram言語BSFエンジンを使うことができる.
名付け規約に関連して気を付けなければならない点だが,BSFはBeanコンセプトを使うので,レジストリで検索されるオブジェクトはBean["id"]関数しかサポートせず,GUIKit`のWidgetReference["id"]表記はサポートしない.また,BSFは<script>タグ内のデフォルトのスクリプト言語であるlanguage="mathematica"は作らないので,<script language="mathematica">を明示的に使わなければならない点も注意が必要である.
Wolfram言語をスクリプト言語としてサポートするためにApache Ant製品内の/lib/ディレクトリを更新する必要がある.GUIKit` AddOnのJava/ディレクトリと J/Link の製品から次の4つのリソースをコピーする.
注:BSFのバージョンによっては,Antあるいはサードパーティツールが必要になることがある.実際,bsf-ibm.jarとbsf-ibm-Wolfram.jarのバージョンをJava-Alternatives/BSF/lib/ディレクトリから持ってこなければならないかもしれない.Apache Antバージョン1.6.x以降からはbsf.jarとbsf-Wolfram.jarの新しいバージョンが(これらはApache BSFクラスに基づいているので)必要である.一方Apache Antバージョン1.5.x以前では,旧バージョンのbsf-ibm-* jarsが必要である.
上記のファイルをAnt製品のパスに置くと,<script language="mathematica">Antタスクが使えるようになる.Ant特性とオブジェクトの多くがBean["id"]インスタンスとしてWolfram言語内からアクセスできるようになり,Ant <property>インスタンスを使ってMathematicaBSFEngineの設定も指定できるようになる.最も便利な点は,デフォルトで使われているものの代りに,カーネルの起動にWolfram Symbolic Transfer Protocol (WSTP)コマンドラインが指定できる点だろう.
次は,Wolfram言語カーネルの起動を指定するオプショナルな設定である.
<property
name="bsf_engine_Mathematica_KernelLinkCommandLine"
value="-linkmode launch -linkname 'C:\\Program Files\\Wolfram Research\\Mathematica\\5.0\\MathKernel.exe'" />
<project name="helloWorld" default="main" basedir=".">
<target name="setup">
<script language="mathematica"><![CDATA[
echo = Bean["helloWorld"] @ createTask["echo"];
Bean["main"] @ addTask[echo];
echo @ setMessage["Hello World! From Mathematica :" <>
ToString[$Version] <> " " <> ToString[10!]];
]]></script>
</target>
<target name="main" depends="setup"/>
</project>