Example usage for org.apache.maven.artifact.resolver ResolutionListener UPDATE_SCOPE_CURRENT_POM

List of usage examples for org.apache.maven.artifact.resolver ResolutionListener UPDATE_SCOPE_CURRENT_POM

Introduction

In this page you can find the example usage for org.apache.maven.artifact.resolver ResolutionListener UPDATE_SCOPE_CURRENT_POM.

Prototype

int UPDATE_SCOPE_CURRENT_POM

To view the source code for org.apache.maven.artifact.resolver ResolutionListener UPDATE_SCOPE_CURRENT_POM.

Click Source Link

Document

this event means that the artifactScope has NOT been updated to a farther node artifactScope because current node is in the first level pom

Usage

From source file:com.adviser.maven.GraphArtifactCollector.java

License:Apache License

private void checkScopeUpdate(ResolutionNode farthest, ResolutionNode nearest, List listeners) {
    boolean updateScope = false;
    Artifact farthestArtifact = farthest.getArtifact();
    Artifact nearestArtifact = nearest.getArtifact();

    if (Artifact.SCOPE_RUNTIME.equals(farthestArtifact.getScope())
            && (Artifact.SCOPE_TEST.equals(nearestArtifact.getScope())
                    || Artifact.SCOPE_PROVIDED.equals(nearestArtifact.getScope()))) {
        updateScope = true;/*from  w  ww  . j av  a  2  s .  c o  m*/
    }

    if (Artifact.SCOPE_COMPILE.equals(farthestArtifact.getScope())
            && !Artifact.SCOPE_COMPILE.equals(nearestArtifact.getScope())) {
        updateScope = true;
    }

    // current POM rules all
    if (nearest.getDepth() < 2 && updateScope) {
        updateScope = false;

        fireEvent(ResolutionListener.UPDATE_SCOPE_CURRENT_POM, listeners, nearest, farthestArtifact);
    }

    if (updateScope) {
        fireEvent(ResolutionListener.UPDATE_SCOPE, listeners, nearest, farthestArtifact);

        // previously we cloned the artifact, but it is more effecient to
        // just update the scope
        // if problems are later discovered that the original object needs
        // its original scope value, cloning may
        // again be appropriate
        nearestArtifact.setScope(farthestArtifact.getScope());
    }
}

From source file:com.adviser.maven.GraphArtifactCollector.java

License:Apache License

private void fireEvent(int event, List listeners, ResolutionNode node, Artifact replacement,
        VersionRange newRange) {/* w ww . j  a  v a 2s. c o m*/
    for (Iterator i = listeners.iterator(); i.hasNext();) {
        ResolutionListener listener = (ResolutionListener) i.next();

        switch (event) {
        case ResolutionListener.TEST_ARTIFACT:
            listener.testArtifact(node.getArtifact());
            break;
        case ResolutionListener.PROCESS_CHILDREN:
            listener.startProcessChildren(node.getArtifact());
            break;
        case ResolutionListener.FINISH_PROCESSING_CHILDREN:
            listener.endProcessChildren(node.getArtifact());
            break;
        case ResolutionListener.INCLUDE_ARTIFACT:
            listener.includeArtifact(node.getArtifact());
            break;
        case ResolutionListener.OMIT_FOR_NEARER:
            String version = node.getArtifact().getVersion();
            String replacementVersion = replacement.getVersion();
            if (version != null ? !version.equals(replacementVersion) : replacementVersion != null) {
                listener.omitForNearer(node.getArtifact(), replacement);
            }
            break;
        case ResolutionListener.OMIT_FOR_CYCLE:
            listener.omitForCycle(node.getArtifact());
            break;
        case ResolutionListener.UPDATE_SCOPE:
            listener.updateScope(node.getArtifact(), replacement.getScope());
            break;
        case ResolutionListener.UPDATE_SCOPE_CURRENT_POM:
            listener.updateScopeCurrentPom(node.getArtifact(), replacement.getScope());
            break;
        case ResolutionListener.MANAGE_ARTIFACT:
            listener.manageArtifact(node.getArtifact(), replacement);
            break;
        case ResolutionListener.SELECT_VERSION_FROM_RANGE:
            listener.selectVersionFromRange(node.getArtifact());
            break;
        case ResolutionListener.RESTRICT_RANGE:
            if (node.getArtifact().getVersionRange().hasRestrictions()
                    || replacement.getVersionRange().hasRestrictions()) {
                listener.restrictRange(node.getArtifact(), replacement, newRange);
            }
            break;
        default:
            throw new IllegalStateException("Unknown event: " + event);
        }
    }
}

