<?xml version="1.0" encoding="ISO-8859-1"?>
<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>
  <groupId>org.apache.james</groupId>
  <artifactId>jspf</artifactId>
  <parent>
    <groupId>org.apache.james</groupId>
    <artifactId>james-project</artifactId>
    <version>1.1-SNAPSHOT</version>
    <!-- Either this really points to the james-project/pom.xml or you
         will have to tune the local repository, later, in this file -->
    <relativePath>../james-project/pom.xml</relativePath>
  </parent>
  <name>Apache JAMES jSPF</name>
  <version>0.9b4</version>
  <description>
    Apache James jSPF is an SPF spec implementation written in Java
  </description>
  <url>http://james.apache.org/jspf</url>
  <inceptionYear>2006</inceptionYear>

  <distributionManagement>
    <site>
      <id>jspf-website</id>
      <url>scp://people.apache.org/www/james.apache.org/jspf/</url>
    </site>
  </distributionManagement>

  <dependencies>
    <dependency>
      <groupId>dnsjava</groupId>
      <artifactId>dnsjava</artifactId>
      <!-- have to use a custom build of dnsjava because of this bug: -->
      <!-- http://sourceforge.net/tracker/index.php?func=detail&aid=1709613&group_id=18000&atid=118000 -->
      <version>2.0.4-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>uk.nominet</groupId>
      <artifactId>dnsjnio</artifactId>
      <version>0.9.7-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.14</version>
    </dependency>
    <dependency>
      <groupId>org.jvyaml</groupId>
      <artifactId>jvyaml</artifactId>
      <version>0.2.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <version>1.0</version>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-lang</groupId>
          <artifactId>commons-lang</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <contributors>
    <contributor>
      <name>Roger Fullerton</name>
      <properties>
        <description>
          Wrote spfjava, the first spf implementation in java
        </description>
      </properties>
    </contributor>
  </contributors>

  <issueManagement>
    <system>JIRA</system>
    <url>http://issues.apache.org/jira/browse/JSPF</url>
  </issueManagement>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/james/jspf/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/james/jspf/trunk</developerConnection>
    <url>http://svn.apache.org/viewvc/james/jspf/trunk/</url>
  </scm>

  <pluginRepositories>
    <pluginRepository>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>maven-central</id>
      <name>maven-central</name>
      <url>http://repo1.maven.org/maven2</url>
    </pluginRepository>
  </pluginRepositories>
  
  <repositories>
    <repository>
      <id>local-jspf-stage-repository</id>
      <name>Local jSPF stage repository</name>
      <!-- Please note that due to http://jira.codehaus.org/browse/MNG-2896 -->
      <!-- If you don't have james-project checked out in ../james-project -->
      <!-- you will have to place your absolute path to the project instead -->
      <!-- of ${basedir}, or, otherwise, manually install the parent poms -->
      <!--
           mvn -fignorepom.xml install:install-file 
              -Dfile=stage\org.apache.james\poms\james-parent-1.1-SNAPSHOT.pom 
              -Dpackaging=pom 
              -DgroupId=org.apache.james 
              -DartifactId=james-parent 
              -Dversion=1.1-SNAPSHOT
           mvn -fignorepom.xml install:install-file 
              -Dfile=stage\org.apache.james\poms\james-project-1.1-SNAPSHOT.pom 
              -Dpackaging=pom 
              -DgroupId=org.apache.james 
              -DartifactId=james-project 
              -Dversion=1.1-SNAPSHOT
       -->
      <url>file://${basedir}/stage</url>
      <layout>legacy</layout>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
      </snapshots>
    </repository>
  </repositories>

  <mailingLists>
    <mailingList>
      <name>Apache jSPF Developement</name>
      <subscribe>server-dev-subscribe@james.apache.org</subscribe>
      <unsubscribe>server-dev-unsubscribe@james.apache.org</unsubscribe>
      <post>server-dev@james.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/james-server-dev/</archive>
    </mailingList>
  </mailingLists>

  <reporting>
    <plugins>
      <!--
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>surefire-report-maven-plugin</artifactId>
      </plugin> 
      -->
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jxr-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <targetjdk>1.4</targetjdk>
          <rulesets>
            <ruleset>/rulesets/basic.xml</ruleset>
            <ruleset>/rulesets/controversial.xml</ruleset>
          </rulesets>
          <format>xml</format>
          <linkXref>true</linkXref>
          <sourceEncoding>utf-8</sourceEncoding>
          <minimumTokens>100</minimumTokens>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>
  <build>
    <plugins>
      <!--
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-clover-plugin</artifactId>
        <configuration>
          <generateHtml>true</generateHtml>
          <generatePdf>false</generatePdf>
          <generateXml>false</generateXml>
        </configuration>
        <executions>
          <execution>
            <phase>site</phase>
            <goals>
              <goal>instrument</goal>
              <goal>clover</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>org.apache.james.jspf.impl.SPFQuery</mainClass>
              <packageName>org.apache.james.jspf</packageName>
              <addClasspath>true</addClasspath>
            </manifest>
            <manifestEntries>
              <mode>development</mode>
              <url>${pom.url}</url>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>bin</descriptorRef>
            <descriptorRef>src</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>