org.apache.maven.artifact.resolver

## Class DebugResolutionListener

- java.lang.Object
- - org.apache.maven.artifact.resolver.DebugResolutionListener

- All Implemented Interfaces:
    ResolutionListener, ResolutionListenerForDepMgmt

      public class DebugResolutionListener
      extends java.lang.Object
      implements ResolutionListener, ResolutionListenerForDepMgmt

  Send resolution events to the debug log.
  Version:
    $Id: DebugResolutionListener.java 640549 2008-03-24 20:05:11Z bentmann $
  Author:
    Brett Porter

- - ### Field Summary

    - ### Fields inherited from interface org.apache.maven.artifact.resolver.ResolutionListener

      `FINISH_PROCESSING_CHILDREN, INCLUDE_ARTIFACT, MANAGE_ARTIFACT, MANAGE_ARTIFACT_SCOPE, MANAGE_ARTIFACT_VERSION, OMIT_FOR_CYCLE, OMIT_FOR_NEARER, PROCESS_CHILDREN, RESTRICT_RANGE, ROLE, SELECT_VERSION_FROM_RANGE, TEST_ARTIFACT, UPDATE_SCOPE, UPDATE_SCOPE_CURRENT_POM`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DebugResolutionListener(Logger logger)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `endProcessChildren(Artifact artifact)`
    `void` | `includeArtifact(Artifact artifact)`
    `void` | `manageArtifact(Artifact artifact, Artifact replacement)` The logic used here used to be a copy of the logic used in the DefaultArtifactCollector, and this method was called right before the actual version/scope changes were done.
    `void` | `manageArtifactScope(Artifact artifact, Artifact replacement)`
    `void` | `manageArtifactVersion(Artifact artifact, Artifact replacement)`
    `void` | `omitForCycle(Artifact omitted)`
    `void` | `omitForNearer(Artifact omitted, Artifact kept)`
    `void` | `restrictRange(Artifact artifact, Artifact replacement, VersionRange newRange)`
    `void` | `selectVersionFromRange(Artifact artifact)`
    `void` | `startProcessChildren(Artifact artifact)`
    `void` | `testArtifact(Artifact node)`
    `void` | `updateScope(Artifact artifact, java.lang.String scope)`
    `void` | `updateScopeCurrentPom(Artifact artifact, java.lang.String ignoredScope)` This event means that the scope has NOT been updated to a farther node scope because current node is in the first level pom

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DebugResolutionListener

          public DebugResolutionListener(Logger logger)

  - ### Method Detail

    - #### testArtifact

          public void testArtifact(Artifact node)

      Specified by:
        `testArtifact` in interface `ResolutionListener`

    - #### startProcessChildren

          public void startProcessChildren(Artifact artifact)

      Specified by:
        `startProcessChildren` in interface `ResolutionListener`

    - #### endProcessChildren

          public void endProcessChildren(Artifact artifact)

      Specified by:
        `endProcessChildren` in interface `ResolutionListener`

    - #### includeArtifact

          public void includeArtifact(Artifact artifact)

      Specified by:
        `includeArtifact` in interface `ResolutionListener`

    - #### omitForNearer

          public void omitForNearer(Artifact omitted,
                           Artifact kept)

      Specified by:
        `omitForNearer` in interface `ResolutionListener`

    - #### omitForCycle

          public void omitForCycle(Artifact omitted)

      Specified by:
        `omitForCycle` in interface `ResolutionListener`

    - #### updateScopeCurrentPom

          public void updateScopeCurrentPom(Artifact artifact,
                                   java.lang.String ignoredScope)

      Description copied from interface: `ResolutionListener`
      This event means that the scope has NOT been updated to a farther node scope because current node is in the first level pom
      Specified by:
        `updateScopeCurrentPom` in interface `ResolutionListener`
      Parameters:
        `artifact` - current node artifact, the one in the first level pom
        `ignoredScope` - scope that was ignored because artifact was in first level pom

    - #### updateScope

          public void updateScope(Artifact artifact,
                         java.lang.String scope)

      Specified by:
        `updateScope` in interface `ResolutionListener`

    - #### selectVersionFromRange

          public void selectVersionFromRange(Artifact artifact)

      Specified by:
        `selectVersionFromRange` in interface `ResolutionListener`

    - #### restrictRange

          public void restrictRange(Artifact artifact,
                           Artifact replacement,
                           VersionRange newRange)

      Specified by:
        `restrictRange` in interface `ResolutionListener`

    - #### manageArtifact

          public void manageArtifact(Artifact artifact,
                            Artifact replacement)

      The logic used here used to be a copy of the logic used in the DefaultArtifactCollector, and this method was called right before the actual version/scope changes were done. However, a different set of conditionals (and more information) is needed to be able to determine when and if the version and/or scope changes. See the two added methods, manageArtifactVersion and manageArtifactScope.
      Specified by:
        `manageArtifact` in interface `ResolutionListener`

    - #### manageArtifactVersion

          public void manageArtifactVersion(Artifact artifact,
                                   Artifact replacement)

      Specified by:
        `manageArtifactVersion` in interface `ResolutionListenerForDepMgmt`

    - #### manageArtifactScope

          public void manageArtifactScope(Artifact artifact,
                                 Artifact replacement)

      Specified by:
        `manageArtifactScope` in interface `ResolutionListenerForDepMgmt`