概要

プロダクトファイルとは、個々のプロダクト(ソフトウェア)を
インストール、アンインストール、アップデートするための定義のことです。
また、インストール全体の前処理、後処理の定義ファイルも記述内容はプロダクト定義ファイルと同じです。

定義ファイル全体像

<?xml version="1.0" encoding="Shift_JIS"?>
<product os="windows">
	<name>Apache</name>
	<ver>2.2.6</ver>
	<required>false</required>
	<localDir>products\apache\httpd-${product.ver}</localDir>
	<description>Webサーバーです。</description>
	<properties>
		<productBaseUrl>http://archive.apache.org/dist/httpd/binaries/win32</productBaseUrl>
		<openStandiaBaseUrl>http://openstandia.sourceforge.jp/download/stack</openStandiaBaseUrl>
		<dir>apache</dir>
		<mainFileName>apache_${product.ver}-win32-x86-no_ssl.msi</mainFileName>
		<confDefault>httpd-default.conf</confDefault>
		<confOpenStandia>httpd-openstandia.conf</confOpenStandia>
		<installDir>${define.windows.apache.installDir}</installDir>
			:
	</properties>
	<config>
		<pattern sub="1">標準設定</pattern>
		<pattern sub="2">OpenStandia推奨設定</pattern>
	</config>
	<files>
		<file url="${product.properties.productBaseUrl}/${product.properties.mainFileName}">${product.properties.mainFileName}</file>
		<file url="${product.properties.openStandiaBaseUrl}/${product.properties.dir}/conf/win/httpd-default-2.2.conf">conf/win/${product.properties.confDefault}</file>
		<file url="${product.properties.openStandiaBaseUrl}/${product.properties.dir}/conf/win/httpd-openstandia-2.2.conf">conf/win/${product.properties.confOpenStandia}</file>
		<file url="${product.properties.openStandiaBaseUrl}/${product.properties.dir}/sh/install/apache-install.bat">sh/install/apache-install.bat</file>
		<file url="${product.properties.openStandiaBaseUrl}/${product.properties.dir}/sh/install/apache-after.bat">sh/install/apache-after.bat</file>
		<file url="${product.properties.openStandiaBaseUrl}/${product.properties.dir}/sh/uninstall/apache-uninstall.bat">sh/uninstall/apache-uninstall.bat</file>
		<file url="${product.properties.openStandiaBaseUrl}/${product.properties.dir}/sh/update/apache-update.bat">sh/update/apache-update.bat</file>
	</files>
	<execs>
		<install>
			<exec cmd="cmd.exe">
				<args>
					<arg>/c</arg>
					<arg>sh\install\apache-install.bat</arg>
					<arg>"${define.windows.openStandia.tmp}\${product.localDir}"</arg>
					<arg>"${product.properties.mainFileName}"</arg>
					<arg>"${product.properties.installDir}"</arg>
					<arg>"${product.properties.serviceName}"</arg>
				</args>
			</exec>
			<exec cmd="cmd.exe">
				<args>
					<arg>/c</arg>
					<arg>sh\install\apache-after.bat</arg>
					<arg>${sub}</arg>
					<arg>"${define.windows.openStandia.tmp}\${product.localDir}\conf\win"</arg>
					<arg>"${product.properties.installDir}"</arg>
					<arg>${product.properties.confDefault}</arg>
					<arg>${product.properties.confOpenStandia}</arg>
				</args>
			</exec>
				:
		</install>
		<uninstall>
			<exec cmd="cmd.exe">
				<args>
					<arg>/c</arg>
					<arg>sh\uninstall\apache-uninstall.bat</arg>
					<arg>"${define.windows.openStandia.tmp}\${product.localDir}"</arg>
					<arg>"${product.properties.mainFileName}"</arg>
					<arg>"${product.properties.installDir}"</arg>
					<arg>"${product.properties.serviceName}"</arg>
				</args>
			</exec>
		</uninstall>
		<update>
			<exec cmd="cmd.exe">
				<args>
					<arg>/c</arg>
					<arg>sh\update\apache-update.bat</arg>
					<arg>${product.name}</arg>
					<arg>${product.ver}</arg>
					<arg>"${product.properties.installDir}"</arg>
				</args>
			</exec>
		</update>
	</execs>
</product>

各要素の説明

product

説明
プロダクトを定義します。
属性
os
このプロダクトの動作するOSを指定します。(「windows」 / 「linux」)
ネストできる要素
name、ver、seq、required、localDir、description、properties、config、files、execs

Apacheをプロダクトとして定義するとします。
<product os="windows">
  <name>Apache</name>
  <ver>2.2.6</ver>
  <required>false</required>
  <localDir>products\apache\httpd-${product.ver}</localDir>
  <description>Webサーバーです。</description>
  <properties/>
  <files>
    <file url="http://archive.apache.org/dist/httpd/binaries/win32/apache_2.2.6-win32-x86-no_ssl.msi">apache_2.2.6-win32-x86-no_ssl.msi</file>
    <file url="http://openstandia.sourceforge.jp/download/stack/sh/install/apache-install.bat">sh/install/apache-install.bat</file>
  </files>
  <execs>
    <install>
      <exec cmd="cmd.exe">
        <args>
          <arg>/c</arg>
          <arg>sh\install\apache-install.bat</arg>
        </args>
      </exec>
    </install>
    <uninstall/>
    <update/>
  </execs>
</product>

name

説明
名称を定義します。
属性
なし
ネストできる要素
なし

名称を「Apache」とします。
<name>Apache</name>

ver

説明
バージョンを定義します。
属性
なし
ネストできる要素
なし

バージョンを「2.2.6」とします。
<ver>2.2.6</ver>

seq

説明
シーケンス番号を定義します。 (任意)
属性
なし
ネストできる要素
なし

シーケンス番号を「01」とします。
<seq>01</seq>

required

説明
このプロダクトがインストール必須かどうかを定義します。
true ・・・ 必須
false ・・・ 任意
※ 3.0.0.0betaでは未実装です。
属性
なし
ネストできる要素
なし

インストール必須項目とします。
<required>true</required>

localDir

説明
このプロダクトがインストール、アンインストール、アップデートの各処理において
必要とするファイルが格納されているディレクトリを指定します。
属性
なし
ネストできる要素
なし

ディレクトリが「products\apache」とします。
<localDir>products\apache</localDir>

description

説明
説明を定義します。
属性
なし
ネストできる要素
なし

説明を「Webサーバーです。」とします。
<description>Webサーバーです。</description>

properties

説明
プロパティの集まりを定義します。
属性
なし
ネストできる要素
自由

OpenStandiaスタック定義が使用する各種ファイルが保存されているURLの
プロパティ名を「openStandiaBaseUrl」、
またその値として「http://openstandia.sourceforge.jp/download/stack」を定義するとします。
<properties>
  <openStandiaBaseUrl>http://openstandia.sourceforge.jp/download/stack</openStandiaBaseUrl>
</properties>

config

説明
このプロダクトのインストール処理において設定ファイル等を選択させる必要がある場合に定義します。
属性
なし
ネストできる要素
pattern

選択できる設定ファイルが複数あるとします。
<config>
  <pattern sub="1">標準設定</pattern>
  <pattern sub="2">OpenStandia推奨設定</pattern>
</config>

files

説明
このプロダクトのインストール、アンインストール、アップデート処理に使用する
ファイル群を定義します。
属性
なし
ネストできる要素
file

プロダクトのインストール、アンインストール、アップデート処理に使用するファイルが複数あるとします。
<files>
  <file url="http://archive.apache.org/・・・/apache_2.2.6-win32-x86-no_ssl.msi">apache_2.2.6-win32-x86-no_ssl.msi</file>
  <file url="http://openstandia.sourceforge.jp/・・・/apache-install.bat">sh/install/apache-install.bat</file>
</files>

execs

説明
このプロダクトのインストール、アンインストール、アップデート処理に使用する実行ファイル群を定義します。
属性
なし
ネストできる要素
install、uninstall、update

インストール処理が
「sh\install\apache-before.bat」 → 「sh\install\apache-install.bat」 → 「sh\install\apache-after.bat」
の順番で処理するとします。
<execs>
  <install>
    <exec cmd="cmd.exe">
      <args>
        <arg>/c</arg>
        <arg>sh\install\apache-before.bat</arg>
      </args>
    </exec>
    <exec cmd="cmd.exe">
      <args>
        <arg>/c</arg>
        <arg>sh\install\apache-install.bat</arg>
      </args>
    </exec>
    <exec cmd="cmd.exe">
      <args>
        <arg>/c</arg>
        <arg>sh\install\apache-after.bat</arg>
      </args>
    </exec>
  </install>
  <uninstall/>
  <update/>
</execs>

pattern

説明
設定ファイル等を選択させるためのパターン定義をします。
属性
sub
設定ファイル番号を指定します。
※ 一意である必要があります。
ネストできる要素
なし

設定ファイル番号を「1」とし、その説明が「標準設定」とします。
<pattern sub="1">標準設定</pattern>

file

説明
このプロダクトのインストール、アンインストール、アップデート処理に使用する
ファイルを定義します。
以下の順番で指定されたファイルを取得します。
    1. 以前にインストーラーを実行したことがありキャッシュファイルが存在する場合は、このキャッシュファイルより取得
    2. localDirで指定されたディレクトリにファイルが存在する場合は、このファイルを取得
    3. 上記いずれよりも取得できなかった場合は、指定されたURLより取得
