<!--
  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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>13</version>
    <relativePath />
  </parent>

  <groupId>org.apache.vxquery</groupId>
  <artifactId>apache-vxquery</artifactId>
  <version>0.3-incubating</version>
  <packaging>pom</packaging>
  <name>VXQuery</name>
  <description>A Versatile XQuery Processor</description>
  <url>http://incubator.apache.org/vxquery/</url>

  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org/</url>
  </organization>

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

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-vxquery.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-vxquery.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf/incubator-vxquery.git</url>
    <tag>apache-vxquery-0.3-incubating</tag>
  </scm>

  <issueManagement>
    <system>Jira</system>
    <url>https://issues.apache.org/jira/browse/VXQUERY</url>
  </issueManagement>

  <developers>
    <developer>
      <id>antelder</id>
      <name>Ant Elder</name>
      <email />
      <roles>
        <role>Mentor</role>
      </roles>
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>jochen</id>
      <name>Jochen Wiedmann</name>
      <email />
      <roles>
        <role>Mentor</role>
      </roles>
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>marvin</id>
      <name>Marvin Humphrey</name>
      <email />
      <roles>
        <role>Mentor</role>
      </roles>
      <organization />
      <timezone />
    </developer>

    <developer>
      <id>cezar</id>
      <name>Cezar Andrei</name>
      <email />
      <roles>
        <role>Project Manager</role>
        <role>Architect</role>
        <role>Champion</role>
      </roles>
      <organization />
      <timezone>-6</timezone>
    </developer>
    <developer>
      <id>dtabass</id>
      <name>Michael J. Carey</name>
      <email />
      <roles>
        <role>Architect</role>
      </roles>
      <organization />
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>prestonc</id>
      <name>Preston Carman</name>
      <email />
      <roles>
        <role>Developer</role>
      </roles>
      <organization />
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>sjaco002</id>
      <name>Steven Jacobs</name>
      <email />
      <roles>
        <role>Developer</role>
      </roles>
      <organization />
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>tillw</id>
      <name>Till Westmann</name>
      <email />
      <roles>
        <role>Project Manager</role>
        <role>Architect</role>
      </roles>
      <organization />
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>vinayakb</id>
      <name>Vinayak Borkar</name>
      <email />
      <roles>
        <role>Project Manager</role>
        <role>Architect</role>
      </roles>
      <organization />
      <timezone>-8</timezone>
    </developer>

    <developer>
      <id>radup</id>
      <name>Radu Preotiuc</name>
      <email />
      <roles>
        <role>Mentor (dormant)</role>
      </roles>
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>sanjiva</id>
      <name>Sanjiva Weerawarana</name>
      <email />
      <roles>
        <role>Mentor (dormant)</role>
      </roles>
      <organization />
      <timezone />
    </developer>
  </developers>

  <mailingLists>
    <mailingList>
      <name>VXQuery-dev</name>
      <subscribe>vxquery-dev-subscribe@incubator.apache.org</subscribe>
      <unsubscribe>vxquery-dev-unsubscribe@incubator.apache.org</unsubscribe>
      <post>vxquery-dev@incubator.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-vxquery-dev/</archive>
    </mailingList>
    <mailingList>
      <name>VXQuery-commits</name>
      <subscribe>vxquery-commits-subscribe@incubator.apache.org</subscribe>
      <unsubscribe>vxquery-commits-unsubscribe@incubator.apache.org</unsubscribe>
      <post>vxquery-commits@incubator.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-vxquery-commits/</archive>
    </mailingList>
  </mailingLists>

  <distributionManagement>
    <site>
      <id>vxquery.website</id>
      <name>VXQuery Website</name>
      <url>file:../../site/</url>
    </site>
  </distributionManagement>

  <repositories>
    <repository>
      <id>hyracks-snapshots</id>
      <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-snapshots/</url>
      <snapshots>
      </snapshots>
    </repository>
    <repository>
      <id>hyracks-releases</id>
      <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-releases/</url>
      <releases>
      </releases>
    </repository>
    <repository>
      <id>hyracks-thirdparty</id>
      <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-thirdparty/</url>
      <releases>
      </releases>
    </repository>
  </repositories>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>args4j</groupId>
        <artifactId>args4j</artifactId>
        <version>2.0.9</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-client</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-control-common</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-control-cc</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-control-nc</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>algebricks-compiler</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>algebricks-common</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>algebricks-core</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>algebricks-data</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>algebricks-rewriter</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>algebricks-runtime</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-api</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-data-std</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-dataflow-common</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>edu.uci.ics.hyracks</groupId>
        <artifactId>hyracks-dataflow-std</artifactId>
        <version>${hyracks.version}</version>
      </dependency>

      <dependency>
        <groupId>ant</groupId>
        <artifactId>ant-trax</artifactId>
        <version>1.6.5</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>stax2-api</artifactId>
        <version>3.0.1</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>woodstox-core-asl</artifactId>
        <version>4.0.6</version>
      </dependency>

      <dependency>
        <groupId>xalan</groupId>
        <artifactId>serializer</artifactId>
        <version>2.7.1</version>
      </dependency>

      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.9.1</version>
      </dependency>

      <dependency>
        <groupId>activemq</groupId>
        <artifactId>activemq-transport-xstream</artifactId>
        <version>2.1</version>
      </dependency>

      <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>1.3.1</version>
      </dependency>

      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
      </dependency>

      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.4</version>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty</artifactId>
        <version>6.1.4</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.3</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.7</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.9.1</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-install-plugin</artifactId>
        <configuration>
          <createChecksum>true</createChecksum>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.4.2</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-provider-gitexe</artifactId>
            <version>1.8.1</version>
          </dependency>
        </dependencies>
        <configuration>
          <autoVersionSubmodules>true</autoVersionSubmodules>
        </configuration>
      </plugin>
      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>aggregate</id>
            <goals>
              <goal>aggregate</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <notimestamp>true</notimestamp>
          <maxmemory>2g</maxmemory>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-site</id>
            <phase>pre-site</phase>
            <configuration>
              <target>
                <ant antfile="build-site.xml" target="build">
                  <property name="build.gen-site.dir" value="${project.build.directory}/generated-site/apt" />
                </ant>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <!-- We override the configuration plugin to override the descriptor to use for building
          the source release zip. Specifically, we would like to control the inclusions/exclusions.
          For example, we exclude the KEYS file from the zip -->
        <executions>
          <execution>
            <!-- Use this id to match the id mentioned in the assembly plugin configuration in
              the apache parent POM under the apache-release profile -->
            <id>source-release-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <!-- combine.self should be override to replace the configuration in the parent POM -->
            <configuration combine.self="override">
              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
              <descriptors>
                <descriptor>src/main/assembly/source.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!--
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <version>2.7</version>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
          </reportPlugins>
        </configuration>
        <executions> 
          <execution> 
            <id>attach-site</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>jar</goal>
            </goals> 
          </execution> 
        </executions> 
      </plugin>
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <inherited>false</inherited>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>license</report>
              <report>project-team</report>
              <report>scm</report>
              <report>issue-tracking</report>
              <report>mailing-list</report>
              <report>plugins</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <linkOnly>true</linkOnly>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
          <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-vxquery.git</developerConnection>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.7</version>
        <configuration>
          <excludes>
            <exclude>.gitignore</exclude>
            <exclude>.git/**/*</exclude>
          </excludes>
          <numUnapprovedLicenses>0</numUnapprovedLicenses>
          <maxmemory>2g</maxmemory>
        </configuration>
      </plugin>
      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <notimestamp>true</notimestamp>
          <maxmemory>2g</maxmemory>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <hyracks.version>0.2.11</hyracks.version>
  </properties>

  <modules>
    <module>vxquery-core</module>
    <module>vxquery-xtest</module>
    <module>vxquery-benchmark</module>
    <module>vxquery-server</module>
    <module>vxquery-cli</module>
  </modules>
</project>
