<?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>npanday-project</artifactId>
  <packaging>pom</packaging>
  <version>1.5.0-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.11</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>
    <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/1.5.0-azuresupport</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/npanday/branches/1.5.0-azuresupport</developerConnection>
    <url>https://svn.apache.org/repos/asf/incubator/npanday/branches/1.5.0-azuresupport</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>
  </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>-Pnpanday-release,dist</arguments>
          <preparationGoals>clean install</preparationGoals>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <mavenExecutorId>forked-path</mavenExecutorId>
          <suppressCommitBeforeTag>true</suppressCommitBeforeTag>
          <suppressCommitBeforeBranch>true</suppressCommitBeforeBranch>
          <remoteTagging>false</remoteTagging>
        </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.plexus</groupId>
          <artifactId>plexus-maven-plugin</artifactId>
          <version>1.3.8</version>
          <dependencies>
            <dependency>
              <groupId>com.thoughtworks.qdox</groupId>
              <artifactId>qdox</artifactId>
              <version>1.12</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <phase>process-classes</phase>
              <goals>
                <goal>descriptor</goal>
                <goal>merge-descriptors</goal>
              </goals>
              <configuration>
                <!-- descriptor config -->
                <outputDirectory>${project.build.directory}</outputDirectory>
                <fileName>plexus/auto-components.xml</fileName>

                <!-- merge config -->
                <descriptors>
                  <descriptor>${project.build.directory}/plexus/auto-components.xml</descriptor>
                  <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
                </descriptors>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>gmaven-plugin</artifactId>
            <version>1.2</version>
            <executions>
              <execution>
                <id>groovy-tests</id>
                <goals>
                  <goal>generateTestStubs</goal>
                  <goal>testCompile</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.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-dao-project</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-executable</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-artifact</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-plugin</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-registry</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-repository</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-core</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-vendor</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-netdependency</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-assembly-plugins</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-compiler-plugins</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-executable-plugins</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-configuration-appenders</artifactId>
        <version>1.5.0-incubating-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.apache.npanday</groupId>
        <artifactId>dotnet-model-settings</artifactId>
        <version>1.5.0-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-9-stable-1</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>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>10.0.1</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>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <version>0.7</version>
            <configuration>
              <excludes>
                <exclude>**/**.properties</exclude>
                <exclude>**/**.resx</exclude>
                <exclude>**/**.txt</exclude>
                <exclude>**/**.css</exclude>
                <exclude>**/**.snk</exclude>
                <exclude>**/**.sln</exclude>
                <exclude>**/*.patch</exclude>
                <exclude>**/*.diff</exclude>
                <exclude>**/.gitignore</exclude>
                <exclude>netplugins/**/target/**/*</exclude>
                <exclude>javabinding/target/**/*</exclude>
                <exclude>npanday-it-runner/target/**/*</exclude>
                <exclude>site/target/**/*</exclude>
                <exclude>**/pom-java.xml</exclude>
                <exclude>**/src/main/java/NPanday/Plugin/Addin/AutomationExtensibilityMojo.java</exclude>
                <exclude>**/src/main/java/NPanday/Plugin/Devenv/DevenvMojo.java</exclude>
                <exclude>**/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java</exclude>
                <exclude>**/src/main/java/NPanday/Plugin/SysRef/SysRefMojo.java</exclude>
                <exclude>**/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java</exclude>
                <exclude>**/MavenTestProjectWithNUnitCopy/MavenTestProjectWithNUnit/pom.xml</exclude>
                <exclude>**/MavenTestProjectWithNUnitCopy/pom.xml</exclude>

                <!-- ui artifacts, usually not checked in -->
                <exclude>atlassian-ide-plugin.xml</exclude>
                <exclude>**/*.user</exclude>
                <exclude>**/*.iml</exclude>
              </excludes>
            </configuration>
            <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>
    <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-source-plugin</artifactId>
            <version>2.1.2</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</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>
    <profile>
      <id>branch</id>
      <activation>
        <property>
          <name>branchName</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.2.1</version>
            <configuration>
              <updateBranchVersions>true</updateBranchVersions>
              <updateWorkingCopyVersions>false</updateWorkingCopyVersions>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </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>
