<?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>
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.maven.its.mng4381</groupId>
  <artifactId>sub-a</artifactId>
  <version>0.1</version>

  <name>Maven Integration Test :: MNG-4381 :: A</name>
  <description>Test that extension plugins can contribute non-core components that can be accessed by other plugins in the same
    project and in projects with the same extension.</description>

  <build>
    <!--
    NOTE: We intentionally invoke the extension consumer first to check the singleton gets loaded from the
    proper class realm, i.e. the extension realm and not the plugin realm.
    -->
    <plugins>
      <plugin>
        <groupId>org.apache.maven.its.plugins</groupId>
        <artifactId>maven-it-plugin-extension-consumer</artifactId>
        <version>2.1-SNAPSHOT</version>
        <configuration>
          <key>sub-a-consumer</key>
          <value>called</value>
          <propertiesFile>target/singleton.properties</propertiesFile>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>update-singleton</goal>
            </goals>
            <phase>validate</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.its.plugins</groupId>
        <artifactId>maven-it-plugin-extension-provider</artifactId>
        <version>2.1-SNAPSHOT</version>
        <extensions>true</extensions>
        <configuration>
          <key>sub-a-provider</key>
          <value>called</value>
          <propertiesFile>target/singleton.properties</propertiesFile>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>update-singleton</goal>
            </goals>
            <phase>validate</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
