<!-- 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.1.0-SNAPSHOT</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.21</version>
      <scope>runtime</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/">
                      </fileset>
                    </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>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>sql-maven-plugin</artifactId>
            <version>1.5</version>
            <dependencies>
              <!-- specify the dependent jdbc driver here -->
              <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${cs.mysql.version}</version>
              </dependency>
            </dependencies>
            <configuration>

              <driver>org.gjt.mm.mysql.Driver</driver>
              <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}/cloud</url>
              <username>${db.cloud.username}</username>
              <password>${db.cloud.password}</password>
              <!--all executions are ignored if -Dmaven.test.skip=true -->
              <skip>${maven.test.skip}</skip>
              <forceMojoExecution>true</forceMojoExecution>
            </configuration>
            <executions>
              <execution>
                <id>drop-database</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>drop database if exists `cloud`</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>create-database</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>create database `cloud`</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>grant-user-cloud</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>GRANT ALL ON cloud.* to
                    ${db.cloud.username}@`localhost` identified by
                    '${db.cloud.password}';</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>grant-user-cloud-all</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>GRANT ALL ON cloud.* to
                    ${db.cloud.username}@`%` identified by
                    '${db.cloud.password}';</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>drop-database-usage</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>drop database if exists `cloud_usage`</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>create-database-usage</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>create database `cloud_usage`</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>grant-user-cloud-usage</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>GRANT ALL ON cloud_usage.* to
                    ${db.cloud.username}@`localhost` identified by
                    '${db.cloud.password}';</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>grant-user-cloud-usage-all</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>GRANT ALL ON cloud_usage.* to
                    ${db.cloud.username}@`%` identified by
                    '${db.cloud.password}';</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>drop-database-cloudbridge</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>drop database if exists `cloudbridge`</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>create-database-cloudbridge</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>create database `cloudbridge`</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>grant-user-cloud-bridge</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>GRANT ALL ON cloudbridge.* to
                    ${db.cloud.username}@`localhost` identified by
                    '${db.cloud.password}';</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>grant-user-cloud-bridge-all</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <username>root</username>
                  <password>${db.root.password}</password>
                  <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
                  <sqlCommand>GRANT ALL ON cloudbridge.* to
                    ${db.cloud.username}@`%` identified by
                    '${db.cloud.password}';</sqlCommand>
                </configuration>
              </execution>
              <execution>
                <id>create-schema</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <srcFiles>
                    <srcFile>${basedir}/target/db/create-schema.sql</srcFile>
                    <srcFile>${basedir}/target/db/create-schema-premium.sql</srcFile>
                    <srcFile>${basedir}/target/db/templates.sql</srcFile>
                    <srcFile>${basedir}/target/db/create-index-fk.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_schema.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_multipart.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_index.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_multipart_alter.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_bucketpolicy.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_policy_alter.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_offering.sql</srcFile>
                    <srcFile>${basedir}/target/db/cloudbridge_offering_alter.sql</srcFile>
                  </srcFiles>
                </configuration>
              </execution>
              <execution>
                <id>prefill-developer-schema</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <autocommit>true</autocommit>
                    <srcFiles>
                        <srcFile>${basedir}/developer-prefill.sql</srcFile>
                    </srcFiles>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

      <!-- Simulator profile -->
      <profile>
          <id>simulator</id>
          <activation>
              <property><name>deploydb-simulator</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>
                      <groupId>org.codehaus.mojo</groupId>
                      <artifactId>sql-maven-plugin</artifactId>
                      <version>1.5</version>
                      <dependencies>
                          <dependency>
                              <groupId>mysql</groupId>
                              <artifactId>mysql-connector-java</artifactId>
                              <version>${cs.mysql.version}</version>
                          </dependency>
                      </dependencies>
                      <configuration>
                          <driver>org.gjt.mm.mysql.Driver</driver>
                          <url>jdbc:mysql://${db.simulator.host}:3306/simulator</url>
                          <username>${db.simulator.username}</username>
                          <password>${db.simulator.password}</password>
                          <skip>${maven.test.skip}</skip>
                          <forceMojoExecution>true</forceMojoExecution>
                      </configuration>
                      <executions>
                          <execution>
                              <id>drop-database</id>
                              <phase>process-test-resources</phase>
                              <goals>
                                  <goal>execute</goal>
                              </goals>
                              <configuration>
                                  <username>root</username>
                                  <password>${db.root.password}</password>
                                  <url>jdbc:mysql://${db.simulator.host}:3306</url>
                                  <sqlCommand>drop database if exists `simulator`</sqlCommand>
                              </configuration>
                          </execution>
                          <execution>
                              <id>create-database</id>
                              <phase>process-test-resources</phase>
                              <goals>
                                  <goal>execute</goal>
                              </goals>
                              <configuration>
                                  <username>root</username>
                                  <password>${db.root.password}</password>
                                  <url>jdbc:mysql://${db.simulator.host}:3306</url>
                                  <sqlCommand>create database `simulator`</sqlCommand>
                              </configuration>
                          </execution>
                          <execution>
                              <id>grant-user-cloud</id>
                              <phase>process-test-resources</phase>
                              <goals>
                                  <goal>execute</goal>
                              </goals>
                              <configuration>
                                  <username>root</username>
                                  <password>${db.root.password}</password>
                                  <url>jdbc:mysql://${db.simulator.host}:3306</url>
                                  <sqlCommand>GRANT ALL ON simulator.* to
                                      ${db.simulator.username}@`localhost` identified by
                                      '${db.simulator.password}';</sqlCommand>
                              </configuration>
                          </execution>
                          <execution>
                              <id>grant-user-cloud-all</id>
                              <phase>process-test-resources</phase>
                              <goals>
                                  <goal>execute</goal>
                              </goals>
                              <configuration>
                                  <username>root</username>
                                  <password>${db.root.password}</password>
                                  <url>jdbc:mysql://${db.simulator.host}:3306</url>
                                  <sqlCommand>GRANT ALL ON simulator.* to
                                      ${db.simulator.username}@`%` identified by
                                      '${db.simulator.password}';</sqlCommand>
                              </configuration>
                          </execution>
                          <execution>
                              <id>create-schema</id>
                              <phase>process-test-resources</phase>
                              <goals>
                                  <goal>execute</goal>
                              </goals>
                              <configuration>
                                  <srcFiles>
                                      <srcFile>${basedir}/target/db/create-schema-simulator.sql</srcFile>
                                      <srcFile>${basedir}/target/db/templates.simulator.sql</srcFile>
                                  </srcFiles>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
    </profile>
  </profiles>
</project>
