<?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>org.apache.maven.dotnet</groupId>
  <artifactId>dotnet-modify-versions</artifactId>
  <packaging>pom</packaging>
  <version>${npandayVersion}</version>
  <name>dotnet-modify-versions</name>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pom-plugin</artifactId>
        <version>1.0.1</version>
        <executions>
          <execution>
            <configuration>
              <target>.</target>
              <projectExcludes>imports/**</projectExcludes>
            </configuration>
            <id>alter-assembly-version</id>
            <phase>process-sources</phase>
            <goals>
              <goal>alter-version</goal>
            </goals>
          </execution>
          <execution>
            <configuration>
              <projectFile>misc/dotnet-repository-builder/pom-dotnet.xml</projectFile>
              <xpath>//project/version</xpath>
              <newValue>${pom.version}</newValue>
            </configuration>
            <id>alter-assembly-version-assemblies</id>
            <phase>process-sources</phase>
            <goals>
              <goal>alter-by-xpath</goal>
            </goals>
          </execution>
          <execution>
            <configuration>
              <projectFile>pom-dotnet.xml</projectFile>
              <xpath>//project/version</xpath>
              <newValue>${pom.version}</newValue>
            </configuration>
            <id>alter-assembly-version-assemblies-2</id>
            <phase>process-sources</phase>
            <goals>
              <goal>alter-by-xpath</goal>
            </goals>
          </execution>
          <execution>
            <configuration>
              <projectFile>pom.xml</projectFile>
              <xpath>//project/properties/mavenVersion</xpath>
              <newValue>${mavenVersion}</newValue>
            </configuration>
            <id>alter-assembly-version-assemblies-3</id>
            <phase>process-sources</phase>
            <goals>
              <goal>alter-by-xpath</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>