<?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>  
  <groupId>npanday</groupId>  
  <artifactId>npanday-project</artifactId>  
  <packaging>pom</packaging>  
  <version>1.2.2-incubating-SNAPSHOT</version>  
  <name>NPanday</name>  
  <url>http://incubator.apache.org/npanday/</url>
  <description>NPanday provides Maven plugins to support building of .NET applications</description>  
  <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:http://svn.apache.org/repos/asf/incubator/npanday/trunk/</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/npanday/trunk/</developerConnection>
    <url>http://svn.apache.org/viewvc/incubator/npanday/trunk</url>
  </scm>  
  <issueManagement> 
    <system>jira</system>  
    <url>http://issues.apache.org/jira/browse/NPANDAY</url>
  </issueManagement>
  <ciManagement>
    <system>continuum</system>
    <url>http://ci.npanday.org/continuum/</url>
  </ciManagement>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <developers> 
    <developer>
      <name>Lars Corneliussen</name>
      <id>lcorneliussen</id>
    </developer>
    <developer> 
      <name>Joe Ocaba</name>  
      <id>jocaba</id>  
      <email>jocaba@exist.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>  
    </developer>  
    <developer> 
      <name>Marecor Baclay</name>  
      <id>mbaclay</id>  
      <email>mbaclay@exist.com</email>  
    </developer>  
    <developer>
      <name>Wendy Smoak</name>
      <id>wsmoak</id>
      <email>wsmoak@gmail.com</email>
    </developer> 
    <!--Emeritus Committers-->
    <developer> 
      <name>C�dric</name>  
      <id>mimil</id>  
    </developer>  
    <developer> 
      <name>Melvin Sembrano</name>  
      <id>melvinsembrano</id>  
      <email>melvinsembrano@gmail.com</email>  
      <roles> 
        <role>coordinator</role>  
      </roles> 
    </developer>
    <developer> 
      <name>Leopoldo Agdeppa</name>  
      <id>lagdeppa</id>  
      <email>lagdeppa@exist.com</email>  
    </developer>  
    <developer> 
      <name>Jan Ancajas</name>  
      <id>jancajas</id>  
      <email>jancajas@exist.com</email>  
    </developer>
    <developer> 
      <name>Shein Ernacio</name>  
      <id>sernacio</id>  
      <email>sernacio@exist.com</email>  
    </developer>  
    <developer> 
      <name>Shane Isbell</name>  
      <id>sisbell</id>  
      <email>sisbell@apache.org</email>  
      <url>http://jroller.com/page/random7</url>  
    </developer>      
    <developer> 
      <name>Evan Worley</name>  
      <id>eworley</id>  
      <email>eworley@apache.org</email>  
    </developer>        
  </developers>
  <contributors>
    <contributor>
      <name>Kurt Harriger</name>
    </contributor>
    <contributor>
      <name>Thorsten Kamann</name>
    </contributor>
    <contributor>
      <name>John Fallows</name>
    </contributor>
    <contributor>
      <name>supkitchen (codeplex)</name>
    </contributor>
  </contributors>
  <modules> 
    <module>components</module>  
    <module>archetypes</module>  
    <module>plugins</module>  
    <module>dotnet</module>
    <module>misc/dotnet-repository-builder</module>
    <module>misc/npanday-repository-builder</module>
    <module>misc/npanday-installer</module>	
  </modules>  
  <build> 
    <plugins> 
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>      
        <artifactId>maven-release-plugin</artifactId>  
        <version>2.0</version>  
        <configuration>  
          <tagBase>https://svn.apache.org/repos/asf/incubator/npanday/tags</tagBase>  
          <useReleaseProfile>false</useReleaseProfile>
          <goals>deploy</goals>  
          <arguments>-Pnpanday-release</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>npanday</groupId>  
        <artifactId>dotnet-assembler</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency>  
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-dao-project</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-executable</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-artifact</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-plugin</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-registry</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-repository</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-core</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-vendor</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-model-netdependency</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-model-assembly-plugins</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-model-compiler-plugins</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-model-executable-plugins</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-model-configuration-appenders</artifactId>  
        <version>1.2.2-incubating-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>npanday</groupId>  
        <artifactId>dotnet-model-settings</artifactId>  
        <version>1.2.2-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>1.4.5</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>integrationTests</id>
      <modules>
        <module>npanday-it-runner</module>
      </modules>
    </profile>
    <profile>
      <id>npanday-release</id>
      <build>
        <plugins>
          <!-- Fail fast: the release build must run on Windows for the Add-in -->
          <!-- TODO: consider splitting it into a separate release -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.0-beta-1</version>
            <executions>
              <execution>
                <id>enforce-os</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireOS>
                      <family>windows</family>
                    </requireOS>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin> 
            <artifactId>maven-assembly-plugin</artifactId>  
            <inherited>false</inherited>  
            <configuration> 
              <descriptor>src/assembly/src.xml</descriptor>  
              <outputDirectory>target</outputDirectory> 
              <finalName>npanday-${project.version}</finalName>
            </configuration> 
            <executions> 
              <execution> 
                <id>make-assembly</id>  
                <phase>package</phase>  
                <goals> 
                  <goal>single</goal> 
                </goals> 
              </execution> 
            </executions> 
          </plugin>  
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <configuration>
              <passphrase>${gpg.passphrase}</passphrase>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins> 
      </build>
    </profile>
  </profiles>
  <properties> 
    <mavenVersion>2.0.9</mavenVersion>  
    <npanday.snapshots.url>http://repo.npanday.org/archiva/repository/npanday-snapshots</npanday.snapshots.url>
    <npanday.releases.url>http://repo.npanday.org/archiva/repository/npanday-releases</npanday.releases.url>
    <stable.npanday.version>1.2</stable.npanday.version>
  </properties>  
  <distributionManagement>
    <snapshotRepository>
      <id>npanday.snapshots</id>
      <name>NPanday Snapshots Repository</name>
      <url>${npanday.snapshots.url}</url>
    </snapshotRepository>
    <repository>
      <id>npanday.releases</id>
      <name>NPanday Releases Repository</name>
      <url>${npanday.releases.url}</url>
    </repository>
  </distributionManagement>
  <!-- TODO: need to get these into central after 1.1 -->
  <pluginRepositories>
    <pluginRepository>
      <id>npanday.releases</id>
      <name>NPanday Releases Repository</name>
      <url>${npanday.releases.url}</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
  <repositories>
    <repository>
      <id>npanday.releases</id>
      <name>NPanday Releases Repository</name>
      <url>${npanday.releases.url}</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <!-- Additional repositories needed on first build
    <repository>
      <id>npanday.3rdparty</id>
      <name>NPanday 3rd-Party Repository</name>
      <url>http://repo.npanday.org/archiva/repository/3rdparty</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository> 
      <id>aduna.org</id>  
      <url>http://repository.aduna-software.org/maven2</url> 
    </repository>
    -->
  </repositories>
</project>
