void (ProcessorConfigProfile profile, Element element) { profile.setName(element.getAttributeValue(NAME, "")); profile.setEnabled(Boolean.parseBoolean(element.getAttributeValue(ENABLED, "false"))); profile.setProcOnly(Boolean.parseBoolean(element.getAttributeValue(PROC_ONLY, "false"))); final Element srcOutput = element.getChild("sourceOutputDir"); final String out = srcOutput != null ? srcOutput.getAttributeValue(NAME) : null; profile.setGeneratedSourcesDirectoryName(out != null ? FileUtilRt.toSystemDependentName(out) : null, false); final Element srcTestOutput = element.getChild("sourceTestOutputDir"); final String testOut = srcTestOutput != null ? srcTestOutput.getAttributeValue(NAME) : null; profile.setGeneratedSourcesDirectoryName(testOut != null? FileUtilRt.toSystemDependentName(testOut) : null, true); final Element isRelativeToContentRoot = element.getChild("outputRelativeToContentRoot"); if (isRelativeToContentRoot != null) { profile.setOutputRelativeToContentRoot(Boolean.parseBoolean(isRelativeToContentRoot.getAttributeValue(VALUE))); } profile.clearProcessorOptions(); for (Element optionElement : element.getChildren(OPTION)) { final String key = optionElement.getAttributeValue(NAME); final String value = optionElement.getAttributeValue(VALUE); if (!StringUtil.isEmptyOrSpaces(key) && value != null) { profile.setOption(key, value); } } profile.clearProcessors(); for (Element procElement : element.getChildren("processor")) { final String name = procElement.getAttributeValue(NAME); if (!StringUtil.isEmptyOrSpaces(name)) { profile.addProcessor(name); } } final Element pathElement = element.getChild("processorPath"); if (pathElement != null) { profile.setObtainProcessorsFromClasspath(Boolean.parseBoolean(pathElement.getAttributeValue(USE_CLASSPATH, "true"))); profile.setUseProcessorModulePath(Boolean.parseBoolean(pathElement.getAttributeValue(USE_PROC_MODULE_PATH, "false"))); final StringBuilder pathBuilder = new StringBuilder(); for (Element entry : pathElement.getChildren(ENTRY)) { final String path = entry.getAttributeValue(NAME); if (!StringUtil.isEmptyOrSpaces(path)) { if (pathBuilder.length() > 0) { pathBuilder.append(File.pathSeparator); } pathBuilder.append(FileUtilRt.toSystemDependentName(path)); } } profile.setProcessorPath(pathBuilder.toString()); } profile.clearModuleNames(); for (Element moduleElement : element.getChildren(MODULE)) { final String name = moduleElement.getAttributeValue(NAME); if (!StringUtil.isEmptyOrSpaces(name)) { profile.addModuleName(name); } } }