Example usage for org.aspectj.util LangUtil unqualifiedClassName

List of usage examples for org.aspectj.util LangUtil unqualifiedClassName

Introduction

In this page you can find the example usage for org.aspectj.util LangUtil unqualifiedClassName.

Prototype

public static String unqualifiedClassName(Object o) 

Source Link

Usage

From source file:org.eclipse.ajdt.core.ant.AjcTask.java

License:Open Source License

/**
 * Compile using ajc per settings.//from  w  w  w. ja  v  a  2s . c om
 * 
 * @exception BuildException if the compilation has problems or if there were compiler errors and failonerror is true.
 */
public void execute() throws BuildException {
    this.logger = new TaskLogger(this);
    if (executing) {
        throw new IllegalStateException("already executing");
    } else {
        executing = true;
    }
    setupOptions();
    verifyOptions();
    try {
        String[] args = makeCommand();
        if (logCommand) {
            log("ajc " + Arrays.asList(args));
        } else {
            logVerbose("ajc " + Arrays.asList(args));
        }
        if (!fork) {
            wasCompilationSuccessful = executeInSameVM(args);
        } else { // when forking, Adapter handles failonerror
            wasCompilationSuccessful = executeInOtherVM(args);
        }
    } catch (BuildException e) {
        throw e;
    } catch (Throwable x) {
        this.logger.error(Main.renderExceptionForUser(x));
        throw new BuildException(
                "IGNORE -- See " + LangUtil.unqualifiedClassName(x) + " rendered to ant logger");
    } finally {
        executing = false;
        if (null != tmpOutjar) {
            tmpOutjar.delete();
        }
    }
}

From source file:org.eclipse.ajdt.core.ant.AjcTask.java

License:Open Source License

/**
 * Run the compile in the same VM by loading the compiler (Main), setting up any message holders, doing the compile, and
 * converting abort/failure and error messages to BuildException, as appropriate.
 * /*from w ww .  j a  v  a2  s.c om*/
  * @return true on successful compilation
 * @throws BuildException if abort or failure messages or if errors and failonerror.
 * 
 */
protected boolean executeInSameVM(String[] args) {
    if (null != maxMem) {
        log("maxMem ignored unless forked: " + maxMem, Project.MSG_WARN);
    }
    IMessageHolder holder = messageHolder;
    int numPreviousErrors;
    if (null == holder) {
        MessageHandler mhandler = new MessageHandler(true);
        final IMessageHandler delegate;
        delegate = new AntMessageHandler(this.logger, this.verbose, false);
        mhandler.setInterceptor(delegate);
        holder = mhandler;
        numPreviousErrors = 0;
    } else {
        numPreviousErrors = holder.numMessages(IMessage.ERROR, true);
    }
    AjdtCommandForAnt command = new AjdtCommandForAnt();
    {
        Main newmain = new Main();
        newmain.setCommand(command);
        newmain.setHolder(holder);
        newmain.setCompletionRunner(new Runnable() {
            public void run() {
                doCompletionTasks();
            }
        });
        if (null != main) {
            MessageUtil.fail(holder, "still running prior main");
            return false;
        }
        main = newmain;
    }
    main.runMain(args, false);
    if (failonerror) {
        int errs = holder.numMessages(IMessage.ERROR, false);
        errs -= numPreviousErrors;
        if (0 < errs) {
            String m = errs + " errors";
            MessageUtil.print(System.err, holder, "", MessageUtil.MESSAGE_ALL, MessageUtil.PICK_ERROR, true);
            throw new BuildException(m);
        }
    }
    // Throw BuildException if there are any fail or abort
    // messages.
    // The BuildException message text has a list of class names
    // for the exceptions found in the messages, or the
    // number of fail/abort messages found if there were
    // no exceptions for any of the fail/abort messages.
    // The interceptor message handler should have already
    // printed the messages, including any stack traces.
    // HACK: this ignores the Usage message
    {
        IMessage[] fails = holder.getMessages(IMessage.FAIL, true);
        if (!LangUtil.isEmpty(fails)) {
            StringBuffer sb = new StringBuffer();
            String prefix = "fail due to ";
            int numThrown = 0;
            for (int i = 0; i < fails.length; i++) {
                String message = fails[i].getMessage();
                if (LangUtil.isEmpty(message)) {
                    message = "<no message>";
                } else if (-1 != message.indexOf(USAGE_SUBSTRING)) {
                    continue;
                }
                Throwable t = fails[i].getThrown();
                if (null != t) {
                    numThrown++;
                    sb.append(prefix);
                    sb.append(LangUtil.unqualifiedClassName(t.getClass()));
                    String thrownMessage = t.getMessage();
                    if (!LangUtil.isEmpty(thrownMessage)) {
                        sb.append(" \"" + thrownMessage + "\"");
                    }
                }
                sb.append("\"" + message + "\"");
                prefix = ", ";
            }
            if (0 < sb.length()) {
                sb.append(" (" + numThrown + " exceptions)");
                throw new BuildException(sb.toString());
            }
        }
    }
    return command.isFailed();
}