<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">

    <!--

        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.
    -->

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>15</version>
    </parent>

    <groupId>org.apache.sshd</groupId>
    <artifactId>sshd</artifactId>
    <version>1.6.0</version>
    <name>Apache Mina SSHD</name>
    <packaging>pom</packaging>
    <inceptionYear>2008</inceptionYear>

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

    <mailingLists>
        <mailingList>
            <name>Users mailing list</name>
            <subscribe>users-subscribe@mina.apache.org</subscribe>
            <unsubscribe>users-unsubscribe@mina.apache.org</unsubscribe>
            <post>users@mina.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/mina-users/</archive>
        </mailingList>
        <mailingList>
            <name>MINA Development mailing list</name>
            <subscribe>dev-subscribe@mina.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@mina.apache.org</unsubscribe>
            <post>dev@mina.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/mina-dev/</archive>
            <otherArchives>
                <otherArchive>http://www.nabble.com/Apache-MINA-f16868.html</otherArchive>
            </otherArchives>
        </mailingList>
        <mailingList>
            <name>MINA Commit mailing list</name>
            <subscribe>commits-subscribe@mina.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@mina.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/mina-commits/</archive>
        </mailingList>
    </mailingLists>

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

    <scm>
        <connection>scm:git:http://git-wip-us.apache.org/repos/asf/mina-sshd.git</connection>
        <developerConnection>scm:git:http://git-wip-us.apache.org/repos/asf/mina-sshd.git</developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=mina-sshd.git</url>
        <tag>sshd-1.6.0</tag>
    </scm>

    <properties>
        <projectRoot>${basedir}</projectRoot>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- NOTE: actual value updated by groovy-maven-plugin on initialization phase -->
        <!-- workspace.root.dir>${projects.basedir}</workspace.root.dir -->
        
        <java.major.version>1</java.major.version>
        <java.minor.version>8</java.minor.version>
        <sniffer.signatures.version>1.0</sniffer.signatures.version>
        <javac.source>${java.major.version}.${java.minor.version}</javac.source>
        <project.build.java.source>${javac.source}</project.build.java.source>
        <maven.compiler.source>${javac.source}</maven.compiler.source>
        <ant.version>1.9.7</ant.version>
        <ant.build.javac.source>${javac.source}</ant.build.javac.source>

        <javac.target>${javac.source}</javac.target>
        <project.build.java.target>${javac.target}</project.build.java.target>
        <maven.compiler.target>${javac.target}</maven.compiler.target>
        <ant.build.javac.target>${javac.target}</ant.build.javac.target>

        <min.required.maven.version>3.5.0</min.required.maven.version>
        <gmaven.plugin.version>2.0</gmaven.plugin.version>
        <groovy.major.version>2</groovy.major.version>
        <groovy.minor.version>4</groovy.minor.version>
        <groovy.release.version>11</groovy.release.version>
        <groovy.compliance.level>2.0</groovy.compliance.level>
        <groovy.version>${groovy.major.version}.${groovy.minor.version}.${groovy.release.version}</groovy.version>        

        <bouncycastle.version>1.57</bouncycastle.version>
        <slf4j.version>1.7.25</slf4j.version>
        <spring.version>4.3.8.RELEASE</spring.version>
        <jgit.version>4.7.0.201704051617-r</jgit.version>
        <junit.version>4.12</junit.version>
        <surefire.plugin.version>2.20</surefire.plugin.version>
        <!-- See https://pmd.github.io/ for available latest version -->
        <pmd.version>5.6.1</pmd.version>
        <httpcomps.version>4.4.1</httpcomps.version>
    </properties>

    <profiles>
        <profile>
            <id>quick</id>
            <properties>
                <skipTests>true</skipTests>
                <maven.javadoc.skip>true</maven.javadoc.skip>
            </properties>
        </profile>
        <profile>
            <id>findbugs</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <configuration>
                            <xmlOutput>true</xmlOutput>
                            <fork>false</fork>
                            <includeTests>true</includeTests>
                            <includeFilterFile>${workspace.root.dir}${file.separator}sshd-findbugs.xml</includeFilterFile>
                        </configuration>
                        <executions>
                            <execution>
                                <id>run-findbugs</id>
                                <!-- Note: phase must be AFTER detection of workspace root dir -->
                                <phase>compile</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>           
                </plugins>
            </build>
        </profile>
        <profile>
            <id>javac-errorprone</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <compilerId>javac-with-errorprone</compilerId>
                            <forceJavacCompilerUse>true</forceJavacCompilerUse>
                            <showWarnings>true</showWarnings>
                        </configuration>
                        <dependencies>
    	                    <dependency>
            	                <groupId>org.codehaus.plexus</groupId>
                                <artifactId>plexus-compiler-javac-errorprone</artifactId>
            	                <version>2.8.1</version>
            		        </dependency>
                		      <!-- override plexus-compiler-javac-errorprone's dependency on Error Prone with the latest version -->
                           <dependency>
                                <groupId>com.google.errorprone</groupId>
                                <artifactId>error_prone_core</artifactId>
                	            <version>2.0.15</version>
                            </dependency>
            		    </dependencies>
                    </plugin>
                 </plugins>
            </build>
        </profile>
    </profiles>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>2.0.16</version>
            </dependency>
            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>tomcat-apr</artifactId>
                <version>5.5.23</version>
            </dependency>
            
            <dependency>
                <groupId>net.i2p.crypto</groupId>
                <artifactId>eddsa</artifactId>
                <version>0.2.0</version>
            </dependency>

            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpg-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jdk14</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>0.1.54</version>
            </dependency>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jzlib</artifactId>
                <version>1.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-asm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
                <exclusions>
                    <exclusion>    <!-- we are using jcl-over-slf4j -->
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aop</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ant</groupId>
                        <artifactId>ant-nodeps</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ant</groupId>
                        <artifactId>ant-junit</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ant-contrib</groupId>
                        <artifactId>ant-contrib</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.10.19</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jpam</groupId>
                <artifactId>jpam</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
                <exclusions>
                    <exclusion>    <!-- we are using jcl-over-slf4j -->
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpcomps.version}</version>
                <exclusions>
                    <exclusion>    <!-- we are using jcl-over-slf4j -->
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcomps.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.ethz.ganymed</groupId>
                <artifactId>ganymed-ssh2</artifactId>
                <version>262</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jgit</groupId>
                <artifactId>org.eclipse.jgit</artifactId>
                <version>${jgit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jgit</groupId>
                <artifactId>org.eclipse.jgit.pgm</artifactId>
                <version>${jgit.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse 
                    m2e settings only and overcome integration problems.
                    It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-dependency-plugin</artifactId>
                                        <versionRange>[1.0,)</versionRange>
                                        <goals>
                                            <goal>copy</goal>
                                            <goal>copy-dependencies</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.gmaven</groupId>
                                        <artifactId>groovy-maven-plugin</artifactId>
                                        <versionRange>[1.0,)</versionRange>
                                        <goals>
                                            <goal>compile</goal>
                                            <goal>execute</goal>
                                            <goal>testCompile</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.rat</groupId>
                                        <artifactId>apache-rat-plugin</artifactId>
                                        <versionRange>[0.1,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-checkstyle-plugin</artifactId>
                                        <versionRange>[1.0,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.felix</groupId>
                                        <artifactId>maven-bundle-plugin</artifactId>
                                        <versionRange>[1.0,)</versionRange>
                                        <goals>
                                            <goal>manifest</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.12</version>
                    <configuration>
                        <excludes>
                            <exclude>**/*.iml</exclude>
                            <exclude>README.md</exclude>
                            <exclude>*pmd*</exclude>
                            <exclude>src/docs/**</exclude>
                            <exclude>src/test/resources/**</exclude>
                            <exclude>**/stty-output-*.txt</exclude>
                            <exclude>*checkstyle*</exclude>
                            <exclude>*findbugs*</exclude>
                            <exclude>**/big-msg.txt</exclude>
                                <!-- Eclipse files -->
                            <exclude>.metadata/**</exclude>
                            <exclude>.recommenders/**</exclude>
                            <exclude>RemoteSystemsTempFiles/**</exclude>
                            <exclude>.project</exclude>
                            <exclude>.classpath</exclude>
                            <exclude>.springBeans</exclude>
                            <exclude>.settings/**</exclude>
                            <exclude>LICENSE*</exclude>
                            <exclude>NOTICE*</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>animal-sniffer-maven-plugin</artifactId>
                    <version>1.15</version>
                    <configuration>
                        <signature>
                            <groupId>org.codehaus.mojo.signature</groupId>
                            <artifactId>java${java.major.version}${java.minor.version}</artifactId>
                            <version>${sniffer.signatures.version}</version>
                        </signature>
                    </configuration>
                        <!-- make sure the signatures artifact is downloaded -->
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.mojo.signature</groupId>
                            <artifactId>java${java.major.version}${java.minor.version}</artifactId>
                            <version>${sniffer.signatures.version}</version>
                            <type>pom</type>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>groovy-maven-plugin</artifactId>
                    <version>${gmaven.plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy-all</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                          <!-- referenced indirectly by groovy-all -->
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant</artifactId>
                            <version>${ant.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-launcher</artifactId>
                            <version>${ant.version}</version>
                        </dependency>
                        <dependency>    <!-- replace ant-junit artifact -->
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-junit4</artifactId>
                            <version>${ant.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>junit</groupId>
                            <artifactId>junit</artifactId>
                            <version>${junit.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>                
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <configuration>
                        <logViolationsToConsole>true</logViolationsToConsole>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <resourceExcludes>**/*.properties</resourceExcludes>
                    </configuration>
                    <dependencies>
                            <!-- see http://checkstyle.sourceforge.net/ for latest version -->
                            <!-- NOTE: when upgrading see if https://github.com/checkstyle/checkstyle/issues/4472 is solved -->
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>7.8.2</version>
                            <exclusions>
                                <!-- MCHECKSTYLE-156 -->
                                <exclusion>
                                    <groupId>com.sun</groupId>
                                    <artifactId>tools</artifactId>
                                </exclusion>
                                <exclusion>
                                    <groupId>commons-logging</groupId>
                                    <artifactId>commons-logging</artifactId>
                                </exclusion>                                
                            </exclusions>
                        </dependency>
                            <!-- Use same version as us -->
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>slf4j-api</artifactId>
                            <version>${slf4j.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>jcl-over-slf4j</artifactId>
                            <version>${slf4j.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>slf4j-log4j12</artifactId>
                            <version>${slf4j.version}</version>
                        </dependency>                        
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.4</version>
                        <!-- see https://www.petrikainulainen.net/programming/maven/findbugs-maven-plugin-tutorial/ -->
                    <configuration>
                        <effort>Max</effort>
                        <threshold>Low</threshold>
                        <xmlOutput>true</xmlOutput>
                        <findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.google.code.findbugs</groupId>
                            <artifactId>findbugs</artifactId>
                            <version>3.0.1</version>
                        </dependency>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy-ant</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy-xml</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                          <!-- referenced indirectly by groovy-all -->
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant</artifactId>
                            <version>${ant.version}</version>
                        </dependency>
                    </dependencies>                    
                </plugin>
                <plugin> 
                   <groupId>org.apache.maven.plugins</groupId> 
                   <artifactId>maven-pmd-plugin</artifactId> 
                   <version>3.8</version> 
                   <configuration> 
                       <targetJdk>${javac.target}</targetJdk> 
                       <printFailingErrors>true</printFailingErrors> 
                       <skipPmdError>false</skipPmdError> 
                       <excludeRoots> 
                           <excludeRoot>target/generated-sources/java</excludeRoot> 
                       </excludeRoots> 
                   </configuration> 
                   <dependencies> 
                       <dependency> 
                          <groupId>net.sourceforge.pmd</groupId> 
                          <artifactId>pmd-core</artifactId> 
                          <version>${pmd.version}</version> 
                       </dependency> 
                       <dependency> 
                          <groupId>net.sourceforge.pmd</groupId> 
                          <artifactId>pmd-java</artifactId> 
                          <version>${pmd.version}</version> 
                       </dependency> 
                   </dependencies> 
               </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>groovy-maven-plugin</artifactId>
                <executions>
                    <!-- Works only for Maven 3.x -->
                    <execution>
                        <id>detect-workspace-root-dir</id>
                        <!-- NOTE: phase must be BEFORE checkstyle plugin one -->
                        <phase>validate</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <source>
                                <![CDATA[
                                    for (java.io.File file = new java.io.File(new java.net.URI('${project.baseUri}')); file != null; file = file.getParentFile()) {
                                        if (!file.isDirectory()) {
                                            continue
                                        }

                                        java.io.File testFile = new java.io.File(file, 'LICENSE.txt')
                                        if (testFile.canRead()) {
                                            project.properties['workspace.root.dir'] = file.getAbsolutePath()
                                            // System.out.println("Workspace root dir: " + project.properties['workspace.root.dir'])
                                            return
                                        }
                                    }
                                    
                                    System.err.println("Failed to detect workspace root dir")
                                ]]>
                            </source>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <configLocation>${workspace.root.dir}${file.separator}sshd-checkstyle.xml</configLocation>
                    <headerLocation>${workspace.root.dir}${file.separator}java-checkstyle-license-header.txt</headerLocation>
                </configuration>
                <executions>
                    <execution>
                        <id>verify-style</id>
                        <!-- Note: phase must be AFTER detection of workspace root dir -->
                        <phase>initialize</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin> 
               <!-- to disable - mvn [commands...] -Dpmd.skip --> 
               <groupId>org.apache.maven.plugins</groupId> 
               <artifactId>maven-pmd-plugin</artifactId> 
               <configuration> 
                   <rulesets> 
                       <ruleset>${workspace.root.dir}${file.separator}sshd-pmd-ruleset.xml</ruleset>
                   </rulesets> 
                   <includeTests>true</includeTests>
               </configuration> 
               <executions> 
                   <execution> 
                       <id>pmd-checker</id> 
                       <!-- Note: phase must be AFTER detection of workspace root dir --> 
                       <phase>verify</phase> 
                       <goals> 
                           <goal>check</goal> 
                       </goals> 
                   </execution> 
               </executions> 
           </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>animal-sniffer-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>check-java-api</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.4.1</version>
                <executions>
                    <execution>
                        <id>enforce-versions</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <rules>
                        <requireMavenVersion>
                            <version>[${min.required.maven.version},)</version>
                        </requireMavenVersion>
                        <requireJavaVersion>
                            <version>[${javac.target},)</version>
                        </requireJavaVersion>
                    </rules>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>${javac.source}</source>
                    <target>${javac.target}</target>
                    <compilerArgument>-g</compilerArgument>
                        <!-- see http://www.javaworld.com/article/2073587/javac-s(dashdash)xlint-options.html -->
                    <compilerArgument>-Xlint:-serial</compilerArgument>
                    <compilerArgument>-Xlint:unchecked</compilerArgument>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                    <execution>
                        <id>install</id>
                        <phase>install</phase>
                        <goals>    <!-- automatically download the dependency sources - useful for debugging -->
                            <goal>sources</goal>
                        </goals>
                        <configuration>
                            <markersDirectory>${settings.localRepository}/org/apache/sshd/dependency-maven-plugin-markers</markersDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                            </resourceBundles>
                            <supplementalModels>
                                <supplementalModel>${projectRoot}/src/legal/notices.xml</supplementalModel>
                            </supplementalModels>
                            <properties>
                                <projectName>Apache MINA SSHD</projectName>
                                <addLicense>true</addLicense>
                                <addArtifact>true</addArtifact>
                            </properties>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <executions>
                    <execution>
                        <id>check-apache-license-header</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>source-release-assembly</id>
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>3.2.0</version>
                <inherited>true</inherited>
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                        <configuration>
                            <instructions>
                                <Export-Package>*;-noimport:=true</Export-Package>
                            </instructions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
                <inherited>true</inherited>
                <configuration>
                    <archive>
                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.plugin.version}</version>
                <configuration>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                    <runOrder>alphabetical</runOrder>
                    <forkCount>1</forkCount>
                    <reuseForks>true</reuseForks>
                        <!-- avoid inherent multi-threaded tests -->
                    <perCoreThreadCount>false</perCoreThreadCount>
                    <threadCount>1</threadCount>
                    <systemPropertyVariables>
                        <!-- java.io.tmpdir>${project.build.directory}${file.separator}temp</java.io.tmpdir -->
                        <java.awt.headless>true</java.awt.headless>
                        <org.slf4j.simpleLogger.logFile>System.out</org.slf4j.simpleLogger.logFile>
                    </systemPropertyVariables>
                </configuration>
                <dependencies>
                    <!-- make sure using OUR version -->
                    <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                        <version>${junit.version}</version>
                    </dependency>

                    <!-- need to include it to ensure grouping detection -->
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>${surefire.plugin.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
                <!-- Automatically remove artifacts from local repository on clean -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.12</version>
                 <executions>
                      <execution>
                        <id>remove-previous-artifact</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>remove-project-artifact</goal>
                        </goals>
                        <configuration>
                            <removeAll>false</removeAll>
                        </configuration>
                      </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <repository>
            <id>dummy</id>
            <name>Dummy to avoid accidental deploys</name>
            <url />
        </repository>
    </distributionManagement>

    <reporting> 
       <plugins> 
           <plugin>    <!-- used by PMD to create a source XREF --> 
               <groupId>org.apache.maven.plugins</groupId> 
               <artifactId>maven-jxr-plugin</artifactId> 
               <version>2.5</version> 
           </plugin> 
       </plugins> 
    </reporting>

    <modules>
        <module>sshd-core</module>
        <module>sshd-ldap</module>
        <module>sshd-git</module>
        <module>sshd-contrib</module>
        <module>sshd-spring-sftp</module>
        <module>assembly</module>
    </modules>
</project>
