<?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>

    <groupId>org.apache.myfaces.extensions.validator</groupId>
    <artifactId>myfaces-extval-module</artifactId>
    <version>${build.version}</version>
    <packaging>pom</packaging>
    <name>Apache MyFaces Extensions-Validator Module</name>
    <url>http://myfaces.apache.org/extensions/validator11</url>
    
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/extensions/validator/branches/branch_for_jsf_1_0/</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/extensions/validator/branches/branch_for_jsf_1_0/</developerConnection>
        <url>http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_0/</url>
    </scm>    

    <!-- 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>core</module>
        <module>validation-modules</module>
        <module>component-support</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>

        <profile>
            <id>perform-release</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <modules>
                <module>assembly</module>
            </modules>
        </profile>
    </profiles>
    
    <properties>
        <build.version>1.0.1-SNAPSHOT</build.version>
        <jsf.version>1.1.5</jsf.version>
    </properties>
</project>
