<!--
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.
-->

<component-set>
  <components>
    <component>
      <role>org.apache.maven.plugin.PluginManager</role>
      <implementation>org.apache.maven.plugin.DefaultPluginManager</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.project.path.PathTranslator</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.plugin.MavenPluginCollector</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.plugin.version.PluginVersionManager</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.plugin.PluginMappingManager</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.execution.RuntimeInformation</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.project.MavenProjectBuilder</role>
        </requirement>
      </requirements>
    </component>

    <component>
      <role>org.apache.maven.extension.ExtensionManager</role>
      <implementation>org.apache.maven.extension.DefaultExtensionManager</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.manager.WagonManager</role>
        </requirement>
      </requirements>
    </component>

    <component>
      <role>org.apache.maven.plugin.PluginMappingManager</role>
      <implementation>org.apache.maven.plugin.DefaultPluginMappingManager</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role>
        </requirement>
      </requirements>
    </component>

    <!-- Duplicated from Maven core as it is used in the plugin manager -->
    <component>
      <role>org.apache.maven.project.path.PathTranslator</role>
      <implementation>org.apache.maven.project.path.DefaultPathTranslator</implementation>
    </component>
    <!--
     |
     |
     |
     -->
    <component>
      <role>org.apache.maven.Maven</role>
      <implementation>org.apache.maven.DefaultMaven</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.project.MavenProjectBuilder</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.lifecycle.LifecycleExecutor</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.usability.diagnostics.ErrorDiagnostics</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.execution.RuntimeInformation</role>
        </requirement>
      </requirements>
    </component>

    <component>
      <role>org.apache.maven.execution.RuntimeInformation</role>
      <implementation>org.apache.maven.execution.DefaultRuntimeInformation</implementation>
    </component>
    <!--
    |
    |MojoExecutionExceptionDiagnoser
    |
    -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>MojoExecutionExceptionDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.MojoExecutionExceptionDiagnoser</implementation>
    </component>
    <!--
    |
    |MojoFailureExceptionDiagnoser
    |
    -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>MojoFailureExceptionDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.MojoFailureExceptionDiagnoser</implementation>
    </component>
    <!--
    |
    |ProjectBuildDiagnoser
    |
    -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>ProjectBuildDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.ProjectBuildDiagnoser</implementation>
    </component>
    <!--
    |
    |ProfileActivationDiagnoser
    |
    -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>ProfileActivationDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.ProfileActivationDiagnoser</implementation>
    </component>
    <!--
    |
    |PluginConfigurationDiagnoser
    |
    -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>PluginConfigurationDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.PluginConfigurationDiagnoser</implementation>
    </component>
    <!--
    |
    |ArtifactNotFoundDiagnoser
    |
    -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>ArtifactNotFoundDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.ArtifactNotFoundDiagnoser</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.artifact.manager.WagonManager</role>
        </requirement>
      </requirements>
    </component>
    <!--
     |
     |ArtifactResolverDiagnoser
     |
     -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>ArtifactResolverDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.ArtifactResolverDiagnoser</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.artifact.manager.WagonManager</role>
        </requirement>
      </requirements>
    </component>
    <!--
     |
     |InvalidArtifactDiagnoser
     |
     -->
    <component>
      <role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
      <role-hint>InvalidArtifactDiagnoser</role-hint>
      <implementation>org.apache.maven.usability.InvalidArtifactDiagnoser</implementation>
    </component>

    <component>
      <role>org.apache.maven.ConfigurationInterpolator</role>
      <implementation>org.apache.maven.ReflectionConfigurationInterpolator</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.project.path.PathTranslator</role>
        </requirement>
      </requirements>
    </component>
    
    <!--
     |
     | Lifecycle executor
     |
     -->
    <component>
      <role>org.apache.maven.lifecycle.LifecycleExecutor</role>
      <implementation>org.apache.maven.lifecycle.DefaultLifecycleExecutor</implementation>
      <requirements>
        <requirement>
          <role>org.apache.maven.plugin.PluginManager</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.extension.ExtensionManager</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.project.MavenProjectBuilder</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.ConfigurationInterpolator</role>
        </requirement>
      </requirements>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: lifecycle -->
            <phases>
              <phase>validate</phase>
              <phase>initialize</phase>
              <phase>generate-sources</phase>
              <phase>process-sources</phase>
              <phase>generate-resources</phase>
              <phase>process-resources</phase>
              <phase>compile</phase>
              <phase>process-classes</phase>
              <phase>generate-test-sources</phase>
              <phase>process-test-sources</phase>
              <phase>generate-test-resources</phase>
              <phase>process-test-resources</phase>
              <phase>test-compile</phase>
              <phase>process-test-classes</phase>
              <phase>test</phase>
              <phase>prepare-package</phase>
              <phase>package</phase>
              <phase>pre-integration-test</phase>
              <phase>integration-test</phase>
              <phase>post-integration-test</phase>
              <phase>verify</phase>
              <phase>install</phase>
              <phase>deploy</phase>
            </phases>
            <!-- END SNIPPET: lifecycle -->
          </lifecycle>
          <lifecycle>
            <id>clean</id>
            <phases>
              <phase>pre-clean</phase>
              <phase>clean</phase>
              <phase>post-clean</phase>
            </phases>
            <default-phases>
              <clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean>
            </default-phases>
          </lifecycle>
          <lifecycle>
            <id>site</id>
            <phases>
              <phase>pre-site</phase>
              <phase>site</phase>
              <phase>post-site</phase>
              <phase>site-deploy</phase>
            </phases>
            <default-phases>
              <site>org.apache.maven.plugins:maven-site-plugin:site</site>
              <site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy>
            </default-phases>
          </lifecycle>
        </lifecycles>
        <!-- START SNIPPET: default-reports -->
        <defaultReports>
          <report>org.apache.maven.plugins:maven-project-info-reports-plugin:2.1</report>
          <!-- TODO: currently in mojo - should they be defaults any more?
          <report>org.apache.maven.plugins:maven-checkstyle-plugin</report>
          <report>org.apache.maven.plugins:maven-javadoc-plugin</report>
                    <report>org.apache.maven.plugins:maven-changelog-plugin</report>
                    <report>org.apache.maven.plugins:maven-surefire-report-plugin</report>
                    <report>org.apache.maven.plugins:maven-jdepend-plugin</report>
                    <report>org.apache.maven.plugins:maven-jxr-plugin</report>
                    <report>org.apache.maven.plugins:maven-taglist-plugin</report>
          -->
        </defaultReports>
        <!-- END SNIPPET: default-reports -->
        <!-- START SNIPPET: default-lifecycle -->
        <!-- NOT USED, ACCORDING TO CODE.
        <defaultPhases>
          <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
          <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
          <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
          <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
          <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
          <package>
            org.apache.maven.plugins:maven-jar-plugin:jar,
            org.apache.maven.plugins:maven-source-plugin:jar
          </package>
          <install>org.apache.maven.plugins:maven-install-plugin:install</install>
          <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
        </defaultPhases>
        -->
        <!-- END SNIPPET: default-lifecycle -->
      </configuration>
    </component>

    <!-- TODO: issues with the lifecycle:
     - manually configured lifecycles will not pick up any later additions to the defaults where they are intended to extend defaults (have configuration <includeDefaults/> ?)
     -->
    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>pom</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: pom-lifecycle -->
            <phases>
              <package>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</package>
              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
            </phases>
            <optional-mojos>
              <optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
            </optional-mojos>
            <!-- END SNIPPET: pom-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>jar</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: jar-lifecycle -->
            <phases>
              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
              <process-test-resources>
                org.apache.maven.plugins:maven-resources-plugin:testResources
              </process-test-resources>
              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
              <package>
                org.apache.maven.plugins:maven-jar-plugin:jar
              </package>
              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
            </phases>
            <!-- END SNIPPET: jar-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>maven-plugin</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: maven-plugin-lifecycle -->
            <phases>
              <generate-resources>org.apache.maven.plugins:maven-plugin-plugin:descriptor</generate-resources>
              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
              <process-test-resources>
                org.apache.maven.plugins:maven-resources-plugin:testResources
              </process-test-resources>
              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
              <package>
                org.apache.maven.plugins:maven-jar-plugin:jar,
                org.apache.maven.plugins:maven-plugin-plugin:addPluginArtifactMetadata
              </package>
              <install>
                org.apache.maven.plugins:maven-install-plugin:install
              </install>
              <deploy>
                org.apache.maven.plugins:maven-deploy-plugin:deploy
              </deploy>
            </phases>
            <!-- END SNIPPET: maven-plugin-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>ejb</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: ejb-lifecycle -->
            <phases>
              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
              <process-test-resources>
                org.apache.maven.plugins:maven-resources-plugin:testResources
              </process-test-resources>
              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
              <package>
                org.apache.maven.plugins:maven-ejb-plugin:ejb
              </package>
              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
            </phases>
            <!-- END SNIPPET: ejb-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>war</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: war-lifecycle -->
            <phases>
              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
              <process-test-resources>
                org.apache.maven.plugins:maven-resources-plugin:testResources
              </process-test-resources>
              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
              <package>org.apache.maven.plugins:maven-war-plugin:war</package>
              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
            </phases>
            <!-- END SNIPPET: war-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>ear</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: ear-lifecycle -->
            <phases>
              <generate-resources>
                org.apache.maven.plugins:maven-ear-plugin:generate-application-xml
              </generate-resources>
              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
              <package>org.apache.maven.plugins:maven-ear-plugin:ear</package>
              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
            </phases>
            <!-- END SNIPPET: ear-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>rar</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <!-- START SNIPPET: rar-lifecycle -->
            <phases>
              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
              <process-test-resources>
                org.apache.maven.plugins:maven-resources-plugin:testResources
              </process-test-resources>
              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
              <package>org.apache.maven.plugins:maven-rar-plugin:rar</package>
              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
            </phases>
            <!-- END SNIPPET: rar-lifecycle -->
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>par</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <!-- START SNIPPET: par-lifecycle -->
        <phases>
          <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
          <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
          <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
          <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
          <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
          <package>
            org.apache.maven.plugins:maven-par-plugin:par
          </package>
          <install>org.apache.maven.plugins:maven-install-plugin:install</install>
          <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
        </phases>
        <!-- END SNIPPET: par-lifecycle -->
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>ejb3</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <!-- START SNIPPET: ejb3-lifecycle -->
        <phases>
          <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
          <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
          <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
          <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
          <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
          <package>
            org.apache.maven.plugins:maven-ejb3-plugin:ejb3
          </package>
          <install>org.apache.maven.plugins:maven-install-plugin:install</install>
          <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
        </phases>
        <!-- END SNIPPET: ejb3-lifecycle -->
      </configuration>
    </component>

    <component>
      <role>org.apache.maven.plugin.version.PluginVersionManager</role>
      <role-hint>default</role-hint>
      <implementation>org.apache.maven.plugin.version.DefaultPluginVersionManager</implementation>
      <instantiation-strategy>per-lookup</instantiation-strategy>
      <requirements>
        <requirement>
          <role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.plugin.registry.MavenPluginRegistryBuilder</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.components.interactivity.InputHandler</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.project.MavenProjectBuilder</role>
        </requirement>
        <requirement>
          <role>org.apache.maven.execution.RuntimeInformation</role>
        </requirement>
      </requirements>
    </component>

    <component>
      <role>org.sonatype.plexus.components.sec.dispatcher.SecDispatcher</role>
      <role-hint>maven</role-hint>
      <implementation>org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher</implementation>
      <description>Maven Security dispatcher</description>
      <requirements>
        <requirement>
          <role>org.sonatype.plexus.components.cipher.PlexusCipher</role>
          <field-name>_cipher</field-name>
        </requirement>
        <requirement>
          <role>org.sonatype.plexus.components.sec.dispatcher.PasswordDecryptor</role>
          <field-name>_decryptors</field-name>
        </requirement>
      </requirements>
      <configuration>
        <_configuration-file>~/.m2/settings-security.xml</_configuration-file>
      </configuration>
    </component>    
    
    <!-- TODO: The following wagon component definitions need to be moved into the proper wagon-* projects... -->
    <component>
      <role>org.apache.maven.wagon.Wagon</role>
      <role-hint>http-lightweight</role-hint>
      <implementation>org.apache.maven.wagon.providers.http.LightweightHttpWagon</implementation>
      <instantiation-strategy>per-lookup</instantiation-strategy>
      <description>LightweightHttpWagon</description>
    </component>
    <component>
      <role>org.apache.maven.wagon.Wagon</role>
      <role-hint>https-lightweight</role-hint>
      <implementation>org.apache.maven.wagon.providers.http.LightweightHttpsWagon</implementation>
      <instantiation-strategy>per-lookup</instantiation-strategy>
      <description>LIghtweightHttpsWagon</description>
    </component>
    <component>
      <role>org.apache.maven.wagon.Wagon</role>
      <role-hint>https-httpclient</role-hint>
      <implementation>org.apache.maven.wagon.providers.http.HttpWagon</implementation>
      <instantiation-strategy>per-lookup</instantiation-strategy>
    </component>
    <component>
      <role>org.apache.maven.wagon.Wagon</role>
      <role-hint>http-httpclient</role-hint>
      <implementation>org.apache.maven.wagon.providers.http.HttpWagon</implementation>
      <instantiation-strategy>per-lookup</instantiation-strategy>
    </component>
  </components>
</component-set>
