private void processFileLocationModel(Writer writer, String cssClass, ProjectModel project, FileLocationModel obj, String defaultText) throws IOException { String position = " (" + obj.getLineNumber() + ", " + obj.getColumnNumber() + ")"; String linkText = StringUtils.isBlank(defaultText) ? getPrettyPathForFile(obj.getFile()) + position : defaultText; String anchor = obj.getId().toString(); SourceReportModel result = sourceReportService.getSourceReportForFileModel(obj.getFile()); if (result == null) writer.write(linkText); else renderLink(writer, cssClass, project, result.getReportFilename(), anchor, linkText); }
/** * Gets a human readable description of the location in the file */ default String getDescription() { if (null == getSourceSnippit()) return ""; return StringEscapeUtils.escapeHtml4( StringUtils.substringBefore(StringUtils.abbreviate(getSourceSnippit().trim(), MAX_DESC_WIDTH), System.lineSeparator())); }
fileLocationModel.setFile(fileModel); fileLocationModel.setColumnNumber((int) matchEvent.getColumnNumber()); fileLocationModel.setLineNumber(lineNumber); fileLocationModel.setLength(matchedStr.length()); fileLocationModel.setSourceSnippit(matchedStr); results.add(fileLocationModel); evaluationStrategy.modelSubmitted(fileLocationModel);
hintModel.setLineNumber(locationModel.getLineNumber()); hintModel.setColumnNumber(locationModel.getColumnNumber()); hintModel.setLength(locationModel.getLength()); hintModel.setFileLocationReference(locationModel); hintModel.setFile(locationModel.getFile()); hintModel.setEffort(effort); hintModel.setIssueDisplayMode(this.issueDisplayMode); hintModel.setTitle(locationModel.getDescription()); hintModel.setTagModel(tagSetService.getOrCreate(event, tags)); if (locationModel.getFile() instanceof SourceFileModel) ((SourceFileModel) locationModel.getFile()).setGenerateSourceReport(true); LOG.fine("Hint added to " + locationModel.getFile().getPrettyPathWithinProject() + ":\n " + this.toString(hintModel.getTitle(), null));
@Override default List<FileModel> transformToFileModel() { return Collections.singletonList(getFile()); } }
/** * if this is a maven file, checks to see if "version" tags match the discovered text; if the discovered text does match something in a version * tag, it is likely a version, not an IP address * * @param context * @param model * @return */ private boolean isMavenVersionTag(GraphContext context, FileLocationModel model) { if (isMavenFile(context, model)) { Document doc = ((XmlFileModel) model.getFile()).asDocument(); for (Element elm : $(doc).find("version")) { String text = StringUtils.trim($(elm).text()); if (StringUtils.equals(text, model.getSourceSnippit())) { return true; } } } return false; }
private boolean ignoreLine(GraphContext context, FileLocationModel model) boolean isPropertiesFile = model.getFile() instanceof PropertiesModel; int lineNumber = model.getLineNumber(); LineIterator li = null; try li = FileUtils.lineIterator(model.getFile().asFile()); LOG.warning("Did not find line: " + lineNumber + " in file: " + model.getFile().getFileName()); break; LOG.log(Level.WARNING, "Exception reading properties from file: " + model.getFile().getFilePath(), e);
fileLocationModel.setFile(fileModel); fileLocationModel.setColumnNumber(1); fileLocationModel.setLineNumber(1); fileLocationModel.setLength(1); fileLocationModel.setSourceSnippit("File Match");
hintModel.setLineNumber(locationModel.getLineNumber()); hintModel.setColumnNumber(locationModel.getColumnNumber()); hintModel.setLength(locationModel.getLength()); hintModel.setFileLocationReference(locationModel); hintModel.setFile(locationModel.getFile()); hintModel.setEffort(effort); hintModel.setIssueDisplayMode(this.issueDisplayMode); hintModel.setTitle(locationModel.getDescription()); hintModel.setTagModel(tagSetService.getOrCreate(event, tags)); if (locationModel.getFile() instanceof SourceFileModel) ((SourceFileModel) locationModel.getFile()).setGenerateSourceReport(true); LOG.fine("Hint added to " + locationModel.getFile().getPrettyPathWithinProject() + ":\n " + this.toString(hintModel.getTitle(), null));
@Override default List<FileModel> transformToFileModel() { return Collections.singletonList(getFile()); } }
/** * if this is a maven file, checks to see if "version" tags match the discovered text; if the discovered text does match something in a version * tag, it is likely a version, not an IP address * * @param context * @param model * @return */ private boolean isMavenVersionTag(GraphContext context, FileLocationModel model) { if (isMavenFile(context, model)) { Document doc = ((XmlFileModel) model.getFile()).asDocument(); for (Element elm : $(doc).find("version")) { String text = StringUtils.trim($(elm).text()); if (StringUtils.equals(text, model.getSourceSnippit())) { return true; } } } return false; }
private boolean ignoreLine(GraphContext context, FileLocationModel model) boolean isPropertiesFile = model.getFile() instanceof PropertiesModel; int lineNumber = model.getLineNumber(); LineIterator li = null; try li = FileUtils.lineIterator(model.getFile().asFile()); LOG.warning("Did not find line: " + lineNumber + " in file: " + model.getFile().getFileName()); break; LOG.log(Level.WARNING, "Exception reading properties from file: " + model.getFile().getFilePath(), e);
FileLocationModel fileLocation = new GraphService<>(event.getGraphContext(), FileLocationModel.class).create(); String sourceSnippet = XmlUtil.nodeToString(node); fileLocation.setSourceSnippit(sourceSnippet); fileLocation.setLineNumber(lineNumber); fileLocation.setColumnNumber(columnNumber); fileLocation.setLength(node.toString().length()); fileLocation.setFile(xmlFileModel); List<FileLocationModel> fileLocationList = new ArrayList<>(1); fileLocationList.add(fileLocation);
private void processFileLocationModel(Writer writer, String cssClass, ProjectModel project, FileLocationModel obj, String defaultText) throws IOException { String position = " (" + obj.getLineNumber() + ", " + obj.getColumnNumber() + ")"; String linkText = StringUtils.isBlank(defaultText) ? getPrettyPathForFile(obj.getFile()) + position : defaultText; String anchor = obj.getId().toString(); SourceReportModel result = sourceReportService.getSourceReportForFileModel(obj.getFile()); if (result == null) writer.write(linkText); else renderLink(writer, cssClass, project, result.getReportFilename(), anchor, linkText); }
private boolean isMavenFile(GraphContext context, FileLocationModel model) { if (!(model.getFile() instanceof XmlFileModel)) { return false; } ClassificationService cs = new ClassificationService(context); for (ClassificationModel cm : cs.getClassificationByName(model.getFile(), "Maven POM (pom.xml)")) { return true; } return false; }
public void perform(GraphRewrite event, EvaluationContext context, FileLocationModel payload) { // for all file location models that match the regular expression in the where clause, add // the IP Location Model to the graph if (InetAddressValidator.getInstance().isValid(payload.getSourceSnippit())) { // if the file is a property file, make sure the line isn't commented out. if (ignoreLine(event.getGraphContext(), payload)) { return; } if (payload.getFile() instanceof SourceFileModel) ((SourceFileModel) payload.getFile()).setGenerateSourceReport(true); HardcodedIPLocationModel location = GraphService.addTypeToModel(event.getGraphContext(), payload, HardcodedIPLocationModel.class); location.setRuleID(((Rule) context.get(Rule.class)).getId()); location.setTitle("Hard-coded IP address"); StringBuilder hintBody = new StringBuilder("**Hard-coded IP: "); hintBody.append(payload.getSourceSnippit()); hintBody.append("**"); hintBody.append(System.lineSeparator()+System.lineSeparator()); hintBody.append("When migrating environments, hard-coded IP addresses may need to be modified or eliminated."); location.setHint(hintBody.toString()); //location.setIssueCategory(IssueCategoryRegistry.loadFromGraph(event.getGraphContext(), IssueCategoryRegistry.MANDATORY)); location.setIssueCategory(IssueCategoryRegistry.loadFromGraph(event.getGraphContext(), IssueCategoryRegistry.CLOUD_MANDATORY)); location.setEffort(1); } } })
/** * Gets a human readable description of the location in the file */ default String getDescription() { if (null == getSourceSnippit()) return ""; return StringEscapeUtils.escapeHtml4( StringUtils.substringBefore(StringUtils.abbreviate(getSourceSnippit().trim(), MAX_DESC_WIDTH), System.lineSeparator())); }
FileLocationModel fileLocation = new GraphService<>(event.getGraphContext(), FileLocationModel.class).create(); String sourceSnippet = XmlUtil.nodeToString(node); fileLocation.setSourceSnippit(sourceSnippet); fileLocation.setLineNumber(lineNumber); fileLocation.setColumnNumber(columnNumber); fileLocation.setLength(node.toString().length()); fileLocation.setFile(xmlFileModel); List<FileLocationModel> fileLocationList = new ArrayList<>(1); fileLocationList.add(fileLocation);
private boolean isMavenFile(GraphContext context, FileLocationModel model) { if (!(model.getFile() instanceof XmlFileModel)) { return false; } ClassificationService cs = new ClassificationService(context); for (ClassificationModel cm : cs.getClassificationByName(model.getFile(), "Maven POM (pom.xml)")) { return true; } return false; }
public void perform(GraphRewrite event, EvaluationContext context, FileLocationModel payload) { // for all file location models that match the regular expression in the where clause, add // the IP Location Model to the graph if (InetAddressValidator.getInstance().isValid(payload.getSourceSnippit())) { // if the file is a property file, make sure the line isn't commented out. if (ignoreLine(event.getGraphContext(), payload)) { return; } if (payload.getFile() instanceof SourceFileModel) ((SourceFileModel) payload.getFile()).setGenerateSourceReport(true); HardcodedIPLocationModel location = GraphService.addTypeToModel(event.getGraphContext(), payload, HardcodedIPLocationModel.class); location.setRuleID(((Rule) context.get(Rule.class)).getId()); location.setTitle("Hard-coded IP address"); StringBuilder hintBody = new StringBuilder("**Hard-coded IP: "); hintBody.append(payload.getSourceSnippit()); hintBody.append("**"); hintBody.append(System.lineSeparator()+System.lineSeparator()); hintBody.append("When migrating environments, hard-coded IP addresses may need to be modified or eliminated."); location.setHint(hintBody.toString()); //location.setIssueCategory(IssueCategoryRegistry.loadFromGraph(event.getGraphContext(), IssueCategoryRegistry.MANDATORY)); location.setIssueCategory(IssueCategoryRegistry.loadFromGraph(event.getGraphContext(), IssueCategoryRegistry.CLOUD_MANDATORY)); location.setEffort(1); } } })