Example usage for org.aspectj.bridge IMessage RA_IMessage

List of usage examples for org.aspectj.bridge IMessage RA_IMessage

Introduction

In this page you can find the example usage for org.aspectj.bridge IMessage RA_IMessage.

Prototype

IMessage[] RA_IMessage

To view the source code for org.aspectj.bridge IMessage RA_IMessage.

Click Source Link

Document

no messages

Usage

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  .  ja v a 2s  .c o  m*/
            "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;
}