@SuppressWarnings("unchecked") private <I> I instantiateImplementation(Class<?>[] constructorParameterTypes, String name, CompilationResult result, Object[] args) { try { Class<I> implementation = (Class<I>) result.getClassLoader().loadClass(name); Constructor<I> constructor = implementation.getConstructor(constructorParameterTypes); return constructor.newInstance(args); } catch (Exception e) { throw new RuntimeException(e); } }
@Override public String toString() { return isSuccessful() ? "Compilation was successful" : "Errors:\n" + diagnostics.toString(); } }
public CompilationResult compile(final List<StringWrappingJavaFile> javaFiles) { DiagnosticsHolder holder = new DiagnosticsHolder(); CompilationTask task = compiler.getTask(null, null, holder, options, null, javaFiles); if (task.call()) { return new CompilationResult(new URLClassLoader(compilationDirectoryUrls), holder.diagnostics); } else { return new CompilationResult(holder.diagnostics); } }
CompilationResult result = compiler.compile(model.blockingQueueClassName, blockingQueueClassFile); if (result.isSuccessful()) { try { blockingClass = result.getClassLoader().loadClass("org.jctools.queues.blocking."+model.blockingQueueClassName); System.out.println(result.getDiagnostics()); return null;
private void checkCompileFailures(String templateFile, CompilationResult result) { List<Diagnostic<StringWrappingJavaFile>> diagnostics = result.getDiagnostics(); if (debugEnabled) { if (diagnostics.isEmpty()) { System.err.println("No compile diagnostics for: " + templateFile); } else { System.err.println("---------------------------------------"); System.err.println("Compile diagnostics for: " + templateFile); for (Diagnostic<StringWrappingJavaFile> diagnostic : diagnostics) { System.err.println(diagnostic); System.err.println(); } System.err.println("---------------------------------------"); } } if (!result.isSuccessful()) { throw new IllegalArgumentException("Unable to compile " + templateFile); } }