<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.1.2-SNAPSHOT</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>HEAD</tag>
    </scm>

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

        <java.major.version>1</java.major.version>
        <java.minor.version>7</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.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.0</min.required.maven.version>

        <bouncycastle.version>1.53</bouncycastle.version>
        <slf4j.version>1.7.13</slf4j.version>
        <spring.version>3.0.6.RELEASE</spring.version>
        <jgit.version>3.4.1.201406201815-r</jgit.version>
        <junit.version>4.12</junit.version>
        <surefire.plugin.version>2.19.1</surefire.plugin.version>
        <httpcomps.version>4.4.1</httpcomps.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>2.0.10</version>
            </dependency>
            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>tomcat-apr</artifactId>
                <version>5.5.23</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.53</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>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </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>gmaven-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>
                                        <execute />
                                    </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.11</version>
					<configuration>
						<excludes>
							<exclude>**/*.iml</exclude>
							<exclude>src/docs/**</exclude>
							<exclude>src/test/resources/**</exclude>
							<exclude>**/stty-output-*.txt</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>
						</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>animal-sniffer-maven-plugin</artifactId>
					<version>1.14</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.1</version>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.3</version>
                </plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>2.17</version>
					<configuration>
						<logViolationsToConsole>true</logViolationsToConsole>
						<resourceExcludes>**/*.properties</resourceExcludes>
						<checkstyleRules>
							<module name="Checker">
								<!-- Checks whether files end with a new line.                        -->
								<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
								<!--
									<module name="NewlineAtEndOfFile" />
								-->

								<!-- Checks that property files contain the same keys.         -->
								<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
								<module name="Translation" />

								<!--<module name="StrictDuplicateCode" />-->

								<module name="TreeWalker">
									<!-- Enable FileContentsHolder to allow us to in turn turn on suppression comments -->
								<module name="FileContentsHolder" />
									<!-- Checks for Javadoc comments.                     -->
									<!-- See http://checkstyle.sf.net/config_javadoc.html -->
									<!--
										<module name="PackageHtml" />
										<module name="JavadocMethod" />
										<module name="JavadocType" />
										<module name="JavadocVariable" />
										<module name="JavadocStyle" />
									-->

									<!-- Check annotations conventions -->
									<!-- See http://checkstyle.sourceforge.net/config_annotation.html -->
								<module name="MissingOverride" />
								<module name="MissingDeprecated" />
								<module name="AnnotationLocation">
									<property name="allowSamelineMultipleAnnotations" value="false" />
									<property name="allowSamelineSingleParameterlessAnnotation" value="false" />
									<property name="allowSamelineParameterizedAnnotation" value="false" />
								</module>

									<!-- Checks for Naming Conventions.                  -->
									<!-- See http://checkstyle.sf.net/config_naming.html -->
								<module name="ConstantName" />
								<module name="LocalFinalVariableName" />
								<module name="LocalVariableName">
									<property name="format" value="^[a-z][a-zA-Z0-9_]*$" />
								</module>
								<module name="MemberName">
									<property name="format" value="^[a-z][a-zA-Z0-9_]*$" />
								</module>
								<module name="MethodName" />
								<module name="PackageName" />
								<module name="ParameterName">
									<property name="format" value="^[a-z][a-zA-Z0-9_]*$" />
								</module>
								<module name="StaticVariableName" />
								<module name="TypeName" />

									<!-- Checks for imports                              -->
									<!-- See http://checkstyle.sf.net/config_import.html -->
								<module name="AvoidStarImport" />
								<module name="IllegalImport" /><!-- defaults to sun.* packages -->
								<module name="RedundantImport" />
								<module name="UnusedImports" />
								<module name="ImportOrder">
									<property name="groups" value="java,javax,org.w3c,org.xml,junit,antlr,com.,net,org,*" />
									<property name="ordered" value="true" />
								</module>
								
									<!--
										<module name="ImportControl">
											<property name="file" value="etc/import-control.xml" />
										</module>
									-->

									<!-- Checks for Size Violations.                    -->
									<!-- See http://checkstyle.sf.net/config_sizes.html -->
								<module name="AnonInnerLength">
									<property name="max" value="50" />
								</module>
								<module name="ExecutableStatementCount">
									<property name="max" value="100" />
								</module>
								<module name="LineLength">
									<property name="max" value="180" />
								</module>
								<module name="MethodLength">
									<property name="max" value="150" />
									<property name="countEmpty" value="false" />
								</module>
								
								<!-- DISABLED
									<module name="ParameterNumber">
										<property name="max" value="7" />
									</module>
								-->

									<!-- Checks for whitespace                               -->
									<!-- See http://checkstyle.sf.net/config_whitespace.html -->
								<module name="EmptyForIteratorPad" />
								<module name="EmptyForInitializerPad" />
								<module name="MethodParamPad" />
								<module name="NoWhitespaceAfter">
									<property name="tokens" value="ARRAY_INIT,BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS" />
								</module>
								<module name="NoWhitespaceBefore" />
								<module name="OperatorWrap" />
								<module name="ParenPad" />
								<module name="TypecastParenPad" />
								<module name="WhitespaceAfter">
									<property name="tokens" value="COMMA, SEMI" />
								</module>
								<module name="WhitespaceAround">
									<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,TYPE_EXTENSION_AND" />
								</module>

									<!-- Modifier Checks                                    -->
									<!-- See http://checkstyle.sf.net/config_modifiers.html -->
								<module name="ModifierOrder" />
								<module name="RedundantModifier" />

									<!-- Checks for blocks. You know, those {}'s         -->
									<!-- See http://checkstyle.sf.net/config_blocks.html -->
								<module name="AvoidNestedBlocks">
									<property name="allowInSwitchCase" value="true" />
								</module>
								<module name="EmptyBlock">
									<property name="option" value="text" />
								</module>
								<module name="LeftCurly" />
								<module name="NeedBraces" />
								<module name="RightCurly" />
								<module name="EmptyCatchBlock">
									<property name="exceptionVariableName" value="expected|ignore" />
								</module>

									<!-- Checks for common coding problems               -->
									<!-- See http://checkstyle.sf.net/config_coding.html -->
								<!--<module name="ArrayTrailingComma" />-->
								<!--<module name="AvoidInlineConditionals" />-->
								<module name="CovariantEquals" />
								<module name="EmptyStatement" />
								<module name="EqualsHashCode" />
								<!--<module name="FinalLocalVariable" />-->
								<!-- DISABLED
									<module name="HiddenField">
										<property name="ignoreConstructorParameter" value="true" />
										<property name="ignoreSetter" value="true" />
									</module>
								-->
								<module name="IllegalInstantiation" />
								<!--<module name="IllegalToken" />-->
								<!--<module name="IllegalTokenText" />-->
								<module name="InnerAssignment" />
								<!--<module name="MagicNumber" />-->
								<module name="MissingSwitchDefault" />
								<!--module name="ModifiedControlVariable"/-->
								<module name="SimplifyBooleanExpression" />
								<module name="SimplifyBooleanReturn" />
								<module name="StringLiteralEquality" />
								<module name="NestedIfDepth">
									<property name="max" value="3" />
								</module>
								<module name="NestedTryDepth">
									<property name="max" value="3" />
								</module>
								<module name="SuperClone" />
								<module name="SuperFinalize" />
								<!--<module name="IllegalCatch" />-->
								<module name="IllegalThrows">
									<property name="illegalClassNames" value="java.lang.Error,java.lang.RuntimeException" />
								</module>
								<!--<module name="RedundantThrows" />-->
								<module name="PackageDeclaration" />
								<module name="ReturnCount">
									<property name="max" value="15" />
								</module>

								<module name="IllegalType">
									<property name="format" value="^xxx$" />
									<property name="illegalClassNames" value="java.util.GregorianCalendar, java.util.Hashtable, java.util.HashSet, java.util.HashMap, java.util.ArrayList, java.util.LinkedList, java.util.LinkedHashMap, java.util.LinkedHashSet, java.util.TreeSet, java.util.TreeMap" />
								</module>
								<module name="DeclarationOrder" />
								<!--<module name="ParameterAssignment" />-->
								<module name="ExplicitInitialization" />
								<module name="DefaultComesLast" />
								<!--<module name="MissingCtor" />-->
								<module name="FallThrough" />
								<!--<module name="MultipleStringLiterals" />-->
								<module name="MultipleVariableDeclarations" />
								<!--<module name="RequireThis" />-->
								<module name="UnnecessaryParentheses" />

									<!-- Checks for class design                         -->
									<!-- See http://checkstyle.sf.net/config_design.html -->
								<!--<module name="DesignForExtension" />-->
								<module name="FinalClass" />
								<module name="HideUtilityClassConstructor" />
								<module name="InterfaceIsType" />
								<!--<module name="MutableException" />-->
								<module name="ThrowsCount">
									<property name="max" value="5" />
								</module>
								<module name="VisibilityModifier">
									<property name="protectedAllowed" value="true" />
									<property name="packageAllowed" value="true" />
									<!-- this is needed for the resource injection unit tests.  It will removed
										  when private member inject is supported.
									 -->
									<property name="publicMemberPattern" value="resource[12].*" />
								</module>

									<!-- Metrics checks.                   -->
									<!-- See http://checkstyle.sf.net/config_metrics.html -->
								<module name="BooleanExpressionComplexity">
									<property name="max" value="10" />
								</module>
								<!--<module name="ClassDataAbstractionCoupling" />-->
								<!--<module name="ClassFanOutComplexity" />-->
								<!--<module name="CyclomaticComplexity" />-->
								<!--<module name="NPathComplexity" />-->
								<module name="JavaNCSS">
									<property name="methodMaximum" value="150" />
									<property name="classMaximum" value="2000" />
								</module>

									<!-- Miscellaneous other checks.                   -->
									<!-- See http://checkstyle.sf.net/config_misc.html -->
								<!--
									<module name="ArrayTypeStyle" />
									<module name="FinalParameters" />
								-->
								<!--
									<module name="GenericIllegalRegexp">
										<property name="format" value="\s+$" />
										<property name="message" value="Line has trailing spaces." />
									</module>
								-->
								<!-- DISABLED
									<module name="TodoComment">
										<property name="format" value="TODO" />
									</module>
								-->

								<module name="UpperEll" />

									<!--Assert statement may have side effects:-->
								<module name="DescendantToken">
									<property name="tokens" value="LITERAL_ASSERT" />
									<property name="limitedTokens" value="ASSIGN,DEC,INC,POST_DEC,POST_INC,PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,BSR_ASSIGN,SR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN" />
									<property name="maximumNumber" value="0" />
								</module>

									<!--<module name="UncommentedMain" />-->
									<!--module name="TrailingComment"/-->
								<module name="Indentation">
									<property name="caseIndent" value="4" />
									<property name="lineWrappingIndentation" value="0" />
								</module>
								<!--<module name="RequiredRegexp">-->
								<module name="SuppressWarningsHolder" />
							</module>
							<module name="SuppressionCommentFilter">
								<property name="offCommentFormat" value="CHECKSTYLE\:OFF" />
								<property name="onCommentFormat" value="CHECKSTYLE\:ON" />
							</module>
							<module name="SuppressionCommentFilter">
								<property name="offCommentFormat" value="CHECKSTYLE.OFF\:([\w\|]+)" />
								<property name="onCommentFormat" value="CHECKSTYLE.ON\:([\w\|]+)" />
								<property name="checkFormat" value="$1" />
							</module>
							<module name="SuppressWarningsFilter" />
								<!-- Header checks -->
								<module name="Header">
									<property name="header" value="/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * &amp;quot;License&amp;quot;); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n" />
								</module>
								<!-- <module name="RegexpHeader" /> -->
								<module name="FileLength">
									<property name="max" value="4096" />
								</module>
								<module name="FileTabCharacter">
									<property name="eachLine" value="true" />
								</module>
							</module>
						</checkstyleRules>
					</configuration>
					<dependencies>
							<!-- see http://checkstyle.sourceforge.net/ for latest version -->
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>6.11.2</version>
							<exclusions>
								<!-- MCHECKSTYLE-156 -->
								<exclusion>
									<groupId>com.sun</groupId>
									<artifactId>tools</artifactId>
								</exclusion>
							</exclusions>
						</dependency>
					</dependencies>
				</plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <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</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.3</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>
                <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>2.6</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>2.5.3</version>
                <inherited>true</inherited>
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</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.9.1</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>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>verify-style</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

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

    <profiles>
        <profile>
            <id>experimental</id>
            <modules>
                <module>sshd-pam</module>
                <module>sshd-sftp</module>
            </modules>
        </profile>
    </profiles>

    <modules>
        <module>sshd-core</module>
        <module>sshd-git</module>
        <module>assembly</module>
    </modules>

</project>
