<?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">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-rng-parent</artifactId>
    <version>1.4</version>
  </parent>

  <artifactId>commons-rng</artifactId>
  <version>1.4</version>
  <packaging>pom</packaging>
  <name>Apache Commons RNG (full distribution)</name>
  <description>This module creates the Apache Commons RNG distribution.</description>

  <properties>
    <checkstyle.skip>true</checkstyle.skip>
    <animal.sniffer.skip>true</animal.sniffer.skip>
    <!-- Commons Release Plugin -->
    <commons.release.isDistModule>true</commons.release.isDistModule>
    <commons.siteOutputDirectory>${basedir}/../target/site</commons.siteOutputDirectory>
    <commons.releaseNotesLocation>${basedir}/../RELEASE-NOTES.txt</commons.releaseNotesLocation>
    <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
    <commons.releaseManagerName>Alex Herbert</commons.releaseManagerName>
    <commons.releaseManagerKey>BC87A3FD0A54480F0BADBEBD21939FF0CA2A6567</commons.releaseManagerKey>
  </properties>



  <build>
    <plugins>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>

    <profile>
      <id>release</id>
      <dependencies>

        <!-- Module: Client API -->
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-client-api</artifactId>
          <version>1.4</version>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-client-api</artifactId>
          <version>1.4</version>
          <classifier>sources</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-client-api</artifactId>
          <version>1.4</version>
          <classifier>javadoc</classifier>
        </dependency>

        <!-- Module: Core -->
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-core</artifactId>
          <version>1.4</version>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-core</artifactId>
          <version>1.4</version>
          <classifier>sources</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-core</artifactId>
          <version>1.4</version>
          <classifier>javadoc</classifier>
        </dependency>

        <!-- Module: Simple -->
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-simple</artifactId>
          <version>1.4</version>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-simple</artifactId>
          <version>1.4</version>
          <classifier>sources</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-simple</artifactId>
          <version>1.4</version>
          <classifier>javadoc</classifier>
        </dependency>

        <!-- Module: Sampling -->
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-sampling</artifactId>
          <version>1.4</version>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-sampling</artifactId>
          <version>1.4</version>
          <classifier>sources</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-rng-sampling</artifactId>
          <version>1.4</version>
          <classifier>javadoc</classifier>
        </dependency>

      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>get-dependencies</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
              <skipAssembly>false</skipAssembly>
            </configuration>
            <executions>
              <execution>
                <id>create-distribution</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <skipAssembly>false</skipAssembly>
                  <descriptors>
                    <descriptor>src/assembly/bin.xml</descriptor>
                    <descriptor>src/assembly/src.xml</descriptor>
                  </descriptors>
                  <tarLongFileMode>gnu</tarLongFileMode>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>

</project>
