<!--
 ! 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>

  <parent>
    <artifactId>apache-asterixdb-jdbc</artifactId>
    <groupId>org.apache.asterix</groupId>
    <version>0.9.7-SNAPSHOT</version>
  </parent>
  <artifactId>asterix-jdbc-taco</artifactId>
  <packaging>jar</packaging>

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>

  <properties>
    <root.dir>${basedir}/..</root.dir>

    <taco.plugin.class>asterixdb_jdbc</taco.plugin.class>
    <taco.plugin.name>AsterixDB</taco.plugin.name>
    <!--suppress UnresolvedMavenProperty -->
    <taco.plugin.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</taco.plugin.version>
    <taco.plugin.vendor>Apache</taco.plugin.vendor>
    <taco.plugin.site>https://asterixdb.apache.org</taco.plugin.site>
    <taco.plugin.dialect>AsterixDB</taco.plugin.dialect>
    <taco.plugin.port.default>19002</taco.plugin.port.default>
    <taco.plugin.database.label>Dataverse</taco.plugin.database.label>
    <taco.plugin.database.default>Default</taco.plugin.database.default>
    <taco.plugin.table.label>Dataset</taco.plugin.table.label>
    <taco.plugin.jdbc.scheme>jdbc:asterixdb://</taco.plugin.jdbc.scheme>
    <taco.plugin.jdbc.properties.aux> </taco.plugin.jdbc.properties.aux>
    <taco.plugin.auth.none><![CDATA[<option value="auth-none" label="No Authentication"/>]]></taco.plugin.auth.none>

    <taco.sourceDirectory>${project.basedir}/src/main/taco</taco.sourceDirectory>

    <build.taco.init.sdk.stage>none</build.taco.init.sdk.stage>
    <build.taco.package.sdk.stage>none</build.taco.package.sdk.stage>
    <build.taco.package.nosdk.stage>none</build.taco.package.nosdk.stage>
    <build.taco.directory>${project.build.directory}/taco</build.taco.directory>
    <build.taco.gensrc.directory>${build.taco.directory}/generated-sources</build.taco.gensrc.directory>
    <build.taco.gensrc.plugin.class.directory>${build.taco.gensrc.directory}/plugins/${taco.plugin.class}</build.taco.gensrc.plugin.class.directory>
    <build.taco.log.directory>${build.taco.directory}</build.taco.log.directory>
    <build.taco.package.file>${project.build.directory}/${taco.plugin.class}.taco</build.taco.package.file>
    <build.venv.directory>${project.build.directory}/venv</build.venv.directory>
    <build.venv.python.path>${build.venv.directory}/bin/python</build.venv.python.path>
  </properties>

  <build>
    <resources>
        <resource>
          <directory>${taco.sourceDirectory}</directory>
        </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>parse-version</id>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>taco-generate-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${build.taco.gensrc.directory}</outputDirectory>
              <resources>
                <resource>
                  <directory>${taco.sourceDirectory}</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <classesDirectory>${build.taco.gensrc.directory}/plugins/${taco.plugin.class}</classesDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>venv-install</id>
            <phase>${build.taco.init.sdk.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <!--suppress UnresolvedMavenProperty -->
              <executable>${python.path}</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <arguments>
                <argument>-m</argument>
                <argument>venv</argument>
                <argument>${build.venv.directory}</argument>
              </arguments>
            </configuration>
          </execution>
          <execution>
            <id>taco-packager-install</id>
            <phase>${build.taco.init.sdk.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>${build.venv.python.path}</executable>
              <workingDirectory>${taco.sdk.path}/connector-packager</workingDirectory>
              <arguments>
                <argument>setup.py</argument>
                <argument>install</argument>
              </arguments>
              <environmentVariables>
                <VIRTUALENV>${build.venv.directory}</VIRTUALENV>
                <PATH>${build.venv.directory}${file.separator}bin:${path.separator}${env.PATH}</PATH>
              </environmentVariables>
            </configuration>
          </execution>
          <execution>
            <!-- create .taco file using Taco SDK -->
            <id>taco-package-sdk</id>
            <phase>${build.taco.package.sdk.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>${build.venv.python.path}</executable>
              <workingDirectory>${taco.sdk.path}/connector-packager</workingDirectory>
              <arguments>
                <argument>-m</argument>
                <argument>connector_packager.package</argument>
                <argument>${build.taco.gensrc.plugin.class.directory}</argument>
                <argument>--log</argument>
                <argument>${build.taco.log.directory}</argument>
                <argument>--dest</argument>
                <argument>${project.build.directory}</argument>
              </arguments>
              <environmentVariables>
                <VIRTUALENV>${build.venv.directory}</VIRTUALENV>
                <PATH>${build.venv.directory}${file.separator}bin:${path.separator}${env.PATH}</PATH>
              </environmentVariables>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <!-- create .taco file if Taco SDK is not available -->
            <id>taco-package-nosdk</id>
            <phase>${build.taco.package.nosdk.stage}</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <outputFile>${build.taco.package.file}</outputFile>
              <artifactSet>
                <includes>
                  <include>org.apache.asterix:asterix-jdbc-taco</include>
                </includes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>taco-sdk-exists</id>
      <activation>
        <property>
          <name>taco.sdk.path</name>
        </property>
      </activation>
      <properties>
        <build.taco.init.sdk.stage>initialize</build.taco.init.sdk.stage>
        <build.taco.package.sdk.stage>package</build.taco.package.sdk.stage>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-taco-sdk-packager-exists</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireProperty>
                      <property>python.path</property>
                    </requireProperty>
                    <requireFilesExist>
                      <files>
                        <!--suppress UnresolvedMavenProperty -->
                        <file>${python.path}</file>
                        <file>${taco.sdk.path}/connector-packager/setup.py</file>
                      </files>
                    </requireFilesExist>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
              <execution>
                <!-- ensure that .taco was created -->
                <id>enforce-taco-package-success</id>
                <phase>verify</phase>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireFilesExist>
                      <files>
                        <file>${build.taco.package.file}</file>
                      </files>
                    </requireFilesExist>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
    <id>taco-sdk-missing</id>
      <activation>
        <property>
          <name>!taco.sdk.path</name>
        </property>
      </activation>
      <properties>
        <build.taco.package.nosdk.stage>package</build.taco.package.nosdk.stage>
      </properties>
    </profile>
  </profiles>
</project>
