package org.jboss.windup.reporting.rules.rendering; import javax.inject.Inject; import org.jboss.forge.furnace.Furnace; import org.jboss.windup.config.AbstractRuleProvider; import org.jboss.windup.config.loader.RuleLoaderContext; import org.jboss.windup.config.metadata.RuleMetadata; import org.jboss.windup.config.phase.PostFinalizePhase; import org.jboss.windup.reporting.freemarker.FreeMarkerOperation; import org.ocpsoft.rewrite.config.Configuration; import org.ocpsoft.rewrite.config.ConfigurationBuilder; import org.ocpsoft.rewrite.config.Rule; /** * Renders a report of all {@link AbstractRuleProvider}s that were loaded by Windup, as well as the results of each * {@link Rule} execution. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> * */ @RuleMetadata(phase = PostFinalizePhase.class, after = ExecutionTimeReportRuleProvider.class) public class RenderRuleProviderReportRuleProvider extends AbstractRuleProvider { public static final String OUTPUT_FILENAME = "windup_ruleproviders.html"; private static final String TEMPLATE = "/reports/templates/ruleprovidersummary.ftl"; @Inject private Furnace furnace; @Override public Configuration getConfiguration(RuleLoaderContext ruleLoaderContext) { FreeMarkerOperation generateReportOperation = FreeMarkerOperation.create(furnace, TEMPLATE, OUTPUT_FILENAME); return ConfigurationBuilder.begin() .addRule() .perform(generateReportOperation); } }