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

com.github.albanseurat.springboot.plugin.executors.NpmExecutor Maven / Gradle / Ivy

The newest version!
package com.github.albanseurat.springboot.plugin.executors;

import static java.lang.String.format;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;

public class NpmExecutor implements TaskExecutor {

    private ProcessBuilder processBuilder;
    private Logger logger = LoggerFactory.getLogger(getClass());

    public NpmExecutor(File workingDirectory) {
        processBuilder = new ProcessBuilder().directory(workingDirectory);
    }

    public void installDependency(String artefact, String version) throws MojoExecutionException, MojoFailureException {
        logger.debug("installDependency {}#{}", artefact, version);
        this.executeWithBuilder(
                processBuilder.command(format("npm install %s@%s", artefact, version).split(" ")),
                logger);
    }

    public boolean checkDependency(File artefact, String version) throws MojoExecutionException, MojoFailureException {
        logger.debug("checkDependency {}", artefact);
        try {
            JsonReader jsonReader = Json.createReader(new FileInputStream(new File(artefact, "package.json")));
            JsonObject jsonObject = jsonReader.readObject();
            return jsonObject.getString("version").contains(version);
        } catch (FileNotFoundException e) {
            throw new MojoFailureException(e.getMessage());
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy