<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>felix</artifactId>
    <version>0.8-SNAPSHOT</version>
  </parent>
  <packaging>jar</packaging>
  <name>Apache Felix Installers</name>
  <artifactId>installers</artifactId>
  <dependencies>
    <dependency>
      <groupId>org.apache.directory.daemon</groupId>
      <artifactId>daemon-bootstrappers</artifactId>
      <version>1.0-RC1</version>
      <scope>provided</scope>
    </dependency>  

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>nlog4j</artifactId>
      <version>1.2.19</version>
    </dependency>

    <dependency>
      <groupId>commons-daemon</groupId>
      <artifactId>commons-daemon</artifactId>
      <version>1.0.1</version>
    </dependency>

    <!-- Felix Dependencies -->
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.main</artifactId>
      <version>${pom.version}</version>
    </dependency>

    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.shell</artifactId>
      <version>${pom.version}</version>
    </dependency>

    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.shell.tui</artifactId>
      <version>${pom.version}</version>
    </dependency>

  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.directory.daemon</groupId>
        <artifactId>daemon-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>ant:ant</exclude>
            <exclude>xerces:xercesImpl</exclude>
            <exclude>org.apache.felix:org.apache.felix.main</exclude>
            <exclude>org.apache.felix:org.apache.felix.shell</exclude>
            <exclude>org.apache.felix:org.apache.felix.shell.tui</exclude>
          </excludes>
          <application>
            <name>felix</name>
            <version>${pom.version}</version>
            <copyrightYear>2006</copyrightYear>
            <minimumJavaVersion>1.4</minimumJavaVersion>
            <url>http://incubator.apache.org/felix</url>
            <email>felix-dev@incubator.apache.org</email>
            <description>Apache OSGi Platform</description>
            <authors>
              <author>Apache Felix Team</author>
              <author>rhall@apache.org</author>
              <author>tbennett@apache.org</author>
              <author>akarasulu@apache.org</author>
              <author>trustin@apache.org</author>
              <author>erodriguez@apache.org</author>
            </authors>
          </application>
          <packagedFiles>
            <packagedFile>
              <filtered>true</filtered>
              <source>config.properties</source>
              <destinationPath>conf/config.properties</destinationPath>
            </packagedFile>
            <packagedFile>
              <dependency>true</dependency>
              <source>org.apache.felix:org.apache.felix.main</source>
              <destinationPath>
                bin/felix.jar
              </destinationPath>
            </packagedFile>
            <packagedFile>
              <dependency>true</dependency>
              <source>org.apache.felix:org.apache.felix.shell</source>
              <destinationPath>
                bundle/org.apache.felix.shell-${pom.version}.jar
              </destinationPath>
            </packagedFile>
            <packagedFile>
              <dependency>true</dependency>
              <source>org.apache.felix:org.apache.felix.shell.tui</source>
              <destinationPath>
                bundle/org.apache.felix.shell.tui-${pom.version}.jar
              </destinationPath>
            </packagedFile>
          </packagedFiles>
          <!--
          <svnBaseUrl>
            http://svn.apache.org/repos/asf/incubator/felix/trunk
          </svnBaseUrl>
          <packageSources>true</packageSources>
          <packageDocs>true</packageDocs>
          -->
          <applicationClass>
            org.apache.felix.daemon.Service
          </applicationClass>
          <rpmTargets>
            <rpmTarget>
              <id>linux-jsvc-rpm</id>
              <rpmSpecificationFile>
                src/main/installers/rpm-felix.spec
              </rpmSpecificationFile>
              <finalName>
                felix-${pom.version}-linux-i386.rpm
              </finalName>
              <osName>Linux</osName>
              <osFamily>unix</osFamily>
              <osArch>i386</osArch>
              <daemonFramework>jsvc</daemonFramework>
            </rpmTarget>
          </rpmTargets>
          <innoTargets>
            <innoTarget>
              <id>windows-xp-procrun</id>
              <innoConfigurationFile>
                src/main/installers/inno-felix.iss
              </innoConfigurationFile>
              <finalName>
                felix-${pom.version}-win32-setup
              </finalName>
              <osName>Windows XP</osName>
              <osFamily>windows</osFamily>
              <osVersion>5.1</osVersion>
              <osArch>x86</osArch>
              <daemonFramework>procrun</daemonFramework>
            </innoTarget>
          </innoTargets>
          <izPackTargets>
            <izPackTarget>
              <id>linux-jsvc</id>
              <izPackInstallFile>
                src/main/installers/izpack-unix.xml
              </izPackInstallFile>
              <izPackShortcutsUnixFile>
                src/main/installers/unix_shortcuts.xml
              </izPackShortcutsUnixFile>
              <finalName>
                felix-${pom.version}-linux-i386-setup.jar
              </finalName>
              <osName>Linux</osName>
              <osFamily>unix</osFamily>
              <osArch>i386</osArch>
              <daemonFramework>jsvc</daemonFramework>
            </izPackTarget>
            <izPackTarget>
              <finalName>
                felix-${pom.version}-solaris-sparc-setup.jar
              </finalName>
              <id>solaris-jsvc-sparc</id>
              <izPackInstallFile>
                src/main/installers/izpack-unix.xml
              </izPackInstallFile>
              <izPackShortcutsUnixFile>
                src/main/installers/unix_shortcuts.xml
              </izPackShortcutsUnixFile>
              <osName>sunos</osName>
              <osFamily>unix</osFamily>
              <osArch>sparc</osArch>
              <daemonFramework>jsvc</daemonFramework>
            </izPackTarget>
            <izPackTarget>
              <id>solaris-jsvc-i386</id>
              <izPackInstallFile>
                src/main/installers/izpack-unix.xml
              </izPackInstallFile>
              <izPackShortcutsUnixFile>
                src/main/installers/unix_shortcuts.xml
              </izPackShortcutsUnixFile>
              <finalName>
                felix-${pom.version}-solaris-i386-setup.jar
              </finalName>
              <osName>sunos</osName>
              <osFamily>unix</osFamily>
              <osArch>i386</osArch>
              <daemonFramework>jsvc</daemonFramework>
            </izPackTarget>
            <izPackTarget>
              <id>macosx-jsvc</id>
              <izPackInstallFile>
                src/main/installers/izpack-mac.xml
              </izPackInstallFile>
              <izPackShortcutsUnixFile>
                src/main/installers/unix_shortcuts.xml
              </izPackShortcutsUnixFile>
              <finalName>
                felix-${pom.version}-macosx-ppc-setup.jar
              </finalName>
              <osName>macosx</osName>
              <osFamily>unix</osFamily>
              <osArch>ppc</osArch>
              <daemonFramework>jsvc</daemonFramework>
            </izPackTarget>
          </izPackTargets>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

