<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.3.0</version>
   </parent>

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

   <name>RHQ Oracle Plugin</name>
   <description>A plugin for managing Oracle Database Servers</description>

   <dependencies>

      <dependency>
         <groupId>${rhq.groupId}</groupId>
         <artifactId>rhq-database-plugin</artifactId>
         <version>${project.version}</version>
         <scope>provided</scope>
      </dependency>

   </dependencies>

   <properties>
      <skipTests>true</skipTests>
   </properties>

   <profiles>

      <profile>
         <id>ojdbc-driver</id>
         <activation>
            <property>
               <name>rhq.m2.repo.url.oracle</name>
            </property>
         </activation>

         <!-- Make sure the Oracle JDBC jar gets included in the plugin jar's lib dir. -->

         <build>
            <plugins>

               <plugin>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>copy-oracle-jar</id>
                        <phase>process-resources</phase>
                        <goals>
                           <goal>copy</goal>
                        </goals>
                        <configuration>
                           <artifactItems>
                              <artifactItem>
                                 <groupId>com.oracle</groupId>
                                 <artifactId>ojdbc6</artifactId>
                              </artifactItem>
                           </artifactItems>
                           <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
                        </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}" />
                           </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>oracle-test</id>
         <activation>
            <activeByDefault>false</activeByDefault>
         </activation>

         <properties>
            <skipTests>false</skipTests>
         </properties>

         <dependencies>
            <dependency>
               <groupId>com.oracle</groupId>
               <artifactId>ojdbc6</artifactId>
               <version>${ojdbc6.version}</version>
            </dependency>
         </dependencies>

         <build>
            <plugins>
               <plugin>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <configuration>
                     <systemProperties>
                        <property>
                           <name>oracle.url</name>
                           <value>${rhq.test.ds.connection-url}</value>
                        </property>
                        <property>
                           <name>oracle.username</name>
                           <value>${rhq.test.ds.user-name}</value>
                        </property>
                        <property>
                           <name>oracle.password</name>
                           <value>${rhq.test.ds.password}</value>
                        </property>
                     </systemProperties>
                  <!-- The below is required for tests to run against Oracle.
                     <additionalClasspathElements>
                        <additionalClasspathElement>${settings.localRepository}/com/oracle/ojdbc6/${ojdbc6.version}/ojdbc6-${ojdbc6.version}.jar</additionalClasspathElement>
                     </additionalClasspathElements>
                  -->
                  </configuration>
               </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>
