Example usage for org.aspectj.tools.ajc Main run

List of usage examples for org.aspectj.tools.ajc Main run

Introduction

In this page you can find the example usage for org.aspectj.tools.ajc Main run.

Prototype

public void run(String[] args, IMessageHolder holder) 

Source Link

Document

Run without using System.exit(..), putting all messages in holder:
  • ERROR: compiler error
  • WARNING: compiler warning
  • FAIL: command error (bad arguments, exception thrown)
This handles incremental behavior:
  • If args include "-incremental", repeat for every input char until 'q' is entered.

    Usage

    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();/* www  .java 2  s  .co 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();
        }
    }