Search in sources :

Example 1 with CliRuleViolationException

use of com.buschmais.jqassistant.commandline.CliRuleViolationException in project jqa-commandline-tool by jQAssistant.

the class AnalyzeTask method executeTask.

@Override
protected void executeTask(Configuration configuration, final Store store) throws CliExecutionException {
    LOGGER.info("Will warn on violations starting form severity '" + warnOnSeverity + "'");
    LOGGER.info("Will fail on violations starting from severity '" + failOnSeverity + "'.");
    LOGGER.info("Executing analysis.");
    ReportContext reportContext = new ReportContextImpl(store, reportDirectory, reportDirectory);
    Map<String, ReportPlugin> reportPlugins = getReportPlugins(reportContext);
    InMemoryReportPlugin inMemoryReportPlugin = new InMemoryReportPlugin(new CompositeReportPlugin(reportPlugins));
    AnalyzerConfiguration analyzerConfiguration = new AnalyzerConfiguration();
    analyzerConfiguration.setExecuteAppliedConcepts(executeAppliedConcepts);
    Map<String, String> ruleParameters = getRuleParameters();
    try {
        Analyzer analyzer = new AnalyzerImpl(analyzerConfiguration, store, pluginRepository.getAnalyzerPluginRepository().getRuleInterpreterPlugins(emptyMap()), inMemoryReportPlugin, LOGGER);
        RuleSet availableRules = getAvailableRules();
        analyzer.execute(availableRules, getRuleSelection(availableRules), ruleParameters);
    } catch (RuleException e) {
        throw new CliExecutionException("Analysis failed.", e);
    }
    if (createReportArchive) {
        createReportArchive(reportContext);
    }
    store.beginTransaction();
    LOGGER.info("Verifying results: failOnSeverity=" + failOnSeverity + ", warnOnSeverity=" + warnOnSeverity);
    try {
        final ReportHelper reportHelper = new ReportHelper(LOGGER);
        final int conceptViolations = reportHelper.verifyConceptResults(warnOnSeverity, failOnSeverity, inMemoryReportPlugin);
        final int constraintViolations = reportHelper.verifyConstraintResults(warnOnSeverity, failOnSeverity, inMemoryReportPlugin);
        if (conceptViolations > 0 || constraintViolations > 0) {
            throw new CliRuleViolationException("Failed rules detected: " + conceptViolations + " concepts, " + constraintViolations + " constraints");
        }
    } finally {
        store.commitTransaction();
    }
}
Also used : RuleSet(com.buschmais.jqassistant.core.rule.api.model.RuleSet) ReportContextImpl(com.buschmais.jqassistant.core.report.impl.ReportContextImpl) ReportHelper(com.buschmais.jqassistant.core.report.api.ReportHelper) CompositeReportPlugin(com.buschmais.jqassistant.core.report.impl.CompositeReportPlugin) InMemoryReportPlugin(com.buschmais.jqassistant.core.report.impl.InMemoryReportPlugin) CliExecutionException(com.buschmais.jqassistant.commandline.CliExecutionException) Analyzer(com.buschmais.jqassistant.core.analysis.api.Analyzer) RuleException(com.buschmais.jqassistant.core.rule.api.model.RuleException) InMemoryReportPlugin(com.buschmais.jqassistant.core.report.impl.InMemoryReportPlugin) ReportPlugin(com.buschmais.jqassistant.core.report.api.ReportPlugin) CompositeReportPlugin(com.buschmais.jqassistant.core.report.impl.CompositeReportPlugin) CliRuleViolationException(com.buschmais.jqassistant.commandline.CliRuleViolationException) ReportContext(com.buschmais.jqassistant.core.report.api.ReportContext) AnalyzerImpl(com.buschmais.jqassistant.core.analysis.impl.AnalyzerImpl) AnalyzerConfiguration(com.buschmais.jqassistant.core.analysis.api.AnalyzerConfiguration)

Example 2 with CliRuleViolationException

use of com.buschmais.jqassistant.commandline.CliRuleViolationException in project jqa-commandline-tool by jQAssistant.

the class AnalyzeTask method run.

