<?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.
--><!--
	Maven release plugin requires the project tag to be on a single line.
--><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</groupId>
        <artifactId>apache</artifactId>
        <version>10</version>
        <relativePath />
    </parent>

    <groupId>org.apache.bval</groupId>
    <artifactId>bval-parent</artifactId>
    <name>Apache BVal :: bval-parent (Parent POM)</name>
    <packaging>pom</packaging>
    <version>0.4</version>

    <description>Apache BVal parent pom</description>

    <properties>
        <site.deploy.url>scp://people.apache.org/home/${user.name}/public_html/bval/${project.version}/staging-site</site.deploy.url>
    </properties>

    <inceptionYear>2010</inceptionYear>

    <url>http://bval.apache.org/</url>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/bval/tags/0.4</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/bval/tags/0.4</developerConnection>
        <url>http://svn.apache.org/repos/asf/bval/tags/0.4</url>
    </scm>

    <mailingLists>
        <mailingList>
            <name>BVal User List</name>
            <subscribe>user-subscribe@bval.apache.org</subscribe>
            <unsubscribe>user-unsubscribe@bval.apache.org</unsubscribe>
            <post>mailto:user@bval.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/bval-user/</archive>
        </mailingList>

        <mailingList>
            <name>BVal Developer List</name>
            <subscribe>dev-subscribe@bval.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@bval.apache.org</unsubscribe>
            <post>mailto:dev@bval.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/bval-dev/</archive>
        </mailingList>

        <mailingList>
            <name>BVal Commits List</name>
            <subscribe>commits-subscribe@bval.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@bval.apache.org</unsubscribe>
            <post>mailto:commits@bval.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/bval-commits/</archive>
        </mailingList>
    </mailingLists>

    <issueManagement>
        <url>https://issues.apache.org/jira/browse/BVAL</url>
    </issueManagement>

    <developers>
        <developer>
            <id>allee8285</id>
            <name>Albert Lee</name>
            <email>allee8285@apache.org</email>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>carlosvara</id>
            <name>Carlos Vara</name>
            <email>carlosvara@apache.org</email>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>djencks</id>
            <name>David Jencks</name>
            <email>djencks@apache.org</email>
            <organization>IBM</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>dwoods</id>
            <name>Donald Woods</name>
            <email>dwoods@apache.org</email>
            <organization>IBM</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>gpetracek</id>
            <name>Gerhard Petracek</name>
            <email>gpetracek@apache.org</email>
            <organization>IRIAN Solutions GmbH</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>jrbauer</id>
            <name>Jeremy Bauer</name>
            <email>jrbauer@apache.org</email>
            <organization>IBM</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>kevan</id>
            <name>Kevan Miller</name>
            <email>kevan@apache.org</email>
            <organization>IBM</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>lresende</id>
            <name>Luciano Resende</name>
            <email>lresende@apache.org</email>
            <organization>IBM</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>struberg</id>
            <name>Mark Struberg</name>
            <email>struberg@apache.org</email>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>mbenson</id>
            <name>Matt Benson</name>
            <email>mbenson@apache.org</email>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>matzew</id>
            <name>Matthias Wessendorf</name>
            <email>matzew@apache.org</email>
            <organization>Kaazing</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>mnour</id>
            <name>Mohammad Nour El-Din</name>
            <email>mnour@apache.org</email>
            <organization>Thebe Technology</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>romanstumm</id>
            <name>Roman Stumm</name>
            <email>romanstumm@apache.org</email>
            <organization>Viaboxx GmbH</organization>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
        <developer>
            <id>simonetripodi</id>
            <name>Simone Tripodi</name>
            <email>simonetripodi@apache.org</email>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>
    </developers>

    <distributionManagement>
        <site>
            <id>people.apache.org</id>
            <url>${site.deploy.url}</url>
        </site>
    </distributionManagement>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <show>package</show>
                    <quiet>true</quiet>
                    <source>1.5</source>
                    <links>
                        <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
                        <link>http://java.sun.com/javaee/6/docs/api</link>
                    </links>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>javadoc</report>
                            <report>test-javadoc</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jdepend-maven-plugin</artifactId>
                <version>2.0-beta-2</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>2.3.2</version>
            </plugin>
        </plugins>
    </reporting>

    <!--
        default versions for dependencies that child modules may include
    -->
    <dependencyManagement>
        <dependencies>
            <!-- Default of Apache Geronimo version of the Spec API -->
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-validation_1.0_spec</artifactId>
                <version>1.1</version>
            </dependency>
            <!-- Optional profile to use Spec RI API -->
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>1.0.0.GA</version>
            </dependency>
            <!-- JPA2 spec required for JPA TraversableResolver support -->
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jpa_2.0_spec</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.8.2</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>1.8.5</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils-core</artifactId>
                <version>1.8.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>1.3.1</version>
            </dependency>
            <!-- Optional - only used by bval-json -->
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.15</version>
            </dependency>
            <!-- Optional - only used by bval-guice -->
            <dependency>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
                <version>1</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>3.0-rc2</version>
            </dependency>
            <dependency>
                <groupId>aopalliance</groupId>
                <artifactId>aopalliance</artifactId>
                <version>1.0</version>
            </dependency>
            <!-- Added mainly for testing -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>1.6.1</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>1.6.1</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <defaultGoal>install</defaultGoal>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>

        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            </manifest>
                            <manifestEntries>
                                <Implementation-Build>${buildNumber}</Implementation-Build>
                                <Specification-Title>JSR-303 Bean Validation</Specification-Title>
                                <Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor>
                                <Specification-Version>1.0</Specification-Version>
                            </manifestEntries>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <additionalparam>${javadoc.additionalparam}</additionalparam>
                        <aggregate>true</aggregate>
                        <subpackages>org.apache</subpackages>
                        <verbose>false</verbose>
                        <maxmemory>512m</maxmemory>
                        <links>
                            <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
                            <link>http://java.sun.com/javaee/6/docs/api</link>
                        </links>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>process-remote-resources</id>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <configuration>
                                <resourceBundles>
                                    <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                                </resourceBundles>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jdepend-maven-plugin</artifactId>
                    <version>2.0-beta-2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>2.0.1</version>
                    <extensions>true</extensions>
                    <configuration>
                        <instructions>
                            <Implementation-Title>${project.name}</Implementation-Title>
                            <Implementation-Version>${project.version}</Implementation-Version>
                            <Bundle-DocURL>${project.url}</Bundle-DocURL>
                        </instructions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>ianal-maven-plugin</artifactId>
                    <version>1.0-alpha-1</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>verify-legal-files</goal>
                            </goals>
                            <configuration>
                                <!-- Fail the build if any artifacts are missing legal files -->
                                <strict>true</strict>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.7</version>
                    <executions>
                        <execution>
                            <phase>verify</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <excludeSubProjects>false</excludeSubProjects>
                        <numUnapprovedLicenses>0</numUnapprovedLicenses>
                        <excludes>
                            <!-- General informational files -->
                            <exclude>README.txt</exclude>
                            <exclude>CHANGES.txt</exclude>
                            <!-- generated content -->
                            <exclude>release.properties</exclude>
                            <exclude>DEPENDENCIES</exclude>
                            <exclude>**/.*/**</exclude>
                            <exclude>**/*.log</exclude>
                            <exclude>**/maven-eclipse.xml</exclude>
                            <exclude>**/rat.txt</exclude>
                            <exclude>**/target/**/*</exclude>
                            <exclude>**/*.iml</exclude>
                            <exclude>**/*.ipr</exclude>
                            <exclude>**/*.iws</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.2</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.plexus</groupId>
                            <artifactId>plexus-velocity</artifactId>
                            <version>1.1.3</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <!-- inherited from apache-10.pom, but need config updates -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <!-- avoid 2.2.2 due to http://jira.codehaus.org/browse/MRELEASE-742 -->
                    <version>2.2.1</version>
                    <configuration>
                        <useReleaseProfile>false</useReleaseProfile>
                        <goals>deploy site site-deploy</goals>
                        <arguments>-Papache-release</arguments>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <preparationGoals>clean install</preparationGoals>
                        <tagNameFormat>@{project.version}</tagNameFormat>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.12</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>2.12</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>2.3.2</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>1.0-beta-4</version>
                </plugin>
                <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-source-plugin</artifactId>
                  <version>2.1.1</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>[2.2.1,)</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>[1.5,)</version>
                                </requireJavaVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.7</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>ianal-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <configuration>
                    <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
                    <revisionOnScmFailure>offline</revisionOnScmFailure>
                </configuration>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-source-plugin</artifactId>
              <executions>
                <execution>
                  <id>attach-source</id>
                  <goals>
                    <goal>jar</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
            <!-- Don't include in all builds for now
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
            </plugin>
            -->
        </plugins>
    </build>

    <modules>
        <module>bval-core</module>
        <module>bval-xstream</module>
        <module>bval-jsr303</module>
        <module>bundle</module>
        <module>bval-json</module>
        <module>bval-guice</module>
        <module>bval-tck</module>
        <module>bval-extras</module>
  </modules>

</project>
