use of com.cflint.config.CFLintPluginInfo in project CFLint by cflint.
the class CFLintMain method main.
public static void main(final String[] args) throws Exception {
final Options options = new Options();
options.addOption(RULES, false, "list of all supported rules");
options.addOption("config", false, "list of rules in config file");
options.addOption(INCLUDE_RULE, true, "specify rules to include");
options.addOption(EXCLUDE_RULE, true, "specify rules to exclude");
options.addOption(FOLDER, true, "folder(s) to scan");
options.addOption("file", true, "file(s) to scan");
options.addOption(FILTER_FILE, true, "filter file");
options.addOption("v", false, VERBOSE);
options.addOption("version", false, "show the version number");
options.addOption("ui", false, "show UI");
options.addOption(VERBOSE, false, VERBOSE);
options.addOption(SHOWPROGRESS, false, "show progress bar");
options.addOption("singlethread", false, "show progress bar");
options.addOption("logerror", false, "log parsing errors as bugs");
options.addOption("e", false, "log parsing errors as bugs");
options.addOption("q", false, QUIET);
options.addOption(QUIET, false, QUIET);
options.addOption("?", false, DISPLAY_THIS_HELP);
options.addOption("h", false, DISPLAY_THIS_HELP);
options.addOption("help", false, DISPLAY_THIS_HELP);
options.addOption("xml", false, "output in xml format");
options.addOption(XMLFILE, true, "specify the output xml file (default: cflint-results.xml)");
options.addOption(XMLSTYLE, true, "cflint,findbugs");
options.addOption("html", false, "output in html format (default)");
options.addOption(HTMLFILE, true, "specify the output html file (default: cflint-results.html)");
// fancy,fancy-hist,summary
options.addOption(HTMLSTYLE, true, "default,plain");
options.addOption("json", false, "output in json format");
options.addOption(JSONFILE, true, "specify the output json file (default: cflint-results.json)");
options.addOption("text", false, "output in plain text");
options.addOption(TEXTFILE, true, "specify the output text file (default: cflint-results.txt)");
options.addOption("stats", false, "show bug count statstics");
options.addOption(EXTENSIONS, true, "specify the extensions of the CF source files (default: .cfm,.cfc)");
options.addOption(CONFIGFILE, true, "specify the location of the config file");
options.addOption(STDIN, true, "use stdin for file input (default: source.cfc)");
options.addOption("stdout", false, "output to stdout only");
options.addOption("listrulegroups", false, "list rule groups");
options.addOption("rulegroups", true, "rule groups");
final CommandLineParser parser = new GnuParser();
final CommandLine cmd = parser.parse(options, args);
final CFLintMain main = new CFLintMain();
if (cmd.hasOption('h') || cmd.hasOption("help") || cmd.hasOption("?")) {
final HelpFormatter formatter = new HelpFormatter();
formatter.printHelp(CFLINT, options);
return;
}
if (cmd.hasOption("version")) {
System.out.println("CFLint " + Version.getVersion());
System.out.println("CFParser " + cfml.parsing.Version.getVersion());
return;
}
if (cmd.hasOption(RULES) || cmd.hasOption("config")) {
final CFLintPluginInfo pluginInfo = cmd.hasOption(RULES) ? ConfigUtils.loadDefaultPluginInfo() : new CFLintPluginInfo();
main.defaultConfig = new CFLintConfig();
main.defaultConfig.setRules(pluginInfo.getRules());
CFLintChainedConfig myConfig = new CFLintChainedConfig(main.defaultConfig);
if (cmd.hasOption(CONFIGFILE)) {
final String configfile = cmd.getOptionValue(CONFIGFILE);
myConfig = myConfig.createNestedConfig(loadConfig(configfile));
}
final HashMap<String, String> descriptions = ConfigUtils.loadDescriptions();
System.out.println("Supported rules");
for (final PluginInfoRule rule : myConfig.getRules()) {
System.out.println(" " + rule.getName());
for (final PluginMessage message : rule.getMessages()) {
System.out.println(" " + message.getCode() + " - " + descriptions.get(message.getCode()));
}
}
return;
}
final CFLintPluginInfo pluginInfo = ConfigUtils.loadDefaultPluginInfo();
main.defaultConfig = new CFLintConfig();
main.defaultConfig.setRules(pluginInfo.getRules());
if (cmd.hasOption("listrulegroups")) {
listRuleGroups(pluginInfo);
return;
}
// groups are specified
if (cmd.hasOption("rulegroups")) {
final String rulegroups = cmd.getOptionValue("rulegroups");
applyRuleGroups(main, pluginInfo, rulegroups);
} else {
// Exclude the experimental by default.
applyRuleGroups(main, pluginInfo, "!Experimental");
}
main.verbose = (cmd.hasOption('v') || cmd.hasOption(VERBOSE));
main.quiet = (cmd.hasOption('q') || cmd.hasOption(QUIET));
main.logerror = (cmd.hasOption('e') || cmd.hasOption("logerror"));
main.xmlOutput = cmd.hasOption("xml") || cmd.hasOption(XMLSTYLE) || cmd.hasOption(XMLFILE);
main.textOutput = cmd.hasOption("text") || cmd.hasOption(TEXTFILE);
main.jsonOutput = cmd.hasOption("json") || cmd.hasOption("jsonFile");
main.showStats = cmd.hasOption("stats");
if (cmd.hasOption("ui")) {
main.ui();
}
// If an output is specified, htmlOutput is not defaulted to true.
if (main.xmlOutput || main.textOutput || main.jsonOutput) {
main.htmlOutput = cmd.hasOption("html") || cmd.hasOption(HTMLSTYLE) || cmd.hasOption(HTMLFILE);
}
if (main.verbose) {
System.out.println("XML Output " + main.xmlOutput);
System.out.println("Text Output " + main.textOutput);
System.out.println("JSON Output " + main.jsonOutput);
System.out.println("HTML Output " + main.htmlOutput);
}
if (cmd.hasOption(FOLDER)) {
main.folder.addAll(Arrays.asList(cmd.getOptionValue(FOLDER).split(",")));
}
if (cmd.hasOption("file")) {
main.folder.addAll(Arrays.asList(cmd.getOptionValue("file").split(",")));
}
if (cmd.hasOption(HTMLSTYLE)) {
main.htmlStyle = cmd.getOptionValue(HTMLSTYLE);
if (!main.htmlStyle.endsWith(".xsl") && !main.htmlStyle.endsWith(".xslt")) {
main.htmlStyle = main.htmlStyle + ".xsl";
}
}
if (cmd.hasOption(XMLSTYLE)) {
main.xmlstyle = cmd.getOptionValue(XMLSTYLE);
}
if (cmd.hasOption(FILTER_FILE)) {
main.filterFile = cmd.getOptionValue(FILTER_FILE);
}
if (cmd.hasOption(XMLFILE)) {
main.xmlOutFile = cmd.getOptionValue(XMLFILE);
}
if (cmd.hasOption(JSONFILE)) {
main.jsonOutFile = cmd.getOptionValue(JSONFILE);
}
if (cmd.hasOption(CONFIGFILE)) {
final String configfile = cmd.getOptionValue(CONFIGFILE);
main.configFileConfig = loadConfig(configfile);
}
if (cmd.hasOption(HTMLFILE)) {
main.htmlOutFile = cmd.getOptionValue(HTMLFILE);
}
if (cmd.hasOption(TEXTFILE)) {
main.textOutFile = cmd.getOptionValue(TEXTFILE);
}
if (cmd.hasOption(JSONFILE)) {
main.jsonOutFile = cmd.getOptionValue(JSONFILE);
}
if (cmd.hasOption(EXTENSIONS)) {
main.extensions = cmd.getOptionValue(EXTENSIONS);
}
if (cmd.hasOption(INCLUDE_RULE) || cmd.hasOption(EXCLUDE_RULE)) {
main.cmdLineConfig = new CFLintConfig();
if (cmd.hasOption(INCLUDE_RULE)) {
for (final String code : cmd.getOptionValue(INCLUDE_RULE).split(",")) {
main.cmdLineConfig.addInclude(new PluginMessage(code));
main.cmdLineConfig.setInheritParent(false);
}
}
if (cmd.hasOption(EXCLUDE_RULE)) {
for (final String code : cmd.getOptionValue(EXCLUDE_RULE).split(",")) {
main.cmdLineConfig.addExclude(new PluginMessage(code));
}
}
}
main.showprogress = cmd.hasOption(SHOWPROGRESS) || (!cmd.hasOption(SHOWPROGRESS) && cmd.hasOption("ui"));
main.progressUsesThread = !cmd.hasOption("singlethread");
main.stdIn = cmd.hasOption(STDIN);
if (main.stdIn) {
final String stdInOptionValue = cmd.getOptionValue(STDIN);
if (stdInOptionValue != null) {
main.stdInFile = stdInOptionValue;
}
}
main.stdOut = cmd.hasOption("stdout");
if (main.isValid()) {
main.execute();
if (cmd.hasOption("ui")) {
main.open();
}
} else {
final HelpFormatter formatter = new HelpFormatter();
formatter.printHelp(CFLINT, options);
}
}
use of com.cflint.config.CFLintPluginInfo in project CFLint by cflint.
the class CFLintMain method loadConfig.
private static CFLintConfig loadConfig(final String configfile) {
if (configfile != null) {
try {
CFLintPluginInfo pluginInfo = null;
if (configfile.toLowerCase().endsWith(".xml")) {
final Object configObj = ConfigUtils.unmarshal(new FileInputStream(configfile));
if (configObj instanceof CFLintPluginInfo)
pluginInfo = (CFLintPluginInfo) configObj;
else if (configObj instanceof CFLintConfig) {
return (CFLintConfig) configObj;
}
} else {
pluginInfo = ConfigUtils.unmarshalJson(new FileInputStream(configfile), CFLintPluginInfo.class);
}
CFLintConfig returnVal = new CFLintConfig();
returnVal.setRules(pluginInfo.getRules());
return returnVal;
} catch (final Exception e) {
System.err.println("Unable to load config file. " + e.getMessage());
}
}
return null;
}
use of com.cflint.config.CFLintPluginInfo in project CFLint by cflint.
the class TestCLintConfigXml method createDefaultLimited.
public static CFLintConfiguration createDefaultLimited(final String... rulenames) {
final CFLintPluginInfo pluginInfo = ConfigUtils.loadDefaultPluginInfo();
CFLintConfig defaultConfig = new CFLintConfig();
for (CFLintPluginInfo.PluginInfoRule rule : pluginInfo.getRules()) {
for (String rulename : rulenames) {
if (rule.getName().equalsIgnoreCase(rulename)) {
defaultConfig.getRules().add(rule);
}
}
}
return defaultConfig;
}
use of com.cflint.config.CFLintPluginInfo in project CFLint by cflint.
the class CFLintCLI method main.
public static void main(final String[] args) throws Exception {
final Options commandOptions = new Options();
final Options helpOptions = new Options();
// documented
Option optionMARKDOWN = new Option(Settings.MARKDOWN, false, "generate MarkDown of all supported rules");
Option optionRULES = new Option(Settings.RULES, false, "list of all supported rules");
Option optionCONFIG = new Option(Settings.CONFIG, false, "list of rules in config file");
Option optionINCLUDE_RULE = new Option(Settings.INCLUDE_RULE, true, "specify rules to include");
Option optionEXCLUDE_RULE = new Option(Settings.EXCLUDE_RULE, true, "specify rules to exclude");
Option optionFOLDER = new Option(Settings.FOLDER, true, "folder(s) to scan");
Option optionFILE = new Option(Settings.FILE, true, "file(s) to scan");
Option optionFILTER_FILE = new Option(Settings.FILTER_FILE, true, "filter file");
Option optionV = new Option(Settings.V, false, "verbose output during linting");
Option optionVERSION = new Option(Settings.VERSION, false, "show the version number");
Option optionVERBOSE = new Option(Settings.VERBOSE, false, "verbose output during linting");
Option optionSTRICT_INCLUDE = new Option(Settings.STRICT_INCLUDE, false, "Check every include and try to parse it");
Option optionLOGERROR = new Option(Settings.LOGERROR, false, "log parsing errors as bugs");
Option optionE = new Option(Settings.E, false, "log parsing errors as bugs");
Option optionQUIET = new Option(Settings.QUIET, false, "quiet mode surpresses most linting error and commentary output");
Option optionQ = new Option(Settings.Q, false, "quiet mode surpresses most linting error and commentary output");
Option optionDEBUG = new Option(Settings.DEBUG, false, "debug-level output during linting");
Option optionD = new Option(Settings.D, false, "debug-level output during linting");
Option optionHELP = new Option(Settings.HELP, false, DISPLAY_THIS_HELP);
Option optionQUESTION_MARK = new Option(Settings.QUESTION_MARK, false, DISPLAY_THIS_HELP);
Option optionH = new Option(Settings.H, false, DISPLAY_THIS_HELP);
Option optionXML = new Option(Settings.XML, false, "output in xml format");
Option optionXMLFILE = new Option(Settings.XMLFILE, true, "specify the output xml file (default: cflint-results.xml)");
Option optionXMLSTYLE = new Option(Settings.XMLSTYLE, true, "cflint,findbugs");
Option optionHTML = new Option(Settings.HTML, false, "output in html format (default)");
Option optionHTMLFILE = new Option(Settings.HTMLFILE, true, "specify the output html file (default: cflint-results.html)");
// fancy,fancy-hist,summary
Option optionHTMLSTYLE = new Option(Settings.HTMLSTYLE, true, "default,plain");
Option optionJSON = new Option(Settings.JSON, false, "output in json format");
Option optionJSONFILE = new Option(Settings.JSONFILE, true, "specify the output json file (default: cflint-results.json)");
Option optionTEXT = new Option(Settings.TEXT, false, "output in plain text");
Option optionTEXTFILE = new Option(Settings.TEXTFILE, true, "specify the output text file (default: cflint-results.txt)");
Option optionEXTENSIONS = new Option(Settings.EXTENSIONS, true, "specify the extensions of the CF source files (default: .cfm,.cfc)");
Option optionSTDIN = new Option(Settings.STDIN, true, "use stdin for file input (default: source.cfc)");
Option optionSTDOUT = new Option(Settings.STDOUT, false, "output to stdout only");
Option optionLIST_RULE_GROUPS = new Option(Settings.LIST_RULE_GROUPS, false, "list rule groups");
Option optionRULE_GROUPS = new Option(Settings.RULE_GROUPS, true, "rule groups");
// undocumented
Option optionCONFIGFILE = new Option(Settings.CONFIGFILE, true, "specify the location of the config file");
// supported options
commandOptions.addOption(optionMARKDOWN).addOption(optionRULES).addOption(optionCONFIG).addOption(optionINCLUDE_RULE).addOption(optionEXCLUDE_RULE).addOption(optionFOLDER).addOption(optionFILE).addOption(optionFILTER_FILE).addOption(optionV).addOption(optionVERSION).addOption(optionVERBOSE).addOption(optionSTRICT_INCLUDE).addOption(optionLOGERROR).addOption(optionE).addOption(optionQUIET).addOption(optionQ).addOption(optionHELP).addOption(optionQUESTION_MARK).addOption(optionH).addOption(optionXML).addOption(optionXMLFILE).addOption(optionXMLSTYLE).addOption(optionHTML).addOption(optionHTMLFILE).addOption(optionHTMLSTYLE).addOption(optionJSON).addOption(optionJSONFILE).addOption(optionTEXT).addOption(optionTEXTFILE).addOption(optionEXTENSIONS).addOption(optionSTDIN).addOption(optionSTDOUT).addOption(optionLIST_RULE_GROUPS).addOption(optionRULE_GROUPS).addOption(optionCONFIGFILE).addOption(optionDEBUG).addOption(optionD);
// documented options for HelpFormatter
helpOptions.addOption(optionMARKDOWN).addOption(optionRULES).addOption(optionCONFIG).addOption(optionINCLUDE_RULE).addOption(optionEXCLUDE_RULE).addOption(optionFOLDER).addOption(optionFILE).addOption(optionFILTER_FILE).addOption(optionV).addOption(optionVERSION).addOption(optionVERBOSE).addOption(optionSTRICT_INCLUDE).addOption(optionLOGERROR).addOption(optionE).addOption(optionQUIET).addOption(optionQ).addOption(optionHELP).addOption(optionQUESTION_MARK).addOption(optionH).addOption(optionXML).addOption(optionXMLFILE).addOption(optionXMLSTYLE).addOption(optionHTML).addOption(optionHTMLFILE).addOption(optionHTMLSTYLE).addOption(optionJSON).addOption(optionJSONFILE).addOption(optionTEXT).addOption(optionTEXTFILE).addOption(optionEXTENSIONS).addOption(optionSTDIN).addOption(optionSTDOUT).addOption(optionLIST_RULE_GROUPS).addOption(optionRULE_GROUPS).addOption(optionDEBUG).addOption(optionD);
final CommandLineParser parser = new GnuParser();
final CommandLine cmd = parser.parse(commandOptions, args);
final CFLintCLI main = new CFLintCLI();
if (cmd.hasOption(Settings.H) || cmd.hasOption(Settings.HELP) || cmd.hasOption(Settings.QUESTION_MARK)) {
final HelpFormatter formatter = new HelpFormatter();
formatter.printHelp(CFLINT_USAGE, helpOptions);
return;
}
if (cmd.hasOption(Settings.VERSION)) {
System.out.println("CFLint " + Version.getVersion());
System.out.println("CFParser " + cfml.parsing.Version.getVersion());
return;
}
main.strictInclude = cmd.hasOption(Settings.STRICT_INCLUDE);
if (cmd.hasOption(Settings.RULES) || cmd.hasOption(Settings.CONFIG)) {
final ConfigBuilder configBuilder = new ConfigBuilder(cmd.hasOption(Settings.RULES) ? ConfigUtils.loadDefaultPluginInfo() : new CFLintPluginInfo());
if (cmd.hasOption(Settings.CONFIGFILE)) {
final String configfile = cmd.getOptionValue(Settings.CONFIGFILE);
try {
configBuilder.addCustomConfig(configfile);
} catch (final Exception e) {
System.err.println("Unable to load config file " + configfile + ". " + e.getMessage());
}
}
final Map<String, String> descriptions = ConfigUtils.loadDescriptions();
System.out.println("Supported rules:");
for (final PluginInfoRule rule : configBuilder.build().getRules()) {
System.out.println(" " + rule.getName());
for (final PluginMessage message : rule.getMessages()) {
System.out.println(" " + message.getCode() + " - " + descriptions.get(message.getCode()));
}
}
return;
}
final CFLintPluginInfo pluginInfo = ConfigUtils.loadDefaultPluginInfo();
final ConfigBuilder configBuilder = new ConfigBuilder(pluginInfo);
if (cmd.hasOption(Settings.MARKDOWN)) {
final FileWriter out = new FileWriter("RULES.MD");
CFLintDoc.generateRuleMarkDown(pluginInfo, new PrintWriter(out));
System.out.println("Rules written to RULES.MD");
out.close();
return;
}
if (cmd.hasOption(Settings.CONFIGFILE)) {
final String configfile = cmd.getOptionValue(Settings.CONFIGFILE);
try {
configBuilder.addCustomConfig(configfile);
} catch (final Exception e) {
System.err.println("Unable to load config file " + configfile + ". " + e.getMessage());
}
}
if (cmd.hasOption(Settings.ENVIRONMENT)) {
main.environmentName = cmd.getOptionValue(Settings.ENVIRONMENT);
}
if (cmd.hasOption(Settings.INCLUDE_RULE)) {
configBuilder.include(Arrays.asList(cmd.getOptionValue(Settings.INCLUDE_RULE).split(",")));
}
if (cmd.hasOption(Settings.EXCLUDE_RULE)) {
configBuilder.exclude(Arrays.asList(cmd.getOptionValue(Settings.EXCLUDE_RULE).split(",")));
}
if (cmd.hasOption(Settings.LIST_RULE_GROUPS)) {
CFLintDoc.generateRuleGroup(pluginInfo, new PrintWriter(System.out));
return;
}
// groups are specified
if (cmd.hasOption(Settings.RULE_GROUPS)) {
final String rulegroups = cmd.getOptionValue(Settings.RULE_GROUPS);
configBuilder.ruleGroups(rulegroups);
}
main.quiet = (cmd.hasOption(Settings.Q) || cmd.hasOption(Settings.QUIET));
main.verbose = (cmd.hasOption(Settings.V) || cmd.hasOption(Settings.VERBOSE));
if (main.verbose) {
System.out.println("Verbose is enabled");
}
main.debug = (cmd.hasOption(Settings.D) || cmd.hasOption(Settings.DEBUG));
if (main.debug) {
System.out.println("Debug is enabled");
// Setting verbose = true and quiet = false in debug mode, regardless of settings actually being passed in.
main.verbose = true;
main.quiet = false;
}
main.logerror = (cmd.hasOption(Settings.E) || cmd.hasOption(Settings.LOGERROR));
main.xmlOutput = cmd.hasOption(Settings.XML) || cmd.hasOption(Settings.XMLSTYLE) || cmd.hasOption(Settings.XMLFILE);
main.textOutput = cmd.hasOption(Settings.TEXT) || cmd.hasOption(Settings.TEXTFILE);
main.jsonOutput = cmd.hasOption(Settings.JSON) || cmd.hasOption(Settings.JSONFILE);
// If an output is specified, htmlOutput is not defaulted to true.
if (main.xmlOutput || main.textOutput || main.jsonOutput) {
main.htmlOutput = cmd.hasOption(Settings.HTML) || cmd.hasOption(Settings.HTMLSTYLE) || cmd.hasOption(Settings.HTMLFILE);
}
if (main.verbose) {
System.out.println("XML Output " + main.xmlOutput);
System.out.println("Text Output " + main.textOutput);
System.out.println("JSON Output " + main.jsonOutput);
System.out.println("HTML Output " + main.htmlOutput);
}
if (cmd.hasOption(Settings.FOLDER)) {
main.folder.addAll(Arrays.asList(cmd.getOptionValue(Settings.FOLDER).split(",")));
}
if (cmd.hasOption(Settings.FILE)) {
main.folder.addAll(Arrays.asList(cmd.getOptionValue(Settings.FILE).split(",")));
}
if (cmd.hasOption(Settings.HTMLSTYLE)) {
main.htmlStyle = cmd.getOptionValue(Settings.HTMLSTYLE);
if (!main.htmlStyle.endsWith(".xsl") && !main.htmlStyle.endsWith(".xslt")) {
main.htmlStyle = main.htmlStyle + ".xsl";
}
}
if (cmd.hasOption(Settings.XMLSTYLE)) {
main.xmlstyle = cmd.getOptionValue(Settings.XMLSTYLE);
}
if (cmd.hasOption(Settings.FILTER_FILE)) {
main.filterFile = cmd.getOptionValue(Settings.FILTER_FILE);
}
if (cmd.hasOption(Settings.XMLFILE)) {
main.xmlOutFile = cmd.getOptionValue(Settings.XMLFILE);
}
if (cmd.hasOption(Settings.JSONFILE)) {
main.jsonOutFile = cmd.getOptionValue(Settings.JSONFILE);
}
if (cmd.hasOption(Settings.HTMLFILE)) {
main.htmlOutFile = cmd.getOptionValue(Settings.HTMLFILE);
}
if (cmd.hasOption(Settings.TEXTFILE)) {
main.textOutFile = cmd.getOptionValue(Settings.TEXTFILE);
}
if (cmd.hasOption(Settings.JSONFILE)) {
main.jsonOutFile = cmd.getOptionValue(Settings.JSONFILE);
}
if (cmd.hasOption(Settings.EXTENSIONS)) {
main.extensions = cmd.getOptionValue(Settings.EXTENSIONS);
}
main.stdIn = cmd.hasOption(Settings.STDIN);
if (main.stdIn) {
final String stdInOptionValue = cmd.getOptionValue(Settings.STDIN);
if (stdInOptionValue != null) {
main.stdInFile = stdInOptionValue;
}
}
main.stdOut = cmd.hasOption(Settings.STDOUT);
if (main.isValid()) {
main.execute(configBuilder.build());
} else {
final HelpFormatter formatter = new HelpFormatter();
formatter.printHelp(CFLINT_USAGE, helpOptions);
}
}
use of com.cflint.config.CFLintPluginInfo in project CFLint by cflint.
the class TestCFTagLowercaseChecker method setUp.
@Before
public void setUp() throws Exception {
final CFLintConfig conf = new CFLintConfig();
PluginInfoRule pluginRule = new PluginInfoRule();
pluginRule.setName("CFTagCaseChecker");
conf.getRules().add(pluginRule);
PluginMessage pluginMessage = new PluginMessage("CFTAG_PREFERRED_CASE");
pluginMessage.setSeverity(Levels.ERROR);
pluginMessage.setMessageText("Tag <${variable}> should be written in lowercase or camelCase for consistency in code.");
pluginRule.getMessages().add(pluginMessage);
CFLintPluginInfo pluginInfo = new CFLintPluginInfo();
pluginInfo.getRules().add(pluginRule);
pluginRule.setClassName("CFTagCaseChecker");
pluginRule.addParameter("PreferCase", "lower");
cfBugs = new CFLintAPI(new ConfigBuilder(pluginInfo).include("CFTAG_PREFERRED_CASE").build());
cfBugs.setLogError(false);
}
Aggregations