<!-- 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. -->
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>cloud-developer</artifactId>
  <name>Apache CloudStack Developer Tools</name>
  <packaging>pom</packaging>
  <parent>
    <groupId>org.apache.cloudstack</groupId>
    <artifactId>cloudstack</artifactId>
    <version>4.2.0-SNAPSHOT</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.21</version>
      <scope>runtime</scope>
    </dependency>
      <dependency>
          <groupId>org.apache.cloudstack</groupId>
          <artifactId>cloud-plugin-hypervisor-simulator</artifactId>
          <version>${project.version}</version>
          <scope>compile</scope>
      </dependency>
  </dependencies>
  <build>
    <defaultGoal>install</defaultGoal>
  </build>

  <profiles>
    <profile>
      <id>deploydb</id>
      <activation>
        <property>
          <name>deploydb</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0-alpha-2</version>
            <executions>
              <execution>
                <phase>initialize</phase>
                <goals>
                  <goal>read-project-properties</goal>
                </goals>
                <configuration>
                  <files>
                    <file>${project.parent.basedir}/utils/conf/db.properties</file>
                    <file>${project.parent.basedir}/utils/conf/db.properties.override</file>
                  </files>
                  <quiet>true</quiet>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <filter token="VERSION" value="${project.version}" />
                    <copy todir="${basedir}/target/db" filtering="true">
                      <fileset dir="${project.basedir}/../setup/db/" />
                    </copy>
                    <copy todir="${basedir}/target/db" filtering="true">
                      <fileset
                        dir="${project.basedir}/../awsapi-setup/db/mysql/">
                        <include name="**/*.sql" />
                      </fileset>
                    </copy>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- DatabaseCreator driver here -->
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <dependencies>
              <!-- specify the dependent jdbc driver here -->
              <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${cs.mysql.version}</version>
              </dependency>
              <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>${cs.dbcp.version}</version>
              </dependency>
              <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>${cs.pool.version}</version>
              </dependency>
              <dependency>
                <groupId>org.jasypt</groupId>
                <artifactId>jasypt</artifactId>
                <version>${cs.jasypt.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.cloudstack</groupId>
                <artifactId>cloud-utils</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.cloudstack</groupId>
                <artifactId>cloud-server</artifactId>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <phase>process-resources</phase>
                <id>create-schema</id>
                <goals>
                  <goal>java</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <includeProjectDependencies>false</includeProjectDependencies>
              <includePluginDependencies>true</includePluginDependencies>
              <executableDependency>
                <groupId>org.apache.cloudstack</groupId>
                <artifactId>cloud-server</artifactId>
              </executableDependency>
              <mainClass>com.cloud.upgrade.DatabaseCreator</mainClass>
              <arguments>
                <!-- db properties file -->
                <argument>${project.parent.basedir}/utils/conf/db.properties</argument>
                <argument>${project.parent.basedir}/utils/conf/db.properties.override</argument>
                <!-- Create default schema and db table views -->
                <argument>${basedir}/target/db/create-schema.sql</argument>
                <argument>${basedir}/target/db/create-schema-premium.sql</argument>
                <!-- Seed templates -->
                <argument>${basedir}/target/db/templates.sql</argument>
                <!-- Run cloudbridge related sqls -->
                <argument>${basedir}/target/db/cloudbridge_schema.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_multipart.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_index.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_multipart_alter.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_bucketpolicy.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_policy_alter.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_offering.sql</argument>
                <argument>${basedir}/target/db/cloudbridge_offering_alter.sql</argument>
                <!-- Seed the database -->
                <argument>${basedir}/developer-prefill.sql</argument>
                <!-- Do database upgrade-->
                <argument>com.cloud.upgrade.DatabaseUpgradeChecker</argument>
                <argument>--database=cloud,usage,awsapi</argument>
                <argument>--rootpassword=${db.root.password}</argument>
                <!-- Print help using -h or dash-dash-help -->
                <!-- Do dry run using -d or dash-dash-dry -->
                <!-- Enable verbosity by -v or dash-dash-verbose -->
              </arguments>
              <systemProperties>
                <systemProperty>
                  <key>catalina.home</key>
                  <value>${project.parent.basedir}/utils</value>
                </systemProperty>
                <systemProperty>
                  <key>paths.script</key>
                  <value>${basedir}/target/db</value>
                </systemProperty>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