From source file:org.universAAL.maven.treebuilder.DependencyTreeBuilder.java

License:Apache License

/**
 * FireEvent methods are used for sending events related resolution process
 * to the listeners passed as arguments.
 * /*from  ww w .jav  a  2s  .  c  om*/
 * @param event
 *            Integer value of the event.
 * @param listener
 *            Listener which will be notified about the event.
 * @param node
 *            Node related to the event.
 * @param replacement
 *            Node which will replace the one passed in the previous
 *            argument.
 * @param newRange
 *            A new range which will be applied in case of RESTRICT_RANGE
 *            event.
 */
private void fireEvent(final int event, final DependencyTreeResolutionListener listener,
        final ResolutionNode node, final ResolutionNode replacement, final VersionRange newRange) {
    switch (event) {
    case ResolutionListener.TEST_ARTIFACT:
        listener.testArtifact(node.getArtifact());
        break;
    case ResolutionListener.PROCESS_CHILDREN:
        listener.startProcessChildren(node.getArtifact());
        break;
    case ResolutionListener.FINISH_PROCESSING_CHILDREN:
        listener.endProcessChildren(node.getArtifact());
        break;
    case ResolutionListener.INCLUDE_ARTIFACT:
        listener.includeArtifact(node);
        break;
    case ResolutionListener.OMIT_FOR_NEARER:
        listener.omitForNearer(node, replacement);
        break;
    case ResolutionListener.OMIT_FOR_CYCLE:
        listener.omitForCycle(node);
        break;
    case ResolutionListener.UPDATE_SCOPE:
        listener.updateScope(node, replacement.getArtifact().getScope());
        break;
    case ResolutionListener.UPDATE_SCOPE_CURRENT_POM:
        listener.updateScopeCurrentPom(node, replacement.getArtifact().getScope());
        break;
    case ResolutionListener.MANAGE_ARTIFACT_VERSION:
        if (listener instanceof ResolutionListenerForDepMgmt) {
            ResolutionListenerForDepMgmt asImpl = listener;
            asImpl.manageArtifactVersion(node.getArtifact(), replacement.getArtifact());
        } else {
            listener.manageArtifact(node.getArtifact(), replacement.getArtifact());
        }
        break;
    case ResolutionListener.MANAGE_ARTIFACT_SCOPE:
        if (listener instanceof ResolutionListenerForDepMgmt) {
            ResolutionListenerForDepMgmt asImpl = listener;
            asImpl.manageArtifactScope(node.getArtifact(), replacement.getArtifact());
        } else {
            listener.manageArtifact(node.getArtifact(), replacement.getArtifact());
        }
        break;
    case ResolutionListener.SELECT_VERSION_FROM_RANGE:
        listener.selectVersionFromRange(node.getArtifact());
        break;
    case ResolutionListener.RESTRICT_RANGE:
        if (node.getArtifact().getVersionRange().hasRestrictions()
                || replacement.getArtifact().getVersionRange().hasRestrictions()) {
            listener.restrictRange(node.getArtifact(), replacement.getArtifact(), newRange);
        }
        break;
    default:
        throw new IllegalStateException("Unknown event: " + event);
    }
}