<project>
 <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>felix</artifactId>
    <version>0.8.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>jar</packaging>
  <name>Apache Felix Main</name>
  <artifactId>org.apache.felix.main</artifactId>
  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>${pom.version}</version>
    </dependency>
  </dependencies>
  <properties>
    <property name="install.home" value="${basedir.absolutePath}"/>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestFile>src/main/manifest/Manifest.mf</manifestFile>
            <manifest>
              <mainClass>org.apache.felix.main.Main</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>install</phase>
            <configuration>
              <tasks>
                <delete dir="${basedir}/bin"/>
                <mkdir dir="${basedir}/bin"/>
                <delete dir="${basedir}/lib"/>
                <mkdir dir="${basedir}/lib"/>
                <delete dir="${basedir}/conf"/>
                <mkdir dir="${basedir}/conf"/>
                <delete dir="${basedir}/bundle"/>
                <mkdir dir="${basedir}/bundle"/>
<copy file="${basedir}/target/org.apache.felix.main-${pom.version}.jar"
      tofile="${basedir}/bin/felix.jar"/>
<copy file="${basedir}/target/classes/config.properties"
      todir="${basedir}/conf"/>
<copy file="${basedir}/../framework/target/org.apache.felix.framework-${pom.version}.jar"
      todir="${basedir}/lib"/>
<copy file="${basedir}/../org.osgi.core/target/org.osgi.core-${pom.version}.jar"
      todir="${basedir}/lib"/>
<copy file="${basedir}/../shell/target/org.apache.felix.shell-${pom.version}.jar"
      todir="${basedir}/bundle"/>
<copy file="${basedir}/../shell.tui/target/org.apache.felix.shell.tui-${pom.version}.jar"
      todir="${basedir}/bundle"/>
<copy file="${basedir}/../bundlerepository/target/org.apache.felix.bundlerepository-${pom.version}.jar"
      todir="${basedir}/bundle"/>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>
</project>
