use of org.apache.tools.ant.types.Path in project tomcat by apache.
the class AntCompiler method generateClass.
// --------------------------------------------------------- Public Methods
/**
* Compile the servlet from .java file to .class file
*/
@Override
protected void generateClass(String[] smap) throws FileNotFoundException, JasperException, Exception {
long t1 = 0;
if (log.isDebugEnabled()) {
t1 = System.currentTimeMillis();
}
String javaEncoding = ctxt.getOptions().getJavaEncoding();
String javaFileName = ctxt.getServletJavaFileName();
String classpath = ctxt.getClassPath();
StringBuilder errorReport = new StringBuilder();
StringBuilder info = new StringBuilder();
info.append("Compile: javaFileName=" + javaFileName + "\n");
info.append(" classpath=" + classpath + "\n");
// Start capturing the System.err output for this thread
SystemLogHandler.setThread();
// Initializing javac task
getProject();
Javac javac = (Javac) project.createTask("javac");
// Initializing classpath
Path path = new Path(project);
path.setPath(System.getProperty("java.class.path"));
info.append(" cp=" + System.getProperty("java.class.path") + "\n");
StringTokenizer tokenizer = new StringTokenizer(classpath, File.pathSeparator);
while (tokenizer.hasMoreElements()) {
String pathElement = tokenizer.nextToken();
File repository = new File(pathElement);
path.setLocation(repository);
info.append(" cp=" + repository + "\n");
}
if (log.isDebugEnabled()) {
log.debug("Using classpath: " + System.getProperty("java.class.path") + File.pathSeparator + classpath);
}
// Initializing sourcepath
Path srcPath = new Path(project);
srcPath.setLocation(options.getScratchDir());
info.append(" work dir=" + options.getScratchDir() + "\n");
// Initialize and set java extensions
String exts = System.getProperty("java.ext.dirs");
if (exts != null) {
Path extdirs = new Path(project);
extdirs.setPath(exts);
javac.setExtdirs(extdirs);
info.append(" extension dir=" + exts + "\n");
}
// See Bugzilla 31257
if (ctxt.getOptions().getFork()) {
String endorsed = System.getProperty("java.endorsed.dirs");
if (endorsed != null) {
Javac.ImplementationSpecificArgument endorsedArg = javac.createCompilerArg();
endorsedArg.setLine("-J-Djava.endorsed.dirs=" + quotePathList(endorsed));
info.append(" endorsed dir=" + quotePathList(endorsed) + "\n");
} else {
info.append(" no endorsed dirs specified\n");
}
}
// Configure the compiler object
javac.setEncoding(javaEncoding);
javac.setClasspath(path);
javac.setDebug(ctxt.getOptions().getClassDebugInfo());
javac.setSrcdir(srcPath);
javac.setTempdir(options.getScratchDir());
javac.setOptimize(!ctxt.getOptions().getClassDebugInfo());
javac.setFork(ctxt.getOptions().getFork());
info.append(" srcDir=" + srcPath + "\n");
// Set the Java compiler to use
if (options.getCompiler() != null) {
javac.setCompiler(options.getCompiler());
info.append(" compiler=" + options.getCompiler() + "\n");
}
if (options.getCompilerTargetVM() != null) {
javac.setTarget(options.getCompilerTargetVM());
info.append(" compilerTargetVM=" + options.getCompilerTargetVM() + "\n");
}
if (options.getCompilerSourceVM() != null) {
javac.setSource(options.getCompilerSourceVM());
info.append(" compilerSourceVM=" + options.getCompilerSourceVM() + "\n");
}
// Build includes path
PatternSet.NameEntry includes = javac.createInclude();
includes.setName(ctxt.getJavaPath());
info.append(" include=" + ctxt.getJavaPath() + "\n");
BuildException be = null;
try {
if (ctxt.getOptions().getFork()) {
javac.execute();
} else {
synchronized (javacLock) {
javac.execute();
}
}
} catch (BuildException e) {
be = e;
log.error(Localizer.getMessage("jsp.error.javac"), e);
log.error(Localizer.getMessage("jsp.error.javac.env") + info.toString());
}
errorReport.append(logger.getReport());
// Stop capturing the System.err output for this thread
String errorCapture = SystemLogHandler.unsetThread();
if (errorCapture != null) {
errorReport.append(System.lineSeparator());
errorReport.append(errorCapture);
}
if (!ctxt.keepGenerated()) {
File javaFile = new File(javaFileName);
javaFile.delete();
}
if (be != null) {
String errorReportString = errorReport.toString();
log.error(Localizer.getMessage("jsp.error.compilation", javaFileName, errorReportString));
JavacErrorDetail[] javacErrors = ErrorDispatcher.parseJavacErrors(errorReportString, javaFileName, pageNodes);
if (javacErrors != null) {
errDispatcher.javacError(javacErrors);
} else {
errDispatcher.javacError(errorReportString, be);
}
}
if (log.isDebugEnabled()) {
long t2 = System.currentTimeMillis();
log.debug("Compiled " + ctxt.getServletJavaFileName() + " " + (t2 - t1) + "ms");
}
logger = null;
project = null;
if (ctxt.isPrototypeMode()) {
return;
}
// JSR45 Support
if (!options.isSmapSuppressed()) {
SmapUtil.installSmap(smap);
}
}
use of org.apache.tools.ant.types.Path in project flyway by flyway.
the class AbstractFlywayTask method setClasspathref.
/**
* @param classpathref The reference to the classpath used to load the JDBC driver and the migrations.<br>Also
* configurable with Ant Property: ${flyway.classpathref}
*/
public void setClasspathref(Reference classpathref) {
Path classPath = new Path(getProject());
classPath.setRefid(classpathref);
this.classPath = classPath;
}
use of org.apache.tools.ant.types.Path in project flyway by flyway.
the class AbstractFlywayTask method prepareClassPath.
/**
* Prepares the classpath this task runs in, so that it includes both the classpath for Flyway and the classpath for
* the JDBC drivers and migrations.
*/
private void prepareClassPath() {
Path classpath = (Path) getProject().getReference("flyway.classpath");
if (classpath != null) {
setClasspath(classpath);
} else {
Reference classpathRef = (Reference) getProject().getReference("flyway.classpathref");
if (classpathRef != null) {
setClasspathref(classpathRef);
}
}
ClassLoader classLoader = new AntClassLoader(getClass().getClassLoader(), getProject(), classPath);
Thread.currentThread().setContextClassLoader(classLoader);
}
use of org.apache.tools.ant.types.Path in project intellij-community by JetBrains.
the class Javac2 method buildClasspathClassLoader.
/**
* Create class loader based on classpath, bootclasspath, and sourcepath.
*
* @return a URL classloader
*/
private InstrumentationClassFinder buildClasspathClassLoader() {
final StringBuffer classPathBuffer = new StringBuffer();
final Project project = getProject();
final Path cp = new Path(project);
appendPath(cp, getBootclasspath());
cp.setLocation(getDestdir().getAbsoluteFile());
appendPath(cp, getClasspath());
appendPath(cp, getSourcepath());
appendPath(cp, getSrcdir());
if (getIncludeantruntime()) {
cp.addExisting(cp.concatSystemClasspath("last"));
}
boolean shouldInclude = getIncludejavaruntime();
if (!shouldInclude) {
if (project != null) {
final String propValue = project.getProperty(PROPERTY_INSTRUMENTATION_INCLUDE_JAVA_RUNTIME);
shouldInclude = !("false".equalsIgnoreCase(propValue) || "no".equalsIgnoreCase(propValue));
} else {
shouldInclude = true;
}
}
if (shouldInclude) {
cp.addJavaRuntime();
}
cp.addExtdirs(getExtdirs());
final String[] pathElements = cp.list();
for (int i = 0; i < pathElements.length; i++) {
final String pathElement = pathElements[i];
classPathBuffer.append(File.pathSeparator);
classPathBuffer.append(pathElement);
}
final String classPath = classPathBuffer.toString();
log("classpath=" + classPath, Project.MSG_VERBOSE);
try {
return createInstrumentationClassFinder(classPath);
} catch (MalformedURLException e) {
fireError(e.getMessage());
return null;
}
}
use of org.apache.tools.ant.types.Path in project intellij-community by JetBrains.
the class GenerateGroovyDocAction method generateGroovydoc.
private static void generateGroovydoc(final GroovyDocConfiguration configuration, final Project project) {
Runnable groovyDocRun = () -> {
Groovydoc groovydoc = new Groovydoc();
groovydoc.setProject(new org.apache.tools.ant.Project());
groovydoc.setDestdir(new File(configuration.OUTPUT_DIRECTORY));
groovydoc.setPrivate(configuration.OPTION_IS_PRIVATE);
groovydoc.setUse(configuration.OPTION_IS_USE);
groovydoc.setWindowtitle(configuration.WINDOW_TITLE);
final Path path = new Path(new org.apache.tools.ant.Project());
path.setPath(configuration.INPUT_DIRECTORY);
groovydoc.setSourcepath(path);
String packages = "";
for (int i = 0; i < configuration.PACKAGES.length; i++) {
final String s = configuration.PACKAGES[i];
if (s != null && s.isEmpty())
continue;
if (i > 0) {
packages += ",";
}
packages += s;
}
groovydoc.setPackagenames(packages);
final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator();
progressIndicator.setIndeterminate(true);
progressIndicator.setText(GroovyDocBundle.message("groovy.doc.progress.indication.text"));
groovydoc.execute();
};
ProgressManager.getInstance().runProcessWithProgressSynchronously(groovyDocRun, GroovyDocBundle.message("groovy.documentation.generating"), false, project);
if (configuration.OPEN_IN_BROWSER) {
File url = new File(configuration.OUTPUT_DIRECTORY, INDEX_HTML);
if (url.exists()) {
BrowserUtil.browse(url);
}
}
}
Aggregations