属性
url
該当ファイルがキャッシュ、指定されたディレクトリに存在しなかった場合に、ダウンロードを試みるURLです。
doCopyInboot (任意) ※ OpenStandia/Intaller Ver.1.0.4より
OpenStandia/Installer起動時に前もってテンポラリー領域にコピーするかしないかです。
true : コピーする
false : コピーしない(規定値)
※ check要素で使用するバッチファイルやシェルファイル等に使用します。
ネストできる要素
なし

プロダクトが使用するファイルがapache_2.2.6-win32-x86-no_ssl.msi」であり、
ファイルが存在しなかった場合にダウンロードを試みるURLが
「http://archive.apache.org/・・・/apache_2.2.6-win32-x86-no_ssl.msi」だとします。
<file url="http://archive.apache.org/・・・/apache_2.2.6-win32-x86-no_ssl.msi">apache_2.2.6-win32-x86-no_ssl.msi</file>

install

説明
このプロダクトのインストール処理に使用する実行ファイル群を定義します。
また、ネストされるexec要素は、上から順番に実行されます。
属性
なし
ネストできる要素
exec

インストール処理が
「sh\install\apache-before.bat」 → 「sh\install\apache-install.bat」 → 「sh\install\apache-after.bat」
の順番で処理するとします。
<install>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\install\apache-before.bat</arg>
    </args>
  </exec>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\install\apache-install.bat</arg>
    </args>
  </exec>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\install\apache-after.bat</arg>
    </args>
  </exec>
</install>

uninstall

説明
このプロダクトのアンインストール処理に使用する実行ファイル群を定義します。
また、ネストされるexec要素は、上から順番に実行されます。
属性
なし
ネストできる要素
exec

アンインストール処理が
「sh\uninstall\apache-before.bat」 → 「sh\uninstall\apache-uninstall.bat」 → 「sh\uninstall\apache-after.bat」
の順番で処理するとします。
<uninstall>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\uninstall\apache-before.bat</arg>
    </args>
  </exec>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\uninstall\apache-uninstall.bat</arg>
    </args>
  </exec>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\uninstall\apache-after.bat</arg>
    </args>
  </exec>
</uninstall>

update

説明
このプロダクトのアップデート処理に使用する実行ファイル群を定義します。
また、ネストされるexec要素は、上から順番に実行されます。
属性
なし
ネストできる要素
exec

アップデート処理が
「sh\update\apache-before.bat」 → 「sh\update\apache-update.bat」 → 「sh\update\apache-after.bat」
の順番で処理するとします。
<update>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\update\apache-before.bat</arg>
    </args>
  </exec>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\update\apache-update.bat</arg>
    </args>
  </exec>
  <exec cmd="cmd.exe">
    <args>
      <arg>/c</arg>
      <arg>sh\update\apache-after.bat</arg>
    </args>
  </exec>
</update>

check

説明
各処理(インストール、アンインストール、アップデート)を実行するかどうかを判断するコマンドを定義します。
定義されたこのコマンドの返り値が0の場合は、各処理を実行
返り値が0以外の場合は、各処理をスキップします。
属性
cmd 実行するコマンドを指定します。
ネストできる要素
args

「sh\check\check.bat」を実行するとします。
<check cmd="cmd.exe">
  <args>
    <arg>/c</arg>
    <arg>sh\check\check.bat</arg>
    <arg>${sub}</arg>
  </args>
</check>

exec

説明
実行するコマンドを定義します。
※ ${sub}で選択した設定ファイル番号(pattern要素のsub属性)の値を取得することができます。
これを実行するバッチファイルや、シェルファイルに渡すことで処理分岐することができるようになります。
属性
cmd 実行するコマンドを指定します。
failOnError (任意) ※ OpenStandia/Intaller Ver.1.0.4より
コマンド実行時エラーが発生した場合、処理を中断するかしないかです。
true : 中断する(規定値)
false : 中断しない
ネストできる要素
args

「sh\install\apache-install.bat」の引数に設定ファイル番号(pattern要素のsub属性)の値を
渡して実行するとします。
<exec cmd="cmd.exe">
  <args>
    <arg>/c</arg>
    <arg>sh\install\apache-install.bat</arg>
    <arg>${sub}</arg>
  </args>
</exec>

args

説明
実行時に渡す引数群を設定します。
属性
なし
ネストできる要素
arg

第一引数に「Apache」、第二引数に「JBoss」を指定するとします。
<args>
  <arg>Apache</arg>
  <arg>JBoss</arg>
</args>

arg

説明
実行時に渡す引数を設定します。
属性
なし
ネストできる要素
なし

引数に「Apache」を指定するとします。
<arg>Apache</arg>