in dotTrace-agent/src/main/java/jetbrains/buildServer/dotTrace/agent/ProjectGenerator.java [69:138]
public String create(@NotNull final Context ctx) {
final Document doc = myDocumentManager.createDocument();
final Element rootElement = doc.createElement(ROOT_ELEMENT);
final Element hostParametersElement = doc.createElement(HOST_PARAMETERS_ELEMENT);
hostParametersElement.setAttribute(TYPE_ATTR, TYPE_LOCAL_HOST_PARAMETERS);
rootElement.appendChild(hostParametersElement);
final Element argumentElement = doc.createElement(ARGUMENT_ELEMENT);
argumentElement.setAttribute(TYPE_ATTR, TYPE_STANDALONE_ARGUMENT);
argumentElement.appendChild(createSimpleElement(doc, ARGUMENTS_ELEMENT, myCommandLineArgumentsService.createCommandLineString(ctx.getBaseSetup().getArgs())));
argumentElement.appendChild(createSimpleElement(doc, FILE_NAME_ELEMENT, ctx.getBaseSetup().getToolPath()));
final String profileChildProcessesStr = myParametersService.tryGetRunnerParameter(Constants.PROFILE_CHILD_PROCESSES_VAR);
final boolean profileChildProcesses = StringUtil.isEmptyOrSpaces(profileChildProcessesStr) || Boolean.parseBoolean(profileChildProcessesStr);
argumentElement.appendChild(createSimpleElement(doc, PROFILE_CHILD_PROCESSES_ELEMENT, profileChildProcesses ? TRUE_VAL : FALSE_VAL));
argumentElement.appendChild(createSimpleElement(doc, WORKING_DIRECTORY_ELEMENT, myFileService.getCheckoutDirectory().getPath()));
rootElement.appendChild(argumentElement);
final Element argumentScopeElement = doc.createElement(SCOPE_ELEMENT);
final Element processFiltersElement = doc.createElement(PROCESS_FILTERS_ELEMENT);
final String processFiltersStr = myParametersService.tryGetRunnerParameter(Constants.PROCESS_FILTERS_VAR);
if(!StringUtil.isEmptyOrSpaces(processFiltersStr)) {
final List<ProcessFilter> filters = myProcessFiltersParser.parse(processFiltersStr);
if(filters.size() > 0) {
processFiltersElement.appendChild(createSimpleElement(doc, ITEM_ELEMENT, ""));
for (ProcessFilter filter : filters) {
final Element itemElement = doc.createElement(ITEM_ELEMENT);
itemElement.appendChild(createSimpleElement(doc, PROCESS_NAME_FILTER_ELEMENT, filter.getMask()));
itemElement.appendChild(createSimpleElement(doc, TYPE_ELEMENT, DENY_PROCESS_FILTER_VAL));
processFiltersElement.appendChild(itemElement);
}
}
}
argumentScopeElement.appendChild(processFiltersElement);
argumentElement.appendChild(argumentScopeElement);
final Element infoElement = doc.createElement(INFO_ELEMENT);
infoElement.setAttribute(TYPE_ATTR, TYPE_PERFORMANCE_INFO);
final String measureTypeStr = myParametersService.tryGetRunnerParameter(Constants.MEASURE_TYPE_VAR);
MeasureType curMeasureType = MeasureType.SAMPLING;
for(MeasureType measureType: MeasureType.values()) {
if(measureType.getValue().equalsIgnoreCase(measureTypeStr)) {
curMeasureType = measureType;
break;
}
}
if(!StringUtil.isEmptyOrSpaces(curMeasureType.getId())) {
infoElement.appendChild(createSimpleElement(doc, MEASURE_TYPE_ELEMENT, curMeasureType.getId()));
}
infoElement.appendChild(createSimpleElement(doc, METER_KIND_ELEMENT, METER_KIND_RDTSC));
final Element injectInfoElement = doc.createElement(INJECT_INFO_ELEMENT);
final Element symbolSearchElement = doc.createElement(SYMBOL_SEARCH_ELEMENT);
symbolSearchElement.appendChild(createSimpleElement(doc, SEARCH_PATHS_ELEMENT, ""));
injectInfoElement.appendChild(symbolSearchElement);
final Element injectInfoScopeElement = doc.createElement(SCOPE_ELEMENT);
injectInfoScopeElement.appendChild(createSimpleElement(doc, PATTERN_FILTERS_ELEMENT, ""));
injectInfoScopeElement.appendChild(createSimpleElement(doc, DENY_ATTRIBUTE_FILTERS_ELEMENT, ""));
injectInfoElement.appendChild(injectInfoScopeElement);
infoElement.appendChild(injectInfoElement);
rootElement.appendChild(infoElement);
doc.appendChild(rootElement);
return myDocumentManager.convertDocumentToString(doc, outDocumentProperties);
}