<?xml version="1.0" encoding="UTF-8"?>
<!--
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">
  <parent>
    <groupId>org.apache.helix</groupId>
    <artifactId>helix</artifactId>
    <version>1.0.1-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>pom</packaging>

  <artifactId>website</artifactId>
  <name>Apache Helix :: Website</name>

  <url>http://helix.apache.org</url>

  <modules>
    <module>0.6.1-incubating</module>
    <module>0.6.2-incubating</module>
    <module>0.6.3</module>
    <module>0.6.4</module>
    <module>0.6.5</module>
    <module>0.6.6</module>
    <module>0.6.7</module>
    <module>0.6.8</module>
    <module>0.6.9</module>
    <module>0.7.0-incubating</module>
    <module>0.7.1</module>
    <module>0.8.0</module>
    <module>0.8.1</module>
    <module>0.8.2</module>
    <module>0.8.3</module>
    <module>0.8.4</module>
    <module>0.9.0</module>
    <module>0.9.1</module>
    <module>0.9.4</module>
    <module>0.9.7</module>
    <module>1.0.0</module>
  </modules>

  <properties>
    <helix.siteFilePath>${user.home}/helix-site/helix-site-deploy</helix.siteFilePath>
    <helix.siteUrlDeployment>file://${helix.siteFilePath}</helix.siteUrlDeployment>
    <helix.scmPubCheckoutDirectory>${user.home}/helix-site/helix-site-content</helix.scmPubCheckoutDirectory>
    <scmSkipDeletedFiles>false</scmSkipDeletedFiles>
  </properties>

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>${helix.siteUrlDeployment}</url>
    </site>
  </distributionManagement>

  <dependencies>
  </dependencies>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.9</version>
      </plugin>
    </plugins>
  </reporting>
  <build>
    <resources>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.3</version>
        <dependencies>
          <dependency>
            <groupId>lt.velykis.maven.skins</groupId>
            <artifactId>reflow-velocity-tools</artifactId>
            <version>1.0.0</version>
          </dependency>
          <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
          </dependency>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-markdown</artifactId>
            <version>1.3</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>1.0</version>
          <configuration>
            <tryUpdate>true</tryUpdate>
            <providerImplementations>
              <svn>${svnImpl}</svn>
            </providerImplementations>
            <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/helix/site-content/</pubScmUrl>
            <content>${helix.siteFilePath}</content>
            <checkoutDirectory>${helix.scmPubCheckoutDirectory}</checkoutDirectory>
            <skipDeletedFiles>${scmSkipDeletedFiles}</skipDeletedFiles>
            <ignorePathsToDelete>
              <ignorePathToDelete>javadocs</ignorePathToDelete>
              <ignorePathToDelete>javadocs**</ignorePathToDelete>
              <ignorePathToDelete>apidocs</ignorePathToDelete>
              <ignorePathToDelete>apidocs**</ignorePathToDelete>
            </ignorePathsToDelete>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.google.code.maven-scm-provider-svnjava</groupId>
              <artifactId>maven-scm-provider-svnjava</artifactId>
              <version>${maven-scm-provider-svnjava.version}</version>
            </dependency>
            <dependency>
              <groupId>org.tmatesoft.svnkit</groupId>
              <artifactId>svnkit</artifactId>
              <version>${svnkit.version}</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
