<?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>jar</packaging>

    <groupId>org.apache.myfaces.extensions.validator.test-modules</groupId>
    <artifactId>myfaces-extval-property-validation-tests</artifactId>

    <name>MyFaces Extensions-Validator Property-Validation-Tests</name>
    <version>1.2.6-SNAPSHOT</version>

    <parent>
        <groupId>org.apache.myfaces.extensions.validator.test-modules</groupId>
        <artifactId>test-modules-project</artifactId>
        <version>1.2.6-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.apache.myfaces.extensions.validator.test-modules</groupId>
            <artifactId>myfaces-extval-base-test-infrastructure</artifactId>
            <version>1.2.6-SNAPSHOT</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.myfaces.extensions.validator.test-modules</groupId>
            <artifactId>myfaces-extval-core-tests</artifactId>
            <version>1.2.6-SNAPSHOT</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.myfaces.extensions.validator.validation-modules</groupId>
            <artifactId>myfaces-extval-property-validation</artifactId>
            <version>1.2.6-SNAPSHOT</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