@Override
public void run(CliConfiguration configuration) throws CliExecutionException {
    Analyze analyze = configuration.analyze();
    Severity warnOnSeverity = analyze.report().warnOnSeverity();
    Severity failOnSeverity = analyze.report().failOnSeverity();
    LOGGER.info("Will warn on violations starting from severity '" + warnOnSeverity + "'");
    LOGGER.info("Will fail on violations starting from severity '" + failOnSeverity + "'.");
    LOGGER.info("Executing analysis.");
    withStore(configuration, store -> {
        ReportContext reportContext = new ReportContextImpl(store, reportDirectory, reportDirectory);
        Map<String, ReportPlugin> reportPlugins = getReportPlugins(analyze.report(), reportContext);
        InMemoryReportPlugin inMemoryReportPlugin = new InMemoryReportPlugin(new CompositeReportPlugin(reportPlugins));
        try {
            Analyzer analyzer = new AnalyzerImpl(analyze, store, pluginRepository.getAnalyzerPluginRepository().getRuleInterpreterPlugins(emptyMap()), inMemoryReportPlugin, LOGGER);
            RuleSet availableRules = getAvailableRules(analyze.rule());
            analyzer.execute(availableRules, getRuleSelection(availableRules, analyze));
        } catch (RuleException e) {
            throw new CliExecutionException("Analysis failed.", e);
        }
        if (analyze.report().createArchive()) {
            createReportArchive(reportContext);
        }
        store.beginTransaction();
        LOGGER.info("Verifying results: failOnSeverity=" + failOnSeverity + ", warnOnSeverity=" + warnOnSeverity);
        try {
            final ReportHelper reportHelper = new ReportHelper(configuration.analyze().report(), LOGGER);
            final int conceptViolations = reportHelper.verifyConceptResults(inMemoryReportPlugin);
            final int constraintViolations = reportHelper.verifyConstraintResults(inMemoryReportPlugin);
            if (conceptViolations > 0 || constraintViolations > 0) {
                throw new CliRuleViolationException("Failed rules detected: " + conceptViolations + " concepts, " + constraintViolations + " constraints");
            }
        } finally {
            store.commitTransaction();
        }
    });
}
Also used : RuleSet(com.buschmais.jqassistant.core.rule.api.model.RuleSet) ReportContextImpl(com.buschmais.jqassistant.core.report.impl.ReportContextImpl) ReportHelper(com.buschmais.jqassistant.core.report.api.ReportHelper) Severity(com.buschmais.jqassistant.core.rule.api.model.Severity) CompositeReportPlugin(com.buschmais.jqassistant.core.report.impl.CompositeReportPlugin) InMemoryReportPlugin(com.buschmais.jqassistant.core.report.impl.InMemoryReportPlugin) CliExecutionException(com.buschmais.jqassistant.commandline.CliExecutionException) Analyzer(com.buschmais.jqassistant.core.analysis.api.Analyzer) RuleException(com.buschmais.jqassistant.core.rule.api.model.RuleException) InMemoryReportPlugin(com.buschmais.jqassistant.core.report.impl.InMemoryReportPlugin) ReportPlugin(com.buschmais.jqassistant.core.report.api.ReportPlugin) CompositeReportPlugin(com.buschmais.jqassistant.core.report.impl.CompositeReportPlugin) CliRuleViolationException(com.buschmais.jqassistant.commandline.CliRuleViolationException) ReportContext(com.buschmais.jqassistant.core.report.api.ReportContext) AnalyzerImpl(com.buschmais.jqassistant.core.analysis.impl.AnalyzerImpl) Analyze(com.buschmais.jqassistant.core.analysis.api.configuration.Analyze)

Aggregations

CliExecutionException (com.buschmais.jqassistant.commandline.CliExecutionException)2 CliRuleViolationException (com.buschmais.jqassistant.commandline.CliRuleViolationException)2 Analyzer (com.buschmais.jqassistant.core.analysis.api.Analyzer)2 AnalyzerImpl (com.buschmais.jqassistant.core.analysis.impl.AnalyzerImpl)2 ReportContext (com.buschmais.jqassistant.core.report.api.ReportContext)2 ReportHelper (com.buschmais.jqassistant.core.report.api.ReportHelper)2 ReportPlugin (com.buschmais.jqassistant.core.report.api.ReportPlugin)2 CompositeReportPlugin (com.buschmais.jqassistant.core.report.impl.CompositeReportPlugin)2 InMemoryReportPlugin (com.buschmais.jqassistant.core.report.impl.InMemoryReportPlugin)2 ReportContextImpl (com.buschmais.jqassistant.core.report.impl.ReportContextImpl)2 RuleException (com.buschmais.jqassistant.core.rule.api.model.RuleException)2 RuleSet (com.buschmais.jqassistant.core.rule.api.model.RuleSet)2 AnalyzerConfiguration (com.buschmais.jqassistant.core.analysis.api.AnalyzerConfiguration)1 Analyze (com.buschmais.jqassistant.core.analysis.api.configuration.Analyze)1 Severity (com.buschmais.jqassistant.core.rule.api.model.Severity)1