<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<parent>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-parent</artifactId>
		<version>14</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<groupId>commons-net</groupId>
	<artifactId>commons-net</artifactId>
	<version>2.1-SNAPSHOT</version>
	<name>Commons Net</name>
	<description>
		A collection of network utilities and protocol implementations.
	</description>
	<url>http://commons.apache.org/net/</url>
	<issueManagement>
		<system>jira</system>
		<url>http://issues.apache.org/jira/browse/NET</url>
	</issueManagement>
	<inceptionYear>2001</inceptionYear>
	<scm>
		<connection>scm:svn:http://svn.apache.org/repos/asf/commons/proper/net/tags/commons-net-2.1</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/proper/net/tags/commons-net-2.1</developerConnection>
		<url>http://svn.apache.org/viewvc/commons/proper/net/tags/commons-net-2.1</url>
	</scm>

	<developers>
		<developer>
			<name>Jeffrey D. Brekke</name>
			<id>brekke</id>
			<email>Jeff.Brekke@qg.com</email>
			<organization>Quad/Graphics, Inc.</organization>
		</developer>
		<developer>
			<name>Steve Cohen</name>
			<id>scohen</id>
			<email>scohen@apache.org</email>
			<organization>javactivity.org</organization>
		</developer>
		<developer>
			<name>Bruno D'Avanzo</name>
			<id>brudav</id>
			<email>bruno.davanzo@hp.com</email>
			<organization>Hewlett-Packard</organization>
		</developer>
		<developer>
			<name>Daniel F. Savarese</name>
			<id>dfs</id>
			<email>dfs@apache.org</email>
			<organization>
				&lt;a href="http://www.savarese.com/"&gt;Savarese Software Research&lt;/a&gt;
			</organization>
		</developer>
		<developer>
			<name>Rory Winston</name>
			<id>rwinston</id>
			<email>rwinston@apache.org</email>
			<organization />
		</developer>
	</developers>

	<contributors>
		<contributor>
			<name>Rob Hasselbaum</name>
			<email>rhasselbaum@alumni.ithaca.edu</email>
		</contributor>
		<contributor>
			<name>Mario Ivankovits</name>
			<email>mario@ops.co.at</email>
		</contributor>
		<contributor>
			<name>Tapan Karecha</name>
			<email>tapan@india.hp.com</email>
		</contributor>
		<contributor>
			<name>Winston Ojeda</name>
			<email>Winston.Ojeda@qg.com</email>
			<organization>Quad/Graphics, Inc.</organization>
		</contributor>
		<contributor>
			<name>Ted Wise</name>
			<email>ctwise@bellsouth.net</email>
		</contributor>
	</contributors>

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

	<properties>
		<maven.compile.source>1.5</maven.compile.source>
		<maven.compile.target>1.5</maven.compile.target>
		<commons.componentid>net</commons.componentid>
		<commons.deployment.protocol>scpexe</commons.deployment.protocol>
		<commons.release.version>2.1</commons.release.version>
		<commons.rc.version>RC4</commons.rc.version>
		<commons.binary.suffix />
		<commons.release.2.version>1.4.1</commons.release.2.version>
		<commons.release.2.binary.suffix />
		<commons.jira.id>NET</commons.jira.id>
		<commons.jira.pid>12310487</commons.jira.pid>
	</properties> 

	<build>
		<plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>**/examples/**/*.java</exclude>
					</excludes>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>**/*FunctionalTest.java</exclude>
						<exclude>**/*POP3*.java</exclude>
					</excludes>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<descriptors>
						<descriptor>src/assembly/bin.xml</descriptor>
						<descriptor>src/assembly/src.xml</descriptor>
					</descriptors>
					<tarLongFileMode>gnu</tarLongFileMode>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<phase>package</phase>
						<configuration>
							<tasks>
								<jar destfile="target/commons-net-ftp-${version}.jar">
									<fileset dir="target/classes" includes="org/apache/commons/net/ftp/**,org/apache/commons/net/*,org/apache/commons/net/io/*,org/apache/commons/net/util/*" />

									<metainf dir="${basedir}" includes="NOTICE.txt,LICENSE.txt" />
									<manifest>
										<attribute name="Extension-Name" value="org.apache.commons.net" />
										<attribute name="Specification-Title" value="${project.name}" />
										<attribute name="Implementation-Title" value="${project.name}" />
										<attribute name="Implementation-Vendor" value="${project.organization.name}" />
										<attribute name="Implementation-Version" value="${version}" />
										<attribute name="Implementation-Vendor-Id" value="org.apache" />
										<attribute name="X-Compile-Source-JDK" value="${maven.compile.source}" />
										<attribute name="X-Compile-Target-JDK" value="${maven.compile.target}" />

									</manifest>
								</jar>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
            <!--  Attaches the commons-net-ftp JAR to the Maven lifecycle
                  to ensure that it will be signed a deployed as normal -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>target/commons-net-ftp-${version}.jar</file>
                                    <type>jar</type>
                                    <classifier>ftp</classifier>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>


		</plugins>

		<testResources>
			<testResource>
				<directory>${basedir}/src/test/java</directory>
				<includes>
					<include>**/*Test.java</include>
				</includes>
			</testResource>
		</testResources>
<extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-ssh-external</artifactId>
      <version>1.0-alpha-6</version>
    </extension>
  </extensions>


	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-changes-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<issueLinkTemplatePerSystem>
						<default>%URL%/%ISSUE%</default>
					</issueLinkTemplatePerSystem>
				</configuration>
				<reportSets>
					<reportSet>
						<reports>
							<report>changes-report</report>
							<report>jira-report</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>clirr-maven-plugin</artifactId>
				<version>2.2.2</version>
				<configuration>
					<comparisonVersion>2.0</comparisonVersion>
					<minSeverity>info</minSeverity>
				</configuration>
			</plugin>
		</plugins>
	</reporting>

<profiles>
  <profile>
    <id>rc</id>
    <distributionManagement>
      <!-- Cannot define in parent ATM, see COMMONSSITE-26 -->
      <site>
        <id>apache.website</id>
        <name>Apache Commons Release Candidate Staging Site</name>
        <url>${commons.deployment.protocol}://people.apache.org/www/people.apache.org/builds/commons/${commons.componentid}/${commons.release.version}/${commons.rc.version}/site</url>
      </site>
    </distributionManagement>
  </profile>
</profiles>

</project>
