List of usage examples for org.aspectj.bridge MessageHandler MessageHandler
public MessageHandler()
From source file:io.github.whiskeysierra.archer.Compiling.java
License:Apache License
default List<IMessage> compile(final Class<?>... classes) throws IOException { final TemporaryFolder temporaryFolder = new TemporaryFolder(); temporaryFolder.create();/*from w ww. j a v a 2 s .c o m*/ try { final List<String> arguments = new ArrayList<>(); arguments.add("-source"); arguments.add("1.8"); arguments.add("-target"); arguments.add("1.8"); arguments.add("-cp"); arguments.add(System.getProperty("java.class.path")); arguments.add("-aspectpath"); arguments.add("target/classes"); arguments.add("-d"); arguments.add(temporaryFolder.newFolder().getAbsolutePath()); asList(classes).stream().map(Class::getName).map(n -> n.replace('.', '/')) .map(n -> format("src/test/java/%s.java", n)).forEach(arguments::add); final Main compiler = new Main(); final MessageHandler handler = new MessageHandler(); compiler.run(toArray(arguments, String.class), handler); return asList(handler.getMessages(null, true)).stream().filter(IMessage::isError).collect(toList()); } finally { temporaryFolder.delete(); } }
From source file:org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter.java
License:Open Source License
public boolean execute() throws BuildException { javac.log(//from w w w .j a v a 2s . c om "Note that you may see messages about skipping *.aj files above. " + "These messages can be ignored as these files are handled directly by " + "ajc. Similarly, the messages below about skipping *.java files can be ignored.", Project.MSG_INFO); // javac task spits out messages that it if (null == javac) { throw new IllegalStateException("null javac"); } if (!((Boolean) inSelfCall.get()).booleanValue() && afterCleaningDirs()) { // if we are not re-calling ourself and we cleaned dirs, // then re-call javac to get the list of all source files. inSelfCall.set(Boolean.TRUE); javac.execute(); // javac re-invokes us after recalculating file list } else { try { AjcTask ajc = new AjcTask(); String err = ajc.setupAjc(javac); if (null != err) { throw new BuildException(err, javac.getLocation()); } addAJFiles(ajc); IMessageHolder handler = new MessageHandler(); ajc.setMessageHolder(handler); String logFile = null; String[] args = javac.getCurrentCompilerArgs(); for (int i = 0; i < args.length; i++) { if (args[i].equals("-log") && args.length > i) { logFile = args[i + 1]; ajc.setLog(new File(logFile)); break; } } ajc.execute(); // if log file is used, this message handler will never show any errors IMessage[] messages = handler.getMessages(IMessage.ERROR, true); if (messages != IMessage.RA_IMessage && logFile != null) { // log messages String msg = "Compilation has errors or warnings. Log is available in " + logFile; javac.log(msg, Project.MSG_INFO); return false; } else { return ajc.wasCompilationSuccessful(); } } finally { inSelfCall.set(Boolean.FALSE); } } return true; }