<?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>

    <packaging>pom</packaging>

    <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
    <artifactId>examples-project</artifactId>

    <name>MyFaces Extensions-Validator examples project</name>
    <version>1.2.1-SNAPSHOT</version>

    <parent>
        <groupId>org.apache.myfaces.extensions.validator</groupId>
        <artifactId>myfaces-extval-parent</artifactId>
        <version>1.2.1-SNAPSHOT</version>
    </parent>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/examples/</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/examples/</developerConnection>
        <url>http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/examples/</url>
    </scm>
    
    <build>
        <plugins>
            <plugin>
                <!--This plugin allows to run the example using mvn jetty:run -->
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.8</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <modules>
        <module>hello_world</module>
        <module>feature-set_01</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>
        <trinidad.version>1.2.9</trinidad.version>
    </properties>

</project>
