<?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>
    <parent>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-parent</artifactId>
        <version>2.5.18-SNAPSHOT</version>
    </parent>

    <artifactId>struts2-plugins</artifactId>
    <packaging>pom</packaging>
    <name>Struts Plugins</name>

    <modules>
        <module>bean-validation</module>
        <module>cdi</module>
        <module>config-browser</module>
        <module>convention</module>
        <module>dwr</module>
        <module>embeddedjsp</module>
        <module>gxp</module>
        <module>jasperreports</module>
        <module>javatemplates</module>
        <module>jfreechart</module>
        <module>json</module>
        <module>junit</module>
        <module>osgi</module>
        <module>oval</module>
        <module>pell-multipart</module>
        <module>plexus</module>
        <module>portlet</module>
        <module>portlet-tiles</module>
        <module>rest</module>
        <module>sitegraph</module>
        <module>sitemesh</module>
        <module>spring</module>
        <module>testng</module>
        <module>tiles</module>
    </modules>

    <dependencies>

        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
        </dependency>

        <!-- Test dependencies -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <properties>
    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>
