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

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

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

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>log4j</groupId>
		<artifactId>apache-log4j-companions-parent</artifactId>
		<version>1.0-SNAPSHOT</version>
		<relativePath>../apache-log4j-companions-parent</relativePath>
	</parent>
	<groupId>log4j</groupId>
	<artifactId>apache-log4j-component</artifactId>
	<packaging>jar</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>Apache Component Companion for log4j 1.2.</name>
	<description>This companion emulates the log4j 1.3 Component Framework to
  simplify the back-porting of code that made use of its services.  It does
  not provide any immediately useful functionality to log4j by itself,
  but is used by Receivers and Chainsaw.</description>
	<url>http://logging.apache.org:80/log4j/companions/component</url>
	<issueManagement>
		<system>Bugzilla</system>
		<url>http://issues.apache.org/bugzilla/</url>
	</issueManagement>
	<ciManagement>
		<system>Gump</system>
		<url>http://vmgump.apache.org/gump/public/logging-log4j-component/logging-log4j-component/index.html</url>
	</ciManagement>
	<mailingLists>
		<mailingList>
			<name>log4j-user</name>
			<subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
			<unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
			<post>log4j-user@logging.apache.org</post>
			<archive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</archive>
			<otherArchives>
				<otherArchive>http://marc.theaimsgroup.com/?l=log4j-user&amp;r=1&amp;w=2</otherArchive>
				<otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
			</otherArchives>
		</mailingList>
		<mailingList>
			<name>log4j-dev</name>
			<subscribe>log4j-dev-subscribe@logging.apache.org</subscribe>
			<unsubscribe>log4j-dev-unsubscribe@logging.apache.org</unsubscribe>
			<post>log4j-dev@logging.apache.org</post>
			<archive>http://mail-archives.apache.org/mod_mbox/logging-log4j-dev/</archive>
			<otherArchives>
				<otherArchive>http://marc.theaimsgroup.com/?l=log4j-dev&amp;r=1&amp;w=2</otherArchive>
				<otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
			</otherArchives>
		</mailingList>
	</mailingLists>
	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<scm>
		<connection>scm:svn:http://svn.apache.org/repos/asf/logging/log4j/companions/component/trunk</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/logging/log4j/companions/component/trunk</developerConnection>
		<url>http://svn.apache.org/viewcvs.cgi/logging/log4j/companions/component/trunk</url>
	</scm>
	<organization>
		<name>Apache Software Foundation</name>
		<url>http://www.apache.org</url>
	</organization>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.4</source>
					<target>1.4</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<templateFile>${basedir}/src/site/maven-site.vm</templateFile>
					<reportPlugins>
						<plugin>
							<artifactId>maven-project-info-reports-plugin</artifactId>
							<version>2.4</version>
							<reportSets>
								<reportSet>
									<reports>
										<report>scm</report>
										<report>dependencies</report>
										<report>cim</report>
										<report>issue-tracking</report>
										<report>mailing-list</report>
										<report>license</report>
									</reports>
								</reportSet>
							</reportSets>
						</plugin>

						<plugin>
							<artifactId>maven-changes-plugin</artifactId>
							<reportSets>
								<reportSet>
									<reports>
										<report>changes-report</report>
									</reports>
								</reportSet>
							</reportSets>
							<configuration>
								<issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
							</configuration>
						</plugin>
						<plugin>
							<artifactId>maven-pmd-plugin</artifactId>
							<configuration>
								<encoding>UTF-8</encoding>
							</configuration>
						</plugin>
						<plugin>
							<artifactId>maven-javadoc-plugin</artifactId>
							<configuration>
								<encoding>UTF-8</encoding>
								<bottom><![CDATA[<p>Copyright ]]>©
									{currentYear} The Apache Software Foundation. Licensed under
									the <![CDATA[<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p>
<p>Apache Extras Companion for Apache log4j, Apache log4j and Apache are trademarks of the Apache Software Foundation.</p>]]></bottom>
							</configuration>
						</plugin>
						<plugin>
							<groupId>org.apache.rat</groupId>
							<artifactId>apache-rat-plugin</artifactId>
							<version>0.7</version>
							<configuration>
								<excludes>
									<!-- empty file -->
									<exclude>src/site/resources/css/site.css</exclude>
									<!-- sample log file -->
									<exclude>src/test/resources/org/apache/log4j/plugins/plugins.PluginTestCase.test1.txt</exclude>
								</excludes>
							</configuration>
						</plugin>
					</reportPlugins>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-release-plugin</artifactId>
				<configuration>
					<goals>site-deploy</goals>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<phase>site</phase>
						<id>untag-site</id>
						<configuration>
							<tasks>
								<taskdef name="replaceregexp"
									classname="org.apache.tools.ant.taskdefs.optional.ReplaceRegExp" />
								<replaceregexp file="target/site/source-repository.html"
									match="/tags/[^ &quot;&apos;&lt;]*" replace="/trunk" flags="g" />
								<replaceregexp match="-- Generated by (.*) on .*--"
									replace="-- Generated by \1 --" flags="g">
									<fileset dir="target/site/apidocs" includes="**/*.html" />
								</replaceregexp>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<phase>post-site</phase>
						<id>post-site</id>
						<configuration>
							<tasks>
								<ant target="post-site" />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<phase>site-deploy</phase>
						<id>site-deploy</id>
						<configuration>
							<tasks>
								<ant target="site-deploy" />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>ant</groupId>
						<artifactId>ant-nodeps</artifactId>
						<version>1.6.5</version>
					</dependency>
					<dependency>
						<groupId>ant</groupId>
						<artifactId>ant</artifactId>
						<version>1.6.5</version>
					</dependency>
					<dependency>
						<groupId>ant-contrib</groupId>
						<artifactId>ant-contrib</artifactId>
						<version>1.0b2</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>

	<distributionManagement>
		<repository>
			<id>logging.repo</id>
			<url>scp://people.apache.org/www/people.apache.org/builds/logging/repo/</url>
		</repository>
		<site>
			<id>logging.site</id>
			<url>scp://localhost/${user.dir}/target/site-deploy</url>
		</site>
	</distributionManagement>
</project>
