use of com.cflint.xml.MarshallerException in project CFLint by cflint.
the class DefaultCFlintResultMarshaller method output.
@Override
public void output(BugList bugList, Writer writer, boolean showStats) throws MarshallerException {
try {
final XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
XMLStreamWriter xtw = new IndentingXMLStreamWriter(xmlOutputFactory.createXMLStreamWriter(writer));
writeIssues(bugList, xtw, showStats);
xtw.flush();
} catch (XMLStreamException e) {
throw new MarshallerException(e);
}
}
use of com.cflint.xml.MarshallerException in project CFLint by cflint.
the class FindBugsCFLintResultMarshaller method output.
@Override
public void output(BugList bugList, Writer writer, boolean showStats) throws MarshallerException {
try {
StringWriter sw = new StringWriter();
DefaultCFlintResultMarshaller marshaller = new DefaultCFlintResultMarshaller();
marshaller.output(bugList, sw, showStats);
sw.flush();
final Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(getClass().getResourceAsStream("/findbugs/cflint-to-findbugs.xsl")));
transformer.transform(new StreamSource(new StringReader(sw.toString())), new StreamResult(writer));
} catch (TransformerException e) {
throw new MarshallerException(e);
}
}
use of com.cflint.xml.MarshallerException in project CFLint by cflint.
the class CFLintMain method execute.
private void execute() throws IOException, TransformerException, JAXBException, MarshallerException {
final CFLint cflint = new CFLint(buildConfigChain());
cflint.setVerbose(verbose);
cflint.setLogError(logerror);
cflint.setQuiet(quiet);
cflint.setShowProgress(showprogress);
cflint.setProgressUsesThread(progressUsesThread);
if (extensions != null && extensions.trim().length() > 0) {
try {
cflint.setAllowedExtensions(Arrays.asList(extensions.trim().split(",")));
} catch (final Exception e) {
System.err.println("Unable to use extensions (" + extensions + ") using default instead. " + e.getMessage());
}
}
final CFLintFilter filter = createBaseFilter();
cflint.getBugs().setFilter(filter);
for (final String scanfolder : folder) {
cflint.scan(scanfolder);
}
if (stdIn) {
final StringBuilder source = new StringBuilder();
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
final String nextLine = scanner.nextLine();
source.append(nextLine);
source.append(System.lineSeparator());
}
scanner.close();
cflint.process(source.toString(), stdInFile);
}
if (xmlOutput) {
final Writer xmlwriter = stdOut ? new OutputStreamWriter(System.out) : createWriter(xmlOutFile, StandardCharsets.UTF_8);
if ("findbugs".equalsIgnoreCase(xmlstyle)) {
if (verbose) {
display("Writing XML findbugs style" + (stdOut ? "." : " to " + xmlOutFile));
}
new XMLOutput().outputFindBugs(cflint.getBugs(), xmlwriter, showStats);
} else {
if (verbose) {
display("Writing XML" + (stdOut ? "." : " to " + xmlOutFile));
}
new DefaultCFlintResultMarshaller().output(cflint.getBugs(), xmlwriter, showStats);
}
}
if (textOutput) {
if (textOutFile != null && verbose) {
display("Writing text" + (stdOut ? "." : " to " + textOutFile));
}
final Writer textwriter = stdOut || textOutFile == null ? new OutputStreamWriter(System.out) : new FileWriter(textOutFile);
new TextOutput().output(cflint.getBugs(), textwriter, showStats);
}
if (htmlOutput) {
try {
if (verbose) {
display("Writing HTML" + (stdOut ? "." : " to " + htmlOutFile));
}
final Writer htmlwriter = stdOut ? new OutputStreamWriter(System.out) : new FileWriter(htmlOutFile);
new HTMLOutput(htmlStyle).output(cflint.getBugs(), htmlwriter, showStats);
} catch (final TransformerException e) {
throw new IOException(e);
}
}
if (jsonOutput) {
if (verbose) {
display("Writing JSON" + (stdOut ? "." : " to " + jsonOutFile));
}
final Writer jsonwriter = stdOut ? new OutputStreamWriter(System.out) : new FileWriter(jsonOutFile);
new JSONOutput().output(cflint.getBugs(), jsonwriter, showStats);
}
}
use of com.cflint.xml.MarshallerException in project CFLint by cflint.
the class CFLintCLI method execute.
private void execute(final CFLintConfiguration cfLintConfig) throws IOException, TransformerException, MarshallerException, JAXBException, CFLintScanException, CFLintConfigurationException {
final CFLintAPI api = new CFLintAPI(cfLintConfig);
api.setVerbose(verbose);
api.setLogError(logerror);
api.setQuiet(quiet);
api.setDebug(debug);
api.setStrictInclude(strictInclude);
api.setEnvironmentName(environmentName);
if (extensions != null && extensions.trim().length() > 0) {
try {
api.setExtensions(Arrays.asList(extensions.trim().split(",")));
} catch (final Exception e) {
if (!quiet) {
System.err.println("Unable to use extensions (" + extensions + "), using default instead. " + e.getMessage());
}
}
}
api.setFilterFile(filterFile);
CFLintResult lintResult = null;
if (stdIn) {
final StringWriter source = new StringWriter();
IOUtils.copy(new InputStreamReader(System.in), source);
lintResult = api.scan(source.toString(), stdInFile);
} else {
lintResult = api.scan(folder);
}
if (xmlOutput) {
try (final Writer xmlwriter = stdOut ? new OutputStreamWriter(System.out) : createXMLWriter(xmlOutFile, StandardCharsets.UTF_8)) {
if (FINDBUGS.equalsIgnoreCase(xmlstyle)) {
if (verbose) {
display("Writing XML (style: findbugs)" + (stdOut ? "." : " to " + xmlOutFile));
}
lintResult.writeFindBugsXml(xmlwriter);
} else {
if (verbose) {
display("Writing XML" + (stdOut ? "." : " to " + xmlOutFile));
}
lintResult.writeXml(xmlwriter);
}
}
}
if (textOutput) {
try (final Writer textwriter = stdOut ? new OutputStreamWriter(System.out) : new FileWriter(textOutFile)) {
if (verbose) {
display("Writing text" + (stdOut ? "." : " to " + textOutFile));
}
lintResult.writeText(textwriter);
}
}
if (htmlOutput) {
try (final Writer htmlwriter = stdOut ? new OutputStreamWriter(System.out) : new FileWriter(htmlOutFile)) {
if (verbose) {
display("Writing HTML (style: " + htmlStyle + ")" + (stdOut ? "." : " to " + htmlOutFile));
}
lintResult.writeHTML(htmlStyle, htmlwriter);
}
}
if (jsonOutput) {
try (final Writer jsonwriter = stdOut ? new OutputStreamWriter(System.out) : new FileWriter(jsonOutFile)) {
if (verbose) {
display("Writing JSON" + (stdOut ? "." : " to " + jsonOutFile));
}
lintResult.writeJSON(jsonwriter);
}
}
if (verbose) {
display("Total files scanned: " + lintResult.getStats().getFileCount());
display("Total LOC scanned: " + lintResult.getStats().getTotalLines());
}
}
use of com.cflint.xml.MarshallerException in project CFLint by cflint.
the class FindBugsCFLintResultMarshaller method output.
@Override
public void output(final BugList bugList, final Writer writer, final CFLintStats stats) throws MarshallerException {
try {
StringWriter sw = new StringWriter();
DefaultCFlintResultMarshaller marshaller = new DefaultCFlintResultMarshaller();
marshaller.output(bugList, sw, stats);
sw.flush();
final Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(getClass().getResourceAsStream("/findbugs/cflint-to-findbugs.xsl")));
transformer.transform(new StreamSource(new StringReader(sw.toString())), new StreamResult(writer));
} catch (TransformerException e) {
throw new MarshallerException(e);
}
}
Aggregations