<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts-examples</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>
    <name>Struts 2 Examples</name>
    <description>
        This is the parent pom for the Struts 2 examples that
        go with the Struts 2 Getting Started series of tutorials.
    </description>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments/>
        </license>
    </licenses>

    <organization>
        <name>Apache Software Foundation</name>
        <url>http://www.apache.org</url>
    </organization>

    <scm>
        <connection>scm:git:git://git.apache.org/struts.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/struts-examples.git</developerConnection>
        <url>http://git.apache.org/struts-examples.git</url>
        <tag>HEAD</tag>
    </scm>

    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/WW</url>
    </issueManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <struts2.version>2.5.17</struts2.version>
        <log4j2.version>2.9.1</log4j2.version>
        <jetty-plugin.version>9.4.11.v20180605</jetty-plugin.version>
    </properties>

    <modules>
        <module>action-chaining</module>
        <module>annotations</module>
        <module>basic-struts</module>
        <module>bean-validation</module>
        <module>blank</module>
        <module>coding-actions</module>
        <module>control-tags</module>
        <module>crud</module>
        <module>debugging-struts</module>
        <module>exception-handling</module>
        <module>exclude-parameters</module>
        <module>file-upload</module>
        <module>form-processing</module>
        <module>form-tags</module>
        <module>form-validation</module>
        <module>form-xml-validation</module>
        <module>helloworld</module>
        <module>http-session</module>
        <module>interceptors</module>
        <module>json</module>
        <module>json-customize</module>
        <module>mailreader</module>
        <module>message-resource</module>
        <module>message-store</module>
        <module>portlet</module>
        <module>preparable-interface</module>
        <module>restful2actionmapper</module>
        <module>rest-angular</module>
        <module>shiro-basic</module>
        <module>spring-struts</module>
        <module>text-provider</module>
        <module>tiles</module>
        <module>themes</module>
        <module>themes-override</module>
        <module>type-conversion</module>
        <module>unit-testing</module>
        <module>using-tags</module>
        <module>validation-messages</module>
        <module>wildcard-method-selection</module>
        <module>wildcard-regex</module>
        <module>unknown-handler</module>
  </modules>

    <dependencies>

        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>${struts2.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <additionalparam>-Xdoclint:none</additionalparam>
                </configuration>
            </plugin>
        </plugins>

    </build>

    <repositories>
        <repository>
            <id>apache-public</id>
            <url>https://repository.apache.org/content/groups/public/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>apache-staging</id>
            <url>https://repository.apache.org/content/groups/staging/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>apache-snapshots</id>
            <url>https://repository.apache.org/content/groups/snapshots/</url>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>oss-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

</project>
