<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.opengauss.plide.build</groupId>
    <artifactId>GAUSS_MPP_DB_IDE</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>org.opengauss.dbdriver.jdbc.gauss</module>
        <module>Common-collection</module>
        <module>commons-csv</module>
        <module>JSQLParser</module>
        <module>org.opengauss.mppdbide.utils</module>
        <module>org.opengauss.mppdbide.parser</module>
        <module>org.opengauss.mppdbide.adapter.gauss</module>
        <module>org.opengauss.mppdbide.debuger</module>
        <module>org.opengauss.mppdbide.bl</module>
        <module>org.opengauss.mppdbide.presentation</module>
        <module>org.opengauss.mppdbide.explainplan</module>
        <module>org.opengauss.mppdbide.editor.extension</module>
        <module>org.opengauss.mppdbide.view</module>
        <module>org.opengauss.mppdbide.feature</module>
        <module>org.opengauss.mppdbide.repository</module>
    </modules>
    <properties>
        <!--<tycho-version>1.4.0</tycho-version>-->
        <tycho-version>2.6.0</tycho-version>
        <java.version>11</java.version>
        <javafx.home>${env.javafx_home}</javafx.home>

        <!-- <maven.test.skip>true</maven.test.skip> -->
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <url.ip>mirrors.ustc.edu.cn</url.ip>
        <url.port></url.port>
        <url.nattable>http://${url.ip}${url.port}/eclipse/nattable/releases/1.6.0/repository/</url.nattable>
        <url.gef>http://${url.ip}${url.port}/eclipse/tools/gef/updates/releases/5.1.0_gef-master_5509/</url.gef>
        <url.efxclipse>http://${url.ip}${url.port}/eclipse/efxclipse/updates-released/3.5.0/site/</url.efxclipse>
        <url.eclipse>http://${url.ip}${url.port}/eclipse/releases/2021-12/202112081000/</url.eclipse>
        <url.openjfx>https://downloads.efxclipse.bestsolution.at/p2-repos/openjfx-17.0.2/</url.openjfx>
    </properties>
  
    <profiles>
        <profile>
            <id>include-test</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <presentation.skip>false</presentation.skip>
                <runSuite>**/*.class</runSuite>
            </properties>
            <modules>
                <module>..\testcode\LLT\org.opengauss.mppdbide.bl.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.utils.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.adapter.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.bl.debug.test.fragment</module>        
                <module>..\testcode\LLT\org.opengauss.mppdbide.editor.extension.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.parser.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.explainplan.test.fragment</module>
            </modules>
        </profile>
        <profile>
            <id>test_1</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <presentation.skip>false</presentation.skip>
                <runSuite>**/*.class</runSuite>
            </properties>
        </profile>
        <profile>
            <id>test_2</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <presentation.skip>true</presentation.skip>
                <runSuite>**/*.class</runSuite>
            </properties>
            <modules>
                <module>..\testcode\LLT\org.opengauss.mppdbide.bl.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.utils.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.adapter.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.bl.debug.test.fragment</module>        
                <module>..\testcode\LLT\org.opengauss.mppdbide.editor.extension.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.parser.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.explainplan.test.fragment</module>
            </modules>
        </profile>
        <profile>
            <id>test_presentation</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <presentation.skip>false</presentation.skip>
                <runSuite>**/*.class</runSuite>
            </properties>
        </profile>
        <profile>
            <id>test_bl</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <presentation.skip>true</presentation.skip>
                <runSuite>**/*.class</runSuite>
            </properties>
            <modules>
                <module>..\testcode\LLT\org.opengauss.mppdbide.bl.test.fragment</module>
            </modules>
        </profile>
        <profile>
            <id>test_other</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <presentation.skip>true</presentation.skip>
            </properties>
            <modules>
                <module>..\testcode\LLT\org.opengauss.mppdbide.utils.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.adapter.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.bl.debug.test.fragment</module>        
                <module>..\testcode\LLT\org.opengauss.mppdbide.editor.extension.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.parser.test.fragment</module>
                <module>..\testcode\LLT\org.opengauss.mppdbide.explainplan.test.fragment</module>
            </modules>
        </profile>
    </profiles>
    <repositories>
        <!-- configure p2 repository to resolve against -->
        <repository>
            <id>eclipse</id>
            <layout>p2</layout>
            <url>${url.eclipse}</url>
        </repository>
        <repository>
            <id>nattable</id>
            <layout>p2</layout>
            <url>${url.nattable}</url>
        </repository>
        <repository>
            <id>gef</id>
            <layout>p2</layout>
            <url>${url.gef}</url>
        </repository>
        <repository>
            <id>efxclipse</id>
            <layout>p2</layout>
            <url>${url.efxclipse}</url>
        </repository>
        <repository>
            <id>openjfx</id>
            <layout>p2</layout>
            <url>${url.openjfx}</url>
        </repository>
    </repositories>
    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-compiler-plugin</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <compilerArgument>-warn:+discouraged,forbidden</compilerArgument>
                    <extraClasspathElements>
                        <extraClasspathElement>
                            <groupId>com.oracle</groupId>
                            <artifactId>javafx</artifactId>
                            <version>8.0.0-SNAPSHOT</version>
                            <systemPath>${javafx.home}/lib/javafx-swt.jar</systemPath>
                            <scope>system</scope>
                        </extraClasspathElement>
                    </extraClasspathElements>
                </configuration>
            </plugin>
            <plugin>
                <!-- enable tycho build extension -->
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho-version}</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <pomDependencies>consider</pomDependencies>
                    <!-- configure the p2 target environments for multi-platform build -->
                    <environments>
                        <environment>
                        <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <showWarnings>true</showWarnings>
                    <compilerArgs>
                        <arg>-Xlint:all</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.7</version>
                <executions>
                    <execution>
                        <id>jacoco-initialize</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>jacoco-site</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>