Search in sources :

Example 6 with ApplicationType

use of io.micronaut.starter.application.ApplicationType in project micronaut-starter by micronaut-projects.

the class FeatureDiffer method produceDiff.

/**
 * Produces a Diff for the given arguments.
 * @param projectGenerator The project generator
 * @param generatorContext The generator context
 * @param consoleOutput The console output
 * @throws Exception If something does wrong
 */
public void produceDiff(ProjectGenerator projectGenerator, GeneratorContext generatorContext, ConsoleOutput consoleOutput) throws Exception {
    MapOutputHandler outputHandler = new MapOutputHandler();
    Project project = generatorContext.getProject();
    ApplicationType applicationType = generatorContext.getApplicationType();
    projectGenerator.generate(applicationType, project, new Options(generatorContext.getLanguage(), generatorContext.getTestFramework(), generatorContext.getBuildTool(), generatorContext.getJdkVersion()), generatorContext.getOperatingSystem(), Collections.emptyList(), outputHandler, ConsoleOutput.NOOP);
    Map<String, String> oldProject = outputHandler.getProject();
    outputHandler = new MapOutputHandler();
    projectGenerator.generate(applicationType, project, outputHandler, generatorContext);
    Map<String, String> newProject = outputHandler.getProject();
    for (Map.Entry<String, String> entry : newProject.entrySet()) {
        String oldFile = oldProject.remove(entry.getKey());
        if (entry.getValue() == null) {
            continue;
        }
        List<String> oldFileLines = oldFile == null ? Collections.emptyList() : toLines(oldFile);
        String newFile = entry.getValue();
        List<String> newFileLines = toLines(newFile);
        Patch<String> diff = DiffUtils.diff(oldFileLines, newFileLines);
        List<String> unifiedDiff = UnifiedDiffUtils.generateUnifiedDiff(entry.getKey(), entry.getKey(), oldFileLines, diff, 3);
        if (!unifiedDiff.isEmpty()) {
            for (String delta : unifiedDiff) {
                if (delta.startsWith("+")) {
                    consoleOutput.green(delta);
                } else if (delta.startsWith("-")) {
                    consoleOutput.red(delta);
                } else {
                    consoleOutput.out(delta);
                }
            }
            consoleOutput.out("\n");
        }
    }
    for (Map.Entry<String, String> entry : oldProject.entrySet()) {
        if (entry.getValue() == null) {
            continue;
        }
        List<String> oldFileLines = toLines(entry.getValue());
        Patch<String> diff = DiffUtils.diff(oldFileLines, Collections.emptyList());
        List<String> unifiedDiff = UnifiedDiffUtils.generateUnifiedDiff(entry.getKey(), entry.getKey(), oldFileLines, diff, 3);
        if (!unifiedDiff.isEmpty()) {
            for (String delta : unifiedDiff) {
                if (delta.startsWith("+")) {
                    consoleOutput.green(delta);
                } else if (delta.startsWith("-")) {
                    consoleOutput.red(delta);
                } else {
                    consoleOutput.out(delta);
                }
            }
            consoleOutput.out("\n");
        }
    }
}
Also used : Project(io.micronaut.starter.application.Project) ApplicationType(io.micronaut.starter.application.ApplicationType) Options(io.micronaut.starter.options.Options) MapOutputHandler(io.micronaut.starter.io.MapOutputHandler) Map(java.util.Map)

Example 7 with ApplicationType

use of io.micronaut.starter.application.ApplicationType in project micronaut-starter by micronaut-projects.

the class AbstractAzureFunction method apply.

@Override
public void apply(GeneratorContext generatorContext) {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    ApplicationType type = generatorContext.getApplicationType();
    generatorContext.addTemplate("host.json", new URLTemplate("host.json", classLoader.getResource("functions/azure/host.json")));
    generatorContext.addTemplate("local.settings.json", new URLTemplate("local.settings.json", classLoader.getResource("functions/azure/local.settings.json")));
    BuildTool buildTool = generatorContext.getBuildTool();
    Project project = generatorContext.getProject();
    if (buildTool == BuildTool.MAVEN) {
        BuildProperties props = generatorContext.getBuildProperties();
        props.put("functionAppName", project.getName());
        props.put("functionAppRegion", "westus");
        props.put("functionResourceGroup", "java-functions-group");
        props.put("stagingDirectory", "${project.build.directory}/azure-functions/${functionAppName}");
    }
    addFunctionTemplate(generatorContext, project);
    applyFunction(generatorContext, type);
}
Also used : ApplicationType(io.micronaut.starter.application.ApplicationType) Project(io.micronaut.starter.application.Project) URLTemplate(io.micronaut.starter.template.URLTemplate) BuildProperties(io.micronaut.starter.build.BuildProperties) BuildTool(io.micronaut.starter.options.BuildTool)

Aggregations

ApplicationType (io.micronaut.starter.application.ApplicationType)7 Project (io.micronaut.starter.application.Project)7 Language (io.micronaut.starter.options.Language)2 Options (io.micronaut.starter.options.Options)2 RockerTemplate (io.micronaut.starter.template.RockerTemplate)2 ProjectGenerator (io.micronaut.starter.application.generator.ProjectGenerator)1 BuildProperties (io.micronaut.starter.build.BuildProperties)1 DocumentationLink (io.micronaut.starter.feature.function.DocumentationLink)1 MapOutputHandler (io.micronaut.starter.io.MapOutputHandler)1 BuildTool (io.micronaut.starter.options.BuildTool)1 RockerWritable (io.micronaut.starter.template.RockerWritable)1 URLTemplate (io.micronaut.starter.template.URLTemplate)1 Map (java.util.Map)1