<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.myfaces</groupId>
        <artifactId>myfaces</artifactId>
        <version>9</version>
    </parent>

    <groupId>org.apache.myfaces.extensions.validator</groupId>
    <artifactId>myfaces-extval-module</artifactId>
    <version>1.2.4-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache MyFaces Extensions-Validator Module</name>
    <url>http://myfaces.apache.org/extensions/validator12</url>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/</developerConnection>
        <url>http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/</url>
    </scm>

    <distributionManagement>
        <site>
            <id>apache-site</id>
            <url>scpexe://people.apache.org/www/myfaces.apache.org/extensions/validator12</url>
        </site>
    </distributionManagement>

    <!-- WARNING: DO NOT GENERATE SITE FROM HERE DIRECTLY
    Since this project has an async release procedure (not
    all modules should be released at once), the parent pom.xml 
    is not this (there is a module for that). Use maven site 
    plugin here cause problems when the site is generated.
    The procedure must execute site commmand first on parent 
    module and then on each module listed below. 
     -->

    <modules>
        <module>parent</module>
        <module>assembly</module>

        <module>core</module>
        <module>validation-modules</module>
        <module>component-support</module>

        <!--module>test-modules</module>
        <module>examples</module-->
    </modules>

    <profiles>
        <!-- This profile is invoked by -DprepareRelease=true.  This allows mvn release:prepare to
            run successfully on the assembly projects. -->
        <profile>
            <id>prepare-release</id>
            <activation>
                <property>
                    <name>prepareRelease</name>
                </property>
            </activation>
            <modules>
                <module>assembly</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-release-plugin</artifactId>
                        <configuration>
                            <arguments>-DprepareRelease</arguments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-doap-plugin</artifactId>
                <version>1.0</version>
                <configuration>
                    <category>web-framework, validation</category>
                    <language>Java</language>
                    <shortdesc>JSF centric validation framework for metadata based validation.</shortdesc>
                    <pmc>http://myfaces.apache.org</pmc>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <properties>
        <jsf.version>1.2.4</jsf.version>
    </properties>
</project>
