<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.rhq</groupId>
        <artifactId>rhq-plugins-parent</artifactId>
        <version>4.2.0</version>
    </parent>

    <groupId>org.rhq</groupId>
    <artifactId>rhq-ant-bundle-plugin</artifactId>
    <packaging>jar</packaging>

    <name>RHQ Ant Bundle Plugin</name>
    <description>a plugin that processes ant-based bundles</description>

    <scm>
        <connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/plugins/ant-bundle/</connection>
        <developerConnection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/plugins/ant-bundle/</developerConnection>
    </scm>

    <properties>
        <scm.module.path>modules/plugins/ant-bundle/</scm.module.path>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.rhq</groupId>
            <artifactId>rhq-ant-bundle-common</artifactId>
            <version>${project.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>

            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-rhq-plugins</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>

                                <artifactItem>
                                    <groupId>org.rhq</groupId>
                                    <artifactId>rhq-ant-bundle-common</artifactId>
                                    <version>${project.version}</version>
                                </artifactItem>

                                <artifactItem>
                                    <groupId>org.apache.ant</groupId>
                                    <artifactId>ant</artifactId>
                                    <version>1.8.0</version>
                                </artifactItem>

                                <artifactItem>
                                    <groupId>org.apache.ant</groupId>
                                    <artifactId>ant-launcher</artifactId>
                                    <version>1.8.0</version>
                                </artifactItem>

                                <!-- include some optional Ant tasks for users to be able to use -->
                                <artifactItem>
                                    <groupId>org.apache.ant</groupId>
                                    <artifactId>ant-nodeps</artifactId>
                                    <version>1.8.0</version>
                                </artifactItem>

                                <artifactItem>
                                    <groupId>ant-contrib</groupId>
                                    <artifactId>ant-contrib</artifactId>
                                    <version>1.0b3</version>
                                </artifactItem>

                                <artifactItem>
                                    <groupId>org.liquibase</groupId>
                                    <artifactId>liquibase-core</artifactId>
                                    <version>1.9.5</version>
                                </artifactItem>

                            </artifactItems>
                            <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

    <profiles>
        <profile>
            <id>integration-tests</id>
            <activation>
                <property>
                    <name>maven.test.skip</name>
                    <value>!true</value>
                </property>
            </activation>

            <build>
                <plugins>
                    <!-- Integration testing voodoo to load and test this plugin with its plugin dependencies -->
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>pre-integration-test</phase>
                                <configuration>
                                    <tasks>
                                        <echo>Setting up plugin dependencies for ${project.artifactId}-${project.version}.jar...</echo>
                                        <property name="settings.localRepository" location="${user.home}/.m2/repository" />
                                        <mkdir dir="target/itest" />
                                        <mkdir dir="target/itest/plugins" />
                                        <mkdir dir="target/itest/lib" />
                                        <copy toDir="target/itest/plugins" flatten="true">
                                            <fileset dir="${settings.localRepository}/">
                                                <include name="org/rhq/rhq-platform-plugin/${project.version}/rhq-platform-plugin-${project.version}.jar" />
                                            </fileset>
                                            <fileset dir="${project.build.directory}">
                                                <include name="${project.artifactId}-${project.version}.jar" />
                                            </fileset>
                                        </copy>
                                        <unzip dest="target/itest/lib">
                                            <fileset dir="${settings.localRepository}/org/hyperic/sigar-dist/${sigar.version}" includes="*.zip" />
                                            <patternset>
                                                <include name="**/lib/sigar.jar" />
                                                <include name="**/lib/bcel*.jar" />
                                                <include name="**/lib/*.so" />
                                                <include name="**/lib/*.sl" />
                                                <include name="**/lib/*.dll" />
                                                <include name="**/lib/*.dylib" />
                                            </patternset>
                                        </unzip>
                                        <move todir="target/itest/lib" flatten="true">
                                            <fileset dir="target/itest/lib">
                                                <include name="**/lib/*" />
                                            </fileset>
                                        </move>
                                        <delete dir="target/itest/lib/hyperic-sigar-${sigar.version}" />
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                        <executions>
                            <execution>
                                <id>surefire-it</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <skip>${maven.test.skip}</skip>
                                    <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
                                    <useSystemClassLoader>false</useSystemClassLoader>
                                    <argLine>-Dorg.hyperic.sigar.path=${basedir}/target/itest/lib</argLine>
                                    <!--
                                        <argLine>-Dorg.hyperic.sigar.path=${basedir}/target/itest/lib -Xdebug -Xnoagent -Djava.compiler=NONE
                                        -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</argLine>
                                    -->
                                    <systemProperties>
                                        <property>
                                            <name>project.artifactId</name>
                                            <value>${project.artifactId}</value>
                                        </property>
                                        <property>
                                            <name>project.version</name>
                                            <value>${project.version}</value>
                                        </property>
                                    </systemProperties>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                </plugins>

            </build>
        </profile>

        <profile>
            <id>dev</id>

            <properties>
                <rhq.rootDir>../../..</rhq.rootDir>
                <rhq.containerDir>${rhq.rootDir}/${rhq.defaultDevContainerPath}</rhq.containerDir>
                <rhq.deploymentDir>${rhq.containerDir}/jbossas/server/default/deploy/${rhq.earName}/rhq-downloads/rhq-plugins</rhq.deploymentDir>
            </properties>

            <build>
                <plugins>

                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>

                            <execution>
                                <id>deploy</id>
                                <phase>compile</phase>
                                <configuration>
                                    <tasks>
                                        <mkdir dir="${rhq.deploymentDir}" />
                                        <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
                                        <echo>*** Updating ${deployment.file}...</echo>
                                        <jar destfile="${deployment.file}" basedir="${project.build.outputDirectory}" update="true" />
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>

                            <execution>
                                <id>deploy-jar-meta-inf</id>
                                <phase>package</phase>
                                <configuration>
                                    <tasks>
                                        <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
                                        <echo>*** Updating META-INF dir in ${deployment.file}...</echo>
                                        <unjar src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.outputDirectory}">
                                            <patternset>
                                                <include name="META-INF/**" />
                                            </patternset>
                                        </unjar>
                                        <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
                                        </jar>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>

                            <execution>
                                <id>undeploy</id>
                                <phase>clean</phase>
                                <configuration>
                                    <tasks>
                                        <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
                                        <echo>*** Deleting ${deployment.file}...</echo>
                                        <delete file="${deployment.file}" />
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>

                        </executions>
                    </plugin>

                </plugins>
            </build>
        </profile>

     <profile>
      <id>cobertura-plugins</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
        <build>
         <plugins>
           <plugin>
             <artifactId>maven-antrun-plugin</artifactId>
              <dependencies>
               <dependency>
                 <groupId>net.sourceforge.cobertura</groupId>
                 <artifactId>cobertura</artifactId>
                 <version>${cobertura.version}</version>
               </dependency>
             </dependencies>
             <executions>
              <execution>
               <id>cobertura-instrument</id>
               <phase>pre-integration-test</phase>
                 <configuration>
                   <tasks>
                   <!-- prepare directory structure for cobertura-->
                   <mkdir dir="target/cobertura" />
                   <mkdir dir="target/cobertura/backup" />
                   <!-- backup all classes so that we can instrument the original classes-->
                   <copy toDir="target/cobertura/backup" verbose="true" overwrite="true">
                      <fileset dir="target/classes">
                         <include name="**/*.class" />
                      </fileset>
                   </copy>
                   <!-- create a properties file and save there location of cobertura data file-->
                   <touch file="target/classes/cobertura.properties" />
                   <echo file="target/classes/cobertura.properties">net.sourceforge.cobertura.datafile=${project.build.directory}/cobertura/cobertura.ser</echo>
                   <taskdef classpathref="maven.plugin.classpath" resource="tasks.properties" />
                   <!-- instrument all classes in target/classes directory -->
                   <cobertura-instrument datafile="${project.build.directory}/cobertura/cobertura.ser" todir="${project.build.directory}/classes">
                     <fileset dir="${project.build.directory}/classes">
                        <include name="**/*.class" />
                      </fileset>
                    </cobertura-instrument>
                   </tasks>
                 </configuration>
               <goals>
                 <goal>run</goal>
               </goals>
              </execution>
              <execution>
               <id>cobertura-report</id>
               <phase>post-integration-test</phase>
                 <configuration>
                   <tasks>
                     <taskdef classpathref="maven.plugin.classpath" resource="tasks.properties" />
                     <!-- prepare directory structure for cobertura-->
                     <mkdir dir="target/cobertura" />
                     <mkdir dir="target/site/cobertura" />
                     <!-- restore classes from backup folder to classes folder -->
                     <copy toDir="target/classes" verbose="true" overwrite="true">
                      <fileset dir="target/cobertura/backup">
                         <include name="**/*.class" />
                      </fileset>
                     </copy>
                     <!-- delete backup folder-->
                     <delete dir="target/cobertura/backup" />
                     <!-- create a code coverage report -->
                     <cobertura-report format="html" datafile="${project.build.directory}/cobertura/cobertura.ser" destdir="${project.build.directory}/site/cobertura">
                      <fileset dir="${basedir}/src/main/java">
                         <include name="**/*.java" />
                      </fileset>
                     </cobertura-report>
                     <!-- delete cobertura.properties file -->
                     <delete file="target/classes/cobertura.properties" />
                   </tasks>
                 </configuration>
               <goals>
                 <goal>run</goal>
               </goals>
               </execution>
            </executions>
           </plugin>
          </plugins>
       </build>
     </profile>
    </profiles>

</project>
