Example usage for org.apache.commons.jci.compilers CompilationResult CompilationResult

List of usage examples for org.apache.commons.jci.compilers CompilationResult CompilationResult

Introduction

In this page you can find the example usage for org.apache.commons.jci.compilers CompilationResult CompilationResult.

Prototype

public CompilationResult(final CompilationProblem[] pProblems) 

Source Link

Usage

From source file:nl.tue.gale.common.code.JaninoJavaCompiler.java

public CompilationResult compile(final String[] pSourceNames, final ResourceReader pResourceReader,
        final ResourceStore pStore, final ClassLoader pClassLoader, final JavaCompilerSettings pSettings) {

    final Map classFilesByName = new HashMap();

    final CompilingIClassLoader icl = new CompilingIClassLoader(pResourceReader, classFilesByName,
            pClassLoader);/*from  ww w  .j av a2  s  .c  om*/
    for (int i = 0; i < pSourceNames.length; i++) {
        try {
            icl.loadIClass(
                    Descriptor.fromClassName(ConversionUtils.convertResourceToClassName(pSourceNames[i])));
        } catch (ClassNotFoundException e) {
            throw new IllegalArgumentException("unable to compile code", e);
        }
    }

    // Store all fully compiled classes
    for (Iterator i = classFilesByName.entrySet().iterator(); i.hasNext();) {
        final Map.Entry entry = (Map.Entry) i.next();
        final String clazzName = (String) entry.getKey();
        pStore.write(ConversionUtils.convertClassToResourcePath(clazzName), (byte[]) entry.getValue());
    }

    final Collection problems = icl.getProblems();
    final CompilationProblem[] result = new CompilationProblem[problems.size()];
    problems.toArray(result);
    return new CompilationResult(result);
}

From source file:org.auroraide.server.jci.compilers.Jsr199JavaCompiler.java

public CompilationResult compile(final String[] pResourcePaths, final ResourceReader pReader,
        final ResourceStore pStore, final ClassLoader classLoader, JavaCompilerSettings settings) {

    final Collection<JavaFileObject> units = new ArrayList<JavaFileObject>();
    for (int i = 0; i < pResourcePaths.length; i++) {
        final String sourcePath = pResourcePaths[i];
        log.debug("compiling " + sourcePath);
        final String source = pResourcePaths[i];
        if (pReader.isAvailable(source))
            units.add(new CompilationUnit(sourcePath, pReader));
    }/*from w  ww .j av  a2s.c  om*/

    final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

    final JavaFileManager fileManager = new JciJavaFileManager(units, pStore);
    final DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
    // final JavaFileManager fileManager1 =
    // compiler.getStandardFileManager(null,null,null);

    System.getProperties();

    compiler.getTask(null, fileManager, diagnostics, options, null, units).call();

    try {
        fileManager.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    final List<Diagnostic<? extends JavaFileObject>> jsrProblems = diagnostics.getDiagnostics();
    final CompilationProblem[] problems = new CompilationProblem[jsrProblems.size()];
    int i = 0;
    for (final Diagnostic<? extends JavaFileObject> jsrProblem : jsrProblems) {
        problems[i++] = new Jsr199CompilationProblem(jsrProblem);

        if (problemHandler != null) {
            problemHandler.handle(problems[i - 1]);
        }
    }

    return new CompilationResult(problems);
}