<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>
    <groupId>org.mockftpserver</groupId>
    <artifactId>MockFtpServer</artifactId>
    <name>MockFtpServer</name>
    <description>
        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
        code. Two FTP Server implementations are provided, each at a different level of abstraction.
        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
        then responds with appropriate replies and reply codes based on that configuration.
        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
        individual FTP server commands to return custom data or reply codes, allowing simulation of
        either success or failure scenarios. You can also verify expected command invocations.
    </description>
    <packaging>jar</packaging>
    <version>2.5</version>
    <url>http://mockftpserver.sourceforge.net/</url>

    <scm>
        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
        </developerConnection>
        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
    </scm>

    <dependencies>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.6</version>
        </dependency>

        <!-- TESTING ONLY -->

        <dependency>
          <groupId>org.codehaus.groovy</groupId>
          <artifactId>groovy-all</artifactId>
          <version>1.7.10</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>1.4.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>1.2_Java1.3</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>junit-addons</groupId>
            <artifactId>junit-addons</artifactId>
            <version>1.4</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
            <version>2.0.7</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.6</version>
            <scope>test</scope>
        </dependency>

        <!-- Transitive dependency.
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
        -->

    </dependencies>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>

            <plugin>
               <groupId>org.codehaus.gmaven</groupId>
               <artifactId>gmaven-plugin</artifactId>
               <version>1.3</version>
               <configuration>
                 <providerSelection>1.7</providerSelection>
               </configuration>
               <executions>
                 <execution>
                   <goals>
                       <goal>generateStubs</goal>
                       <goal>compile</goal>
                       <goal>generateTestStubs</goal>
                       <goal>testCompile</goal>
                      <!--if you want joint compilation, add stub generation goals here-->
                   </goals>
                 </execution>
               </executions>
               <dependencies>
                 <dependency>
                   <groupId>org.codehaus.gmaven.runtime</groupId>
                   <artifactId>gmaven-runtime-1.7</artifactId>
                   <version>1.3</version>
                   <exclusions>
                     <exclusion>
                       <groupId>org.codehaus.groovy</groupId>
                       <artifactId>groovy-all</artifactId>
                     </exclusion>
                   </exclusions>
                 </dependency>
                 <dependency>
                   <groupId>org.codehaus.groovy</groupId>
                   <artifactId>groovy-all</artifactId>
                   <version>1.7.10</version>
                 </dependency>
               </dependencies>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <verbose>true</verbose>
                    <source>1.4</source>
                    <target>1.4</target>
                    <fork>true</fork>
                </configuration>
            </plugin>

            <!-- clean coverage data before collecting -->
            <plugin>
                <artifactId>cobertura-maven-plugin</artifactId>
                <groupId>org.codehaus.mojo</groupId>
                <version>2.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

            <!--<plugin>-->
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <!--<artifactId>maven-source-plugin</artifactId>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<id>attach-sources</id>-->
                        <!--<phase>package</phase>-->
                        <!--<goals>-->
                            <!--<goal>jar</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                <!--</executions>-->
            <!--</plugin>-->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>src/assembly/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <preparationGoals>clean site assembly:assembly</preparationGoals>
                </configuration>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-site-plugin</artifactId>
              <version>2.1</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

    <reporting>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.2</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>dependencies</report>
                            <!-- <report>project-team</report> -->
                            <!-- <report>mailing-list</report> -->
                            <!-- <report>cim</report> -->
                            <!-- <report>issue-tracking</report> -->
                            <report>license</report>
                            <!-- <report>scm</report> -->
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
            </plugin>

        </plugins>
    </reporting>

    <developers>
        <developer>
            <id>chrismair</id>
            <name>Chris Mair</name>
            <email>chrismair@users.sourceforge.net</email>
            <url>https://sourceforge.net/users/chrismair</url>
            <roles>
                <role>developer</role>
            </roles>
            <timezone>-4</timezone>
        </developer>
    </developers>

    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

</project>