void (String text) { final String trimmed = text.trim(); if (trimmed.startsWith(GroovyRtConstants.PRESENTABLE_MESSAGE)) { String message = trimmed.substring(GroovyRtConstants.PRESENTABLE_MESSAGE.length()); updateStatus(message); return; } if (GroovyRtConstants.CLEAR_PRESENTABLE.equals(trimmed)) { updateStatus(GroovyJpsBundle.message("groovy.compiler.in.operation")); return; } if (StringUtil.isNotEmpty(text)) { outputBuffer.append(text); //compiled start marker have to be in the beginning on each string if (outputBuffer.indexOf(GroovyRtConstants.COMPILED_START) != -1) { if (outputBuffer.indexOf(GroovyRtConstants.COMPILED_END) == -1) { return; } final String compiled = handleOutputBuffer(GroovyRtConstants.COMPILED_START, GroovyRtConstants.COMPILED_END); final List<String> list = splitAndTrim(compiled); String outputPath = list.get(0); String sourceFile = list.get(1); OutputItem item = new OutputItem(outputPath, sourceFile); if (LOG.isDebugEnabled()) { LOG.debug("Output: " + item); } myCompiledItems.add(item); } else if (outputBuffer.indexOf(GroovyRtConstants.MESSAGES_START) != -1) { if (outputBuffer.indexOf(GroovyRtConstants.MESSAGES_END) == -1) { return; } text = handleOutputBuffer(GroovyRtConstants.MESSAGES_START, GroovyRtConstants.MESSAGES_END); List<String> tokens = splitAndTrim(text); LOG.assertTrue(tokens.size() > 4, "Wrong number of output params"); String category = tokens.get(0); String message = tokens.get(1); String url = tokens.get(2); String lineNum = tokens.get(3); String columnNum = tokens.get(4); int lineInt; int columnInt; try { lineInt = Integer.parseInt(lineNum); columnInt = Integer.parseInt(columnNum); } catch (NumberFormatException e) { LOG.error(e); lineInt = 0; columnInt = 0; } BuildMessage.Kind kind = category.equals(GroovyCompilerMessageCategories.ERROR) ? BuildMessage.Kind.ERROR : category.equals(GroovyCompilerMessageCategories.WARNING) ? BuildMessage.Kind.WARNING : BuildMessage.Kind.INFO; if (StringUtil.isEmpty(url) || "null".equals(url)) { url = null; message = GroovyJpsBundle.message("while.compiling.chunk.0.message.1", myChunk.getPresentableShortName(), message); } CompilerMessage compilerMessage = new CompilerMessage( GroovyJpsBundle.message("compiler.name.groovyc"), kind, message, url, -1, -1, -1, lineInt, columnInt ); if (LOG.isDebugEnabled()) { LOG.debug("Message: " + compilerMessage); } addCompilerMessage(compilerMessage); } } }