<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
  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</groupId>
    <artifactId>apache</artifactId>
    <version>18</version>
    <relativePath />
  </parent>

  <prerequisites>
    <maven>3.0.3</maven>
  </prerequisites>

  <organization>
    <name>Apache MINA Project</name>
    <url>http://mina.apache.org/</url>
  </organization>

  <groupId>org.apache.mina</groupId>
  <version>2.0.17</version>
  <artifactId>mina-parent</artifactId>
  <name>Apache MINA</name>
  <packaging>pom</packaging>

  <url>http://mina.apache.org/</url>
  <inceptionYear>2004</inceptionYear>

  <issueManagement>
    <system>jira</system>
    <url>http://issues.apache.org/jira/browse/DIRMINA</url>
  </issueManagement>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/mina.git</connection>
    <url>https://github.com/apache/mina/tree/2.0</url>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/mina.git</developerConnection>
    <tag>2.0.17</tag>
  </scm>

  <distributionManagement>
    <site>
      <id>apache.websites</id>
      <url>scp://people.apache.org/www/mina.apache.org/report/trunk/</url>
    </site>
  </distributionManagement>

  <ciManagement>
    <notifiers>
      <notifier>
        <type>mail</type>
        <address>dev@mina.apache.org</address>
      </notifier>
    </notifiers>
  </ciManagement>

  <description>Apache MINA is a network application framework which helps users develop high performance and highly scalable network applications easily.  It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.</description>

  <licenses>
    <license>
      <name>Apache 2.0 License</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <!-- Define the version for each of the used jar and maven plugins -->
  <properties>
    <arguments />

    <!-- Make Java 8 javadoc lint to shut the f*** up... -->
    <!-- additionalparam>-Xdoclint:none</additionalparam -->

    <!-- Maven Plugins -->
    <version.apache.rat.plugin>0.12</version.apache.rat.plugin>
    <version.api.plugin>3.5.2</version.api.plugin>
    <version.assembly.plugin>3.1.0</version.assembly.plugin>
    <version.build.helper.plugin>3.0.0</version.build.helper.plugin>
    <version.bundle.plugin>3.3.0</version.bundle.plugin>
    <version.changes.plugin>2.12.1</version.changes.plugin>
    <version.checkstyle.plugin>2.17</version.checkstyle.plugin>
    <version.clean.plugin>3.0.0</version.clean.plugin>
    <version.clirr.plugin>2.8</version.clirr.plugin>
    <version.cobertura.plugin>2.7</version.cobertura.plugin>
    <version.compiler.plugin>3.7.0</version.compiler.plugin>
    <version.dashboard.plugin>1.0.0-beta-1</version.dashboard.plugin>
    <version.dependency.plugin>3.0.2</version.dependency.plugin>
    <version.deploy.plugin>2.8.2</version.deploy.plugin>
    <version.docck.plugin>1.1</version.docck.plugin>
    <version.eclipse.plugin>2.10</version.eclipse.plugin>
    <version.enforcer.plugin>3.0.0-M1</version.enforcer.plugin>
    <version.findbugs.plugin>3.0.5</version.findbugs.plugin>
    <version.gpg.plugin>1.6</version.gpg.plugin>
    <version.install.plugin>2.5.2</version.install.plugin>
    <version.jar.plugin>3.0.2</version.jar.plugin>
    <version.javancss.plugin>2.1</version.javancss.plugin>
    <version.javadoc.plugin>3.0.0-M1</version.javadoc.plugin>
    <version.jdepend.plugin>2.0</version.jdepend.plugin>
    <version.jxr.plugin>2.5</version.jxr.plugin>
    <version.model.plugin>3.5.2</version.model.plugin>
    <version.plexus.utils>3.1.0</version.plexus.utils>
    <version.plugin.plugin>3.5</version.plugin.plugin>
    <version.pmd.plugin>3.8</version.pmd.plugin>
    <version.project.plugin>3.0-alpha-2</version.project.plugin>
    <version.project.info.report.plugin>2.9</version.project.info.report.plugin>
    <version.rat.maven.plugin>1.0-alpha-3</version.rat.maven.plugin>
    <version.release.plugin>2.5.3</version.release.plugin>
    <version.remote.resources.plugin>1.5</version.remote.resources.plugin>
    <version.resources.plugin>3.0.2</version.resources.plugin>
    <version.scm.plugin>1.9.5</version.scm.plugin>
    <version.site.plugin>3.6</version.site.plugin>
    <version.source.plugin>3.0.1</version.source.plugin>
    <version.shade.plugin>3.1.0</version.shade.plugin>
    <version.surefire.plugin>2.20.1</version.surefire.plugin>
    <version.surfire.report.plugin>2.20.1</version.surfire.report.plugin>
    <version.taglist.plugin>2.4</version.taglist.plugin>
    <version.tools.maven.plugin>1.4</version.tools.maven.plugin>
    <version.versions.plugin>2.5</version.versions.plugin>
    <version.xbean.plugin>4.6</version.xbean.plugin>

    <!-- Jars -->
    <version.easymock>2.5.2</version.easymock>
    <version.jboss.javassist>3.8.0.GA</version.jboss.javassist>
    <version.jdom>1.0</version.jdom>
    <version.jmock>1.2.0</version.jmock>
    <version.junit>4.12</version.junit>
    <version.jzlib>1.1.3</version.jzlib>
    <version.log4j>1.2.17</version.log4j>
    <version.ognl>3.2.4</version.ognl>
    <version.pmd>4.3</version.pmd>
    <version.rmock>2.0.2</version.rmock>
    <version.slf4j.api>1.7.25</version.slf4j.api>
    <version.slf4j.log4j12>1.7.25</version.slf4j.log4j12>
    <version.slf4j.jcl.over.slf4j>1.7.25</version.slf4j.jcl.over.slf4j>
    <version.springframework>2.5.6.SEC03</version.springframework>
    <version.tomcat.jni>9.0.5</version.tomcat.jni>
    <version.xbean.spring>4.6</version.xbean.spring>

    <!-- OSGi minimum versions -->
    <osgi-min-version.slf4j.api>1.7</osgi-min-version.slf4j.api>
  </properties>

  <modules>
    <module>mina-legal</module>
    <module>mina-core</module>
    <module>mina-transport-apr</module>
    <module>mina-filter-compression</module>
    <module>mina-statemachine</module>
    <module>mina-integration-beans</module>
    <module>mina-integration-xbean</module>
    <module>mina-integration-ognl</module>
    <module>mina-integration-jmx</module>
    <module>mina-example</module>
    <module>mina-http</module>
    <!--module>mina-benchmarks</module-->
  </modules>

  <!-- =========================================== -->
  <!-- The dependencies for all the projects       -->
  <!-- =========================================== -->
  <dependencyManagement>
    <dependencies>
      <!-- Submodules -->
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-core</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-transport-apr</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-filter-compression</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-integration-beans</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-integration-ognl</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-integration-jmx</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>mina-statemachine</artifactId>
        <version>${project.version}</version>
        <type>bundle</type>
      </dependency>

      <!-- Transport -->
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jni</artifactId>
        <version>${version.tomcat.jni}</version>
      </dependency>

      <!-- Filter -->
      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jzlib</artifactId>
        <version>${version.jzlib}</version>
      </dependency>

      <!-- Integration -->

      <dependency>
        <groupId>org.apache.xbean</groupId>
        <artifactId>xbean-spring</artifactId>
        <version>${version.xbean.spring}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring</artifactId>
        <version>${version.springframework}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>ognl</groupId>
        <artifactId>ognl</artifactId>
        <version>${version.ognl}</version>
      </dependency>

      <dependency>
        <groupId>jboss</groupId>
        <artifactId>javassist</artifactId>
        <version>${version.jboss.javassist}</version>
      </dependency>

      <dependency>
        <groupId>jdom</groupId>
        <artifactId>jdom</artifactId>
        <version>${version.jdom}</version>
        <optional>true</optional>
      </dependency>

      <dependency>
        <groupId>jmock</groupId>
        <artifactId>jmock</artifactId>
        <version>${version.jmock}</version>
        <optional>true</optional>
      </dependency>

      <dependency>
        <groupId>pmd</groupId>
        <artifactId>pmd</artifactId>
        <version>${version.pmd}</version>
      </dependency>

      <!-- Logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${version.slf4j.api}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${version.slf4j.jcl.over.slf4j}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${version.slf4j.log4j12}</version>
      </dependency>

      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${version.log4j}</version>
      </dependency>

      <!-- Testing -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${version.junit}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>${version.easymock}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>com.agical.rmock</groupId>
        <artifactId>rmock</artifactId>
        <version>${version.rmock}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- ==================================== -->
  <!-- Common dependencies for all projects -->
  <!-- ==================================== -->
  <dependencies>
    <!-- common logging interface -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>

    <!-- logging implementation used for unit tests -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>serial</id>
      <activation>
        <property>
          <name>with-LGPL-dependencies</name>
        </property>
      </activation>
      <modules>
        <module>mina-transport-serial</module>
      </modules>
    </profile>

    <profile>
      <id>apache-release</id>

      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <phase>install</phase>

                <goals>
                  <goal>javadoc</goal>
                </goals>
                <configuration>
                  <aggregate>true</aggregate>
                  <!-- additionalparam>-Xdoclint:none</additionalparam -->
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      
      <modules>
        <module>distribution</module>
      </modules>
    </profile>

  </profiles>
  
  <build>
    <!-- =======================  WARNING ========================== -->
    <!-- Only put pluginManagement info in this pom for plugins      -->
    <!-- shared among shared, apacheds, and studio subprojects       -->
    <!-- dependencyManagement is likely to change too quickly to be  -->
    <!-- useful in this pom                                          -->
    <!-- =======================  WARNING ========================== -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${version.assembly.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changes-plugin</artifactId>
          <version>${version.changes.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${version.checkstyle.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${version.clean.plugin}</version>
        </plugin>


        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${version.compiler.plugin}</version>
          <configuration>
            <source>1.7</source>
            <target>1.7</target>
            <optimize>true</optimize>
            <showDeprecations>true</showDeprecations>
            <encoding>ISO-8859-1</encoding>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${version.dependency.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${version.deploy.plugin}</version>
          <inherited>true</inherited>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-docck-plugin</artifactId>
          <version>${version.docck.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>${version.eclipse.plugin}</version>
          <inherited>true</inherited>
          <configuration>
            <downloadSources>true</downloadSources>
            <downloadJavadocs>true</downloadJavadocs>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${version.enforcer.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${version.gpg.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${version.install.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${version.jar.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${version.javadoc.plugin}</version>
          <configuration>
            <tags>
              <tag>
                <name>org.apache.xbean.XBean</name>
                <placement>t</placement>
                <head />
              </tag>
              <tag>
                <name>org.apache.xbean.Property</name>
                <placement>m</placement>
                <head />
              </tag>
              <tag>
                <name>org.apache.xbean.FactoryMethod</name>
                <placement>m</placement>
                <head />
              </tag>
              <tag>
                <name>org.apache.xbean.DestroyMethod</name>
                <placement>m</placement>
                <head />
              </tag>
            </tags>
            <!-- additionalparam>-Xdoclint:none</additionalparam -->
         </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${version.jxr.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${version.plugin.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${version.pmd.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${version.project.info.report.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${version.release.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>${version.remote.resources.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${version.resources.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-plugin</artifactId>
          <version>${version.scm.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${version.site.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${version.source.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${version.surfire.report.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${version.surefire.plugin}</version>
          <configuration>
            <argLine>-Xmx1024m</argLine>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${version.bundle.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.geronimo.genesis.plugins</groupId>
          <artifactId>tools-maven-plugin</artifactId>
          <version>${version.tools.maven.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>${version.apache.rat.plugin}</version>
          <inherited>true</inherited>
          <configuration>
            <excludeSubProjects>false</excludeSubProjects>
            <excludes>
              <!-- project excludes -->
              <exclude>**/resources/svn_ignore.txt</exclude>
              <exclude>**/resources/Reveal in Finder.launch</exclude>
              <exclude>**/target/**</exclude>
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>**/LICENSE.*</exclude>
              <exclude>**/NOTICE-bin.txt</exclude>
              <exclude>**/resources/**</exclude>
            </excludes>
          </configuration>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.xbean</groupId>
          <artifactId>maven-xbean-plugin</artifactId>
          <version>${version.xbean.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${version.build.helper.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>${version.clirr.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>${version.cobertura.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>dashboard-maven-plugin</artifactId>
          <version>${version.dashboard.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${version.findbugs.plugin}</version>
          <configuration>
            <xmlOutput>false</xmlOutput>
            <!--
              <xmlOutput>true|false</xmlOutput>
              <xmlOutputDirectory>directory location of xml findbugs report</xmlOutputDirectory>
              <threshold>High|Normal|Low|Exp|Ignore</threshold>
              <effort>Min|Default|Max</effort>
              <excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
              <includeFilterFile>findbugs-include.xml</includeFilterFile>
              <visitors>FindDeadLocalStores,UnreadFields</visitors>
              <omitVisitors>FindDeadLocalStores,UnreadFields</omitVisitors>
              <onlyAnalyze>org.codehaus.mojo.findbugs.*</onlyAnalyze>
              <pluginList>/libs/fb-contrib/fb-contrib-2.8.0.jar</pluginList>
              <debug>true|false</debug>
              <relaxed>true|false</relaxed>
            -->
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>javancss-maven-plugin</artifactId>
          <version>${version.javancss.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jdepend-maven-plugin</artifactId>
          <version>${version.jdepend.plugin}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>${version.taglist.plugin}</version>
          <configuration>
            <tags>
              <tag>TODO</tag>
              <tag>@todo</tag>
              <tag>@deprecated</tag>
              <tag>FIXME</tag>
            </tags>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${version.versions.plugin}</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${version.compiler.plugin}</version>
        <configuration>
          <encoding>UTF-8</encoding>
          <source>1.7</source>
          <target>1.7</target>
          <debug>true</debug>
          <optimize>true</optimize>
          <showDeprecations>true</showDeprecations>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${version.surefire.plugin}</version>
      </plugin>

      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>${version.source.plugin}</version>
        <executions>
          <execution>
            <id>attach-source</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <tagBase>
            https://svn.apache.org/repos/asf/mina/mina/tags
          </tagBase>
          <preparationGoals>clean install</preparationGoals>
          <goals>clean deploy</goals>
          <mavenExecutorId>forked-path</mavenExecutorId>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <tagNameFormat>@{project.version}</tagNameFormat>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${version.bundle.plugin}</version>
        <inherited>true</inherited>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>${symbolicName}</Bundle-SymbolicName>
            <Export-Package>${exportedPackage}.*;version=${project.version}</Export-Package>
          </instructions>
        </configuration>
      </plugin>
    
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <dependencies>
          <!-- Add support for 'scp'/'sftp' -->
          <dependency>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>3.0.0</version>
          </dependency>

          <!-- Add support for 'scpexe' -->
          <dependency>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh-external</artifactId>
            <version>3.0.0</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${version.javadoc.plugin}</version>
        <inherited>false</inherited>
        <configuration>
          <aggregate>true</aggregate>
          <breakiterator>true</breakiterator>
          <charset>UTF-8</charset>
          <docencoding>UTF-8</docencoding>
          <windowtitle>Apache MINA ${project.version} API Documentation</windowtitle>
          <doctitle>Apache MINA ${project.version} API Documentation</doctitle>
          <encoding>UTF-8</encoding>
          <excludePackageNames>*.example.*</excludePackageNames>
          <links>
            <link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
            <link>http://www.slf4j.org/api/</link>
            <link>http://static.springframework.org/spring/docs/2.0.x/api/</link>
            <link>http://dcl.mathcs.emory.edu/util/backport-util-concurrent/doc/api/</link>
          </links>
          <locale>en_US</locale>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>${version.jxr.plugin}</version>
        <inherited>false</inherited>
        <configuration>
          <aggregate>true</aggregate>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
          <windowTitle>Apache MINA ${project.version} Cross Reference</windowTitle>
          <docTitle>Apache MINA ${project.version} Cross Reference</docTitle>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rat-maven-plugin</artifactId>
        <version>${version.rat.maven.plugin}</version>
        <configuration>
          <excludes>
            <exclude>**/target/**/*</exclude>
            <exclude>**/.*</exclude>
            <exclude>**/NOTICE.txt</exclude>
            <exclude>**/LICENSE*.txt</exclude>
          </excludes>
          <excludeSubProjects>false</excludeSubProjects>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>

