<?xml version="1.0" encoding="UTF-8"?>
<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.slf4j</groupId>
	<artifactId>slf4j-parent</artifactId>
	<version>1.0-SNAPSHOT</version>

	<packaging>pom</packaging>
	<name>SLF4J</name>

	<url>http://www.slf4j.org</url>

  <properties>
    <aversion>1.1.0-RC0</aversion>
  </properties>

	<organization>
		<name>QOS.ch</name>
		<url>http://www.qos.ch</url>
	</organization>
	<inceptionYear>2005</inceptionYear>

	<modules>
		<module>slf4j-api</module>
    <module>slf4j-simple</module>
    <module>slf4j-nop</module>
		<module>slf4j-jdk14</module>
    <module>slf4j-log4j12</module>
    <module>slf4j-jcl</module>
    <module>jcl104-over-slf4j</module>
    <module>log4j-over-slf4j</module>
    <module>slf4j-site</module>
    <module>slf4j-archetype</module>

  </modules>

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

 
	<dependencyManagement>
    <dependencies/>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.4</source>
					<target>1.4</target>
				</configuration>
			</plugin>
 
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<forkMode>once</forkMode>
					<reportFormat>plain</reportFormat>
					<trimStackTrace>false</trimStackTrace>
					<excludes>
						<exclude>**/AllTest.java</exclude>
						<exclude>**/PackageTest.java</exclude>
					</excludes>
				</configuration>
			</plugin>		

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>        
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>              
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <destDir>/target/site/api</destDir>
        	<aggregate>true</aggregate>
					<links>
						<link>
							http://java.sun.com/j2se/1.5.0/docs/api
						</link>
					</links>
          <groups>
            <group>
              <title>SLF4J packages</title>
              <packages>org.slf4j:org.slf4j.*</packages>
            </group>
            <group>
              <title>Jakarta Commons Logging packages</title>
              <packages>org.apache.commons.*</packages>
            </group>

            <group>
              <title>Apache log4j</title>
              <packages>org.apache.log4j</packages>
            </group>

          </groups>
        </configuration>
      </plugin>

    </plugins>

	</build>

  <profiles>
    <profile>
      <id>skipTests</id>     
      <properties>
        <maven.test.skip>true</maven.test.skip>
      </properties>
    </profile>
  </profiles>


	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<reportSets>
					<reportSet><reports/></reportSet>
				</reportSets>
			</plugin>	    
      
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <descriptors>
            <descriptor>
              src/main/assembly/source.xml
            </descriptor>
          </descriptors>
					<finalName>slf4j-${aversion}</finalName>
					<appendAssemblyId>false</appendAssemblyId>
					<outputDirectory>target/site/dist/</outputDirectory>
				</configuration>
			</plugin>
			
    </plugins>

	</reporting>
	
	  
  <scm>
		<connection>scm:svn:http://svn.slf4j.org/repos/slf4j/trunk</connection>
		<developerConnection>scm:svn:https://svn.slf4j.org/repos/slf4j/trunk</developerConnection>
		<url>http://svn.slf4j.org/viewvc/slf4j/trunk/</url>
	</scm>
	
	<distributionManagement>
		<site>
			<id>pixie</id>
			<url>scp://pixie/var/www/www.slf4j.org/htdocs/</url>
		</site>

    <repository>
      <id>pixie</id>
      <url>scp://pixie/var/mvnrepo/</url>
    </repository>

	</distributionManagement>

</project>