<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<!--
/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License. 
 *  
 */
-->

<installation version="1.0">
  <info>
    <appname>${app}</appname>
    <appversion>${app.version}</appversion>
    <appsubpath>${app}-${app.version}</appsubpath>
    <authors>
      <author name="${app.author}" email="${app.email}" />
    </authors>
    <url>${app.url}</url>
    <javaversion>${app.java.version}</javaversion>
  </info>

  <guiprefs height="480" resizable="yes" width="640">
    <laf name="metouia">
      <os family="unix" />
    </laf>
  </guiprefs>

  <locale>
    <langpack iso3="eng" />
  </locale>

  <resources>
    <res id="installer.langsel.img" src="${app.icon}" />
    <res id="Installer.image" src="${app.icon}" />
    <res id="Installer.image.0" src="${app.icon}" />
    <res id="Installer.image.1" src="${app.icon}" />
    <res id="Installer.image.2" src="${app.icon}" />
    <res id="Installer.image.3" src="${app.icon}" />
    <res id="Installer.image.4" src="${app.icon}" />
    <res id="Installer.image.5" src="${app.icon}" />
    <res id="LicencePanel.licence" src="${app.license}" />
    <res id="InfoPanel.info" src="${app.readme}" />
    <res id="ImgPacksPanel.img.0" src="${app.icon}" />
    <res id="ImgPacksPanel.img.1" src="${app.icon}" />
    <res id="shortcutSpec.xml" src="${unix.shortcuts}" />
    <res id="Unix_shortcutSpec.xml" src="${unix.shortcuts}" />
    <res id="userInputSpec.xml" src="${user.input}" />
  </resources>

  <panels>
    <panel classname="HelloPanel" />
    <panel classname="InfoPanel" />
    <panel classname="LicencePanel" />
    <panel classname="TargetPanel" />
    <panel classname="ImgPacksPanel" />
    <panel classname="InstallPanel" />
    <panel classname="ShortcutPanel" />
    <panel classname="FinishPanel" />
  </panels>

  <packs>
    <pack name="Binaries" required="yes">
      <description>Binary Executables</description>
      <fileset dir="${image.basedir}" targetdir="$INSTALL_PATH">
        <include name="**/*" />
      </fileset>
    
      <executable os="unix" targetfile="$INSTALL_PATH/bin/${app}" stage="never" keep="true" />
      <singlefile os="unix" src="bin/${server.init}" target="/etc/init.d/${app}" />
      <parsable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" type="shell" />
      <parsable os="unix" targetfile="$INSTALL_PATH/bin/apacheds-tools.sh" type="shell" />
      <parsable os="unix" targetfile="/etc/init.d/${app}" type="shell" />
      <executable os="unix" targetfile="/etc/init.d/${app}" stage="never" keep="true" />
      <executable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" stage="never" keep="true" />
      <executable os="unix" targetfile="$INSTALL_PATH/bin/apacheds-tools.sh" stage="never" keep="true" />
    </pack>
  </packs>
</installation>
