<?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">
  <modelVersion>4.0.0</modelVersion>  
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>8</version>
  </parent>  
  <groupId>org.apache.npanday</groupId>
  <artifactId>apache-npanday</artifactId>  
  <packaging>pom</packaging>  
  <version>1.4.1-incubating-SNAPSHOT</version>  
  <name>Apache NPanday</name>  
  <url>http://incubator.apache.org/npanday/</url>
  <description>NPanday provides Maven plugins to support building of .NET applications</description>

  <!-- this is what get edited most, so lets put it on the top -->
  <properties>
    <mavenVersion>2.2.1</mavenVersion>
    <plexus.utils.version>1.5.1</plexus.utils.version>
    <!-- if you want to build NPanday with a specific version, replace this -->
    <bootstrap.npanday.version>${project.version}</bootstrap.npanday.version>
  </properties>

  <repositories>
    <!-- Temporary solution until we figure out where to house these properly -->
    <repository>
      <id>3rdparty</id>
      <name>3rd Party .NET Repository</name>
      <url>http://repo.npanday.org/3rdparty</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>openrdf</id>
      <name>OpenRDF Repository</name>
      <url>http://repository.aduna-software.org/maven2</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <id>npanday.snapshots</id>
      <name>NPanday Snapshot Repository</name>
      <url>http://vmbuild.apache.org/archiva/repository/npanday-snapshots</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <id>npanday.snapshots</id>
      <name>NPanday Snapshot Repository</name>
      <url>http://vmbuild.apache.org/archiva/repository/npanday-snapshots</url>
    </pluginRepository>
  </pluginRepositories>

  <mailingLists> 
    <mailingList> 
      <name>NPanday Developers List</name>  
      <post>npanday-dev@incubator.apache.org</post>
      <subscribe>npanday-dev-subscribe@incubator.apache.org</subscribe>
      <unsubscribe>npanday-dev-unsubscribe@incubator.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-npanday-dev/</archive>
      <otherArchives> 
        <otherArchive>http://incubator.markmail.org/search/?q=list:org.apache.incubator.npanday-dev</otherArchive>
      </otherArchives> 
    </mailingList>  
    <mailingList> 
      <name>NPanday Commits List</name>  
      <post>npanday-commits@incubator.apache.org</post>
      <subscribe>npanday-commits-subscribe@incubator.apache.org</subscribe>
      <unsubscribe>npanday-commits-unsubscribe@incubator.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-npanday-commits/</archive>
      <otherArchives> 
        <otherArchive>http://incubator.markmail.org/search/?q=list:org.apache.incubator.npanday-commits</otherArchive>
      </otherArchives> 
    </mailingList>  
    <mailingList> 
      <name>NPanday Users List</name>  
      <post>npanday-users@incubator.apache.org</post>
      <subscribe>npanday-users-subscribe@incubator.apache.org</subscribe>
      <unsubscribe>npanday-users-unsubscribe@incubator.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-npanday-users/</archive>
      <otherArchives> 
        <otherArchive>http://incubator.markmail.org/search/?q=list:org.apache.incubator.npanday-users</otherArchive>
      </otherArchives> 
    </mailingList>  
  </mailingLists>
  <scm> 
    <connection>scm:svn:https://svn.apache.org/repos/asf/incubator/npanday/branches/npanday-1.4.x</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/npanday/branches/npanday-1.4.x</developerConnection>
    <url>https://svn.apache.org/repos/asf/incubator/npanday/branches/npanday-1.4.x</url>
  </scm>  
  <issueManagement> 
    <system>jira</system>  
    <url>http://issues.apache.org/jira/browse/NPANDAY</url>
  </issueManagement>
  <ciManagement>
    <system>jenkins</system>
    <url>https://builds.apache.org/pview/?match=NPanday.*</url>
  </ciManagement>
  <developers> 
    <developer> 
      <name>Craig Bachelor</name>  
      <id>craig</id>  
    </developer>  
    <developer> 
      <name>Marecor Baclay</name>  
      <id>mbaclay</id>  
      <email>mbaclay@exist.com</email>  
    </developer>  
    <developer>
      <name>Maria Odea Ching</name>
      <id>oching</id>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>
    <developer>
      <name>Lars Corneliussen</name>
      <id>lcorneliussen</id>
      <email>me@lcorneliussen.de</email>
    </developer>
    <developer>
      <name>John Fallows</name>
      <id>jfallows</id>
    </developer> 
    <developer>
      <name>Dennis Lundberg</name>
      <id>dennisl</id>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>
    <developer> 
      <name>Joe Ocaba</name>  
      <id>jocaba</id>  
      <email>jocaba@maestrodev.com</email>  
    </developer>     
    <developer> 
      <name>Adelita Padilla</name>  
      <id>apadilla</id>  
      <email>apadilla@maestrodev.com</email>
    </developer>     
    <developer> 
      <name>Brett Porter</name>  
      <id>brett</id>  
      <email>brett@apache.org</email>
    </developer>  
    <developer>
      <name>Wendy Smoak</name>
      <id>wsmoak</id>
      <email>wsmoak@gmail.com</email>
    </developer> 
    <developer>
      <name>Matthias Wessendorf</name>
      <id>matzew</id>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>
    <!--Emeritus Committers-->
    <developer> 
      <name>C�dric</name>  
      <id>mimil</id>  
    </developer>  
    <developer> 
      <name>Leopoldo Agdeppa</name>  
      <id>lagdeppa</id>  
      <email>lagdeppa@exist.com</email>  
      <roles> 
        <role>Emeritus</role>  
      </roles> 
    </developer>  
    <developer> 
      <name>Jan Ancajas</name>  
      <id>jancajas</id>  
      <email>jancajas@exist.com</email>  
      <roles> 
        <role>Emeritus</role>  
      </roles> 
    </developer>
    <developer> 
      <name>Shein Ernacio</name>  
      <id>sernacio</id>  
      <email>sernacio@exist.com</email>  
      <roles> 
        <role>Emeritus</role>  
      </roles> 
    </developer>  
    <developer> 
      <name>Shane Isbell</name>  
      <id>sisbell</id>  
      <email>sisbell@apache.org</email>  
      <roles> 
        <role>Emeritus</role>  
      </roles> 
    </developer>      
    <developer>
      <name>Gavin McDonald</name>
      <id>gmcdonald</id>
      <roles>
        <role>Former Mentor</role>
      </roles>
    </developer>
    <developer> 
      <name>Melvin Sembrano</name>  
      <id>melvinsembrano</id>  
      <email>melvinsembrano@gmail.com</email>  
      <roles> 
        <role>Emeritus</role>  
      </roles> 
    </developer>
    <developer> 
      <name>Evan Worley</name>  
      <id>eworley</id>  
      <email>eworley@apache.org</email>  
      <roles> 
        <role>Emeritus</role>  
      </roles> 
    </developer>        
  </developers>
  <contributors>
    <contributor>
      <name>Chris Bown</name>
    </contributor>
    <contributor>
      <name>Artem Fedorenko</name>
    </contributor>
    <contributor>
      <name>Kurt Harriger</name>
    </contributor>
    <contributor>
      <name>Thorsten Kamann</name>
    </contributor>
    <contributor>
      <name>Nap Ramirez</name>
    </contributor>
    <contributor>
      <name>Franz Allan Valencia See</name>
    </contributor>
    <contributor>
      <name>Paul G</name>
    </contributor>
    <contributor>
      <name>Henrik Bie</name>
    </contributor>
    <contributor>
      <name>Stoyan Damov</name>
    </contributor>
    <contributor>
      <name>Adrián Boimvaser</name>
    </contributor>
  </contributors>
  <modules> 
    <module>components</module>  
    <module>archetypes</module>  
    <module>plugins</module>  
  </modules>  
  <build> 
    <plugins>    
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId>      
        <artifactId>maven-release-plugin</artifactId>  
        <version>2.2.1</version>  
        <configuration>  
          <tagBase>https://svn.apache.org/repos/asf/incubator/npanday/tags</tagBase>  
          <branchBase>https://svn.apache.org/repos/asf/incubator/npanday/branches</branchBase>  
          <useReleaseProfile>false</useReleaseProfile>
          <goals>deploy</goals>  
          <arguments>-Papache-release,dist</arguments>
          <preparationGoals>clean install</preparationGoals>  
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <mavenExecutorId>forked-path</mavenExecutorId>
        </configuration>  
      </plugin>
      <plugin> 
        <artifactId>maven-javadoc-plugin</artifactId>  
        <configuration> 
          <aggregate>true</aggregate> 
        </configuration> 
      </plugin>  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-compiler-plugin</artifactId>  
        <configuration>
          <source>1.5</source>  
          <target>1.5</target> 
        </configuration> 
      </plugin> 
    </plugins>  
    <pluginManagement> 
      <plugins> 
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>2.5</version>
          <dependencies>
            <dependency>
              <groupId>com.thoughtworks.qdox</groupId>
              <artifactId>qdox</artifactId>
              <version>1.9.2</version>
            </dependency>
          </dependencies>    
        </plugin>
        <plugin> 
          <groupId>org.codehaus.modello</groupId>  
          <artifactId>modello-maven-plugin</artifactId>  
          <version>1.0-alpha-13</version>  
          <executions> 
            <execution> 
              <goals> 
                <goal>xpp3-reader</goal>  
                <goal>java</goal> 
              </goals> 
            </execution>  
            <execution> 
              <id>site</id>  
              <phase>pre-site</phase>  
              <goals> 
                <goal>xdoc</goal> 
              </goals> 
            </execution> 
          </executions> 
        </plugin> 
      </plugins> 
    </pluginManagement> 
  </build>  
  <dependencies> 
    <dependency> 
      <groupId>org.easymock</groupId>  
      <artifactId>easymock</artifactId>  
      <version>2.0</version>  
      <scope>test</scope> 
    </dependency>  
    <dependency> 
      <groupId>junit</groupId>  
      <artifactId>junit</artifactId>  
      <version>3.8.1</version>  
      <scope>test</scope> 
    </dependency> 
  </dependencies>
  <dependencyManagement> 
    <dependencies> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-assembler</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency>  
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-dao-project</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-executable</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-artifact</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-plugin</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-registry</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-core</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-vendor</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-netdependency</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-assembly-plugins</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-compiler-plugins</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-executable-plugins</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-configuration-appenders</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-settings</artifactId>  
        <version>1.4.1-incubating-SNAPSHOT</version> 
      </dependency> 

      <dependency> 
        <groupId>org.apache.maven</groupId>  
        <artifactId>maven-core</artifactId>  
        <version>${mavenVersion}</version> 
      </dependency>  
      <dependency> 
        <groupId>org.apache.maven</groupId>  
        <artifactId>maven-artifact</artifactId>  
        <version>${mavenVersion}</version> 
      </dependency>  
      <dependency> 
        <groupId>org.apache.maven</groupId>  
        <artifactId>maven-project</artifactId>  
        <version>${mavenVersion}</version> 
      </dependency>  
      <dependency> 
        <groupId>org.apache.maven</groupId>  
        <artifactId>maven-plugin-api</artifactId>  
        <version>${mavenVersion}</version> 
      </dependency>  
      <dependency> 
        <groupId>net.sf.kxml</groupId>  
        <artifactId>kxml2</artifactId>  
        <version>2.1.8</version> 
      </dependency>  
      <dependency> 
        <groupId>xmlpull</groupId>  
        <artifactId>xmlpull</artifactId>  
        <version>1.1.3.4a</version> 
      </dependency>  
      <dependency> 
        <groupId>org.codehaus.plexus</groupId>  
        <artifactId>plexus-archiver</artifactId>  
        <version>1.0-alpha-9</version> 
      </dependency>  
      <dependency> 
        <groupId>org.codehaus.plexus</groupId>  
        <artifactId>plexus-utils</artifactId>  
        <version>${plexus.utils.version}</version>
      </dependency>  
      <dependency> 
        <groupId>org.codehaus.plexus</groupId>  
        <artifactId>plexus-container-default</artifactId>  
        <version>1.0-alpha-32</version> 
      </dependency>  
      <dependency> 
        <groupId>org.codehaus.plexus</groupId>  
        <artifactId>plexus-component-api</artifactId>  
        <version>1.0-alpha-32</version> 
      </dependency>  
      <dependency> 
        <groupId>org.codehaus.plexus</groupId>  
        <artifactId>plexus-classworlds</artifactId>  
        <version>1.2-alpha-10</version> 
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.5.11</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.11</version>
      </dependency>
    </dependencies> 
  </dependencyManagement>  
  <profiles>
    <profile>
      <id>dotnet-modules</id>
      <activation>
        <property>
          <name>!bootstrap</name>
        </property>
      </activation>
      <modules>
        <module>dotnet</module>
      </modules>
    </profile>
    <profile>
      <id>integrationTests</id>
      <modules>
        <module>npanday-it-runner</module>
      </modules>
    </profile>
    <profile>
      <id>pre-release</id>
      <build>
        <pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <version>0.7</version>
            <configuration>
              <excludes>
                  <exclude>site/target/**</exclude>
                  <exclude>.git*</exclude>

                <!-- ui artifacts, usually not checked in -->
                <exclude>atlassian-ide-plugin.xml</exclude>
                <exclude>**/*.user</exclude>
                <exclude>**/*.iml</exclude>
                  <exclude>**/*.sln</exclude>
  
                  <!-- often excluded from the modules build -->
                  <exclude>npanday-it-runner/target/**</exclude>
                  <exclude>dist/**/target/**</exclude>
              </excludes>
            </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>dist</id>
      <modules>
        <module>dist</module>
      </modules>
    </profile>
  </profiles>
  <distributionManagement>
    <repository>
      <id>vmbuild.releases</id>
      <url>http://vmbuild.apache.org/archiva/repository/npanday-releases/</url>
    </repository>
    <snapshotRepository>
      <id>vmbuild.snapshots</id>
      <url>http://vmbuild.apache.org/archiva/repository/npanday-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
</project>
