All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.takari.maven.plugins.compile.ReactorProjects Maven / Gradle / Ivy

There is a newer version: 2.3.0
Show newest version
/*
 * Copyright (c) 2014-2024 Takari, Inc.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-v10.html
 */
package io.takari.maven.plugins.compile;

import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.maven.SessionScoped;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;

@Named
@SessionScoped
class ReactorProjects {

    private final Map projects;

    @Inject
    public ReactorProjects(MavenSession session) {
        Map projects = new HashMap<>();
        for (MavenProject project : session.getProjects()) {
            projects.put(key(project.getGroupId(), project.getArtifactId(), project.getVersion()), project);
        }
        this.projects = Collections.unmodifiableMap(new LinkedHashMap<>(projects));
    }

    public MavenProject get(Artifact artifact) {
        return projects.get(key(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()));
    }

    private static String key(String groupId, String artifactId, String version) {
        return groupId + ":" + artifactId + ":" + version;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy