Search in sources :

Example 81 with Path

use of org.apache.tools.ant.types.Path in project cuke4duke by cucumber.

the class AbstractJRubyMojo method append.

protected void append(Path classPath, List<?> artifacts) throws DependencyResolutionRequiredException {
    List<String> list = new ArrayList<String>(artifacts.size());
    for (Object elem : artifacts) {
        String path;
        if (elem instanceof Artifact) {
            Artifact a = (Artifact) elem;
            File file = a.getFile();
            if (file == null) {
                throw new DependencyResolutionRequiredException(a);
            }
            path = file.getPath();
        } else {
            path = elem.toString();
        }
        list.add(path);
    }
    Path p = new Path(classPath.getProject());
    p.setPath(StringUtils.join(list.iterator(), File.pathSeparator));
    classPath.append(p);
}
Also used : Path(org.apache.tools.ant.types.Path) DependencyResolutionRequiredException(org.apache.maven.artifact.DependencyResolutionRequiredException) ArrayList(java.util.ArrayList) File(java.io.File) Artifact(org.apache.maven.artifact.Artifact)

Example 82 with Path

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(Map<String, SmapStratum> smaps) 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");
    }
    // Configure the compiler object
    javac.setEncoding(javaEncoding);
    javac.setClasspath(path);
    javac.setDebug(ctxt.getOptions().getClassDebugInfo());
    javac.setSrcdir(srcPath);
    javac.setTempdir(options.getScratchDir());
    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);
        if (!javaFile.delete()) {
            throw new JasperException(Localizer.getMessage("jsp.warning.compiler.javafile.delete.fail", javaFile));
        }
    }
    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(smaps);
    }
}
Also used : Path(org.apache.tools.ant.types.Path) Javac(org.apache.tools.ant.taskdefs.Javac) StringTokenizer(java.util.StringTokenizer) JasperException(org.apache.jasper.JasperException) BuildException(org.apache.tools.ant.BuildException) File(java.io.File) PatternSet(org.apache.tools.ant.types.PatternSet)

Example 83 with Path

use of org.apache.tools.ant.types.Path in project checkstyle by checkstyle.

the class CheckstyleAntTaskTest method testSetClasspathRef.

@Test
public void testSetClasspathRef() {
    final CheckstyleAntTask antTask = new CheckstyleAntTask();
    antTask.setClasspathRef(new Reference(new Project(), "id"));
    assertWithMessage("Classpath should not be null").that(TestUtil.<Path>getInternalState(antTask, "classpath")).isNotNull();
}
Also used : Path(org.apache.tools.ant.types.Path) Project(org.apache.tools.ant.Project) Reference(org.apache.tools.ant.types.Reference) Test(org.junit.jupiter.api.Test)

Example 84 with Path

use of org.apache.tools.ant.types.Path in project cayenne by apache.

the class CayenneGeneratorTaskCrossMapRelationshipsTest method testCrossDataMapRelationships.

/**
 * Tests pairs generation with a cross-DataMap relationship.
 */
@Test
public void testCrossDataMapRelationships() throws Exception {
    CayenneGeneratorTask task = new CayenneGeneratorTask();
    task.setProject(new Project());
    task.setTaskName("Test");
    task.setLocation(Location.UNKNOWN_LOCATION);
    // prepare destination directory
    File destDir = new File(FileUtil.baseTestDirectory(), "cgen12");
    // prepare destination directory
    if (!destDir.exists()) {
        assertTrue(destDir.mkdirs());
    }
    File map = new File(destDir, "cgen-dependent.map.xml");
    ResourceUtil.copyResourceToFile("org/apache/cayenne/tools/cgen-dependent.map.xml", map);
    File[] additionalMaps = new File[1];
    additionalMaps[0] = new File(destDir, "cgen.map.xml");
    ResourceUtil.copyResourceToFile("org/apache/cayenne/tools/cgen.map.xml", additionalMaps[0]);
    FileList additionalMapsFilelist = new FileList();
    additionalMapsFilelist.setDir(additionalMaps[0].getParentFile());
    additionalMapsFilelist.setFiles(additionalMaps[0].getName());
    Path additionalMapsPath = new Path(task.getProject());
    additionalMapsPath.addFilelist(additionalMapsFilelist);
    // setup task
    task.setMap(map);
    task.setAdditionalMaps(additionalMapsPath);
    task.setMakepairs(true);
    task.setOverwrite(false);
    task.setMode("entity");
    task.setIncludeEntities("MyArtGroup");
    task.setDestDir(destDir);
    task.setSuperpkg("org.apache.cayenne.testdo.cgen2.auto");
    task.setUsepkgpath(true);
    // run task
    task.execute();
    // check results
    File a = new File(destDir, convertPath("org/apache/cayenne/testdo/cgen2/MyArtGroup.java"));
    assertTrue(a.isFile());
    assertContents(a, "MyArtGroup", "org.apache.cayenne.testdo.cgen2", "_MyArtGroup");
    File _a = new File(destDir, convertPath("org/apache/cayenne/testdo/cgen2/auto/_MyArtGroup.java"));
    assertTrue(_a.exists());
    assertContents(_a, "_MyArtGroup", "org.apache.cayenne.testdo.cgen2.auto", "BaseDataObject");
    assertContents(_a, "import org.apache.cayenne.testdo.testmap.ArtGroup;");
    assertContents(_a, " ArtGroup getToParentGroup()");
    assertContents(_a, "setToParentGroup(ArtGroup toParentGroup)");
}
Also used : Path(org.apache.tools.ant.types.Path) Project(org.apache.tools.ant.Project) FileList(org.apache.tools.ant.types.FileList) File(java.io.File) Test(org.junit.Test)

Example 85 with Path

use of org.apache.tools.ant.types.Path in project closure-compiler by google.

the class CompileTask method getLastModifiedTime.

/**
 * Returns the most recent modified timestamp of the file collection.
 *
 * Note: this must be combined into one method to account for both
 * Path and FileList erasure types.
 *
 * @param fileLists Collection of FileList or Path
 * @return Most recent modified timestamp
 */
private long getLastModifiedTime(List<?> fileLists) {
    long lastModified = 0;
    for (Object entry : fileLists) {
        if (entry instanceof FileList) {
            FileList list = (FileList) entry;
            for (String fileName : list.getFiles(this.getProject())) {
                File path = list.getDir(this.getProject());
                File file = new File(path, fileName);
                lastModified = max(getLastModifiedTime(file), lastModified);
            }
        } else if (entry instanceof Path) {
            Path path = (Path) entry;
            for (String src : path.list()) {
                File file = new File(src);
                lastModified = max(getLastModifiedTime(file), lastModified);
            }
        }
    }
    return lastModified;
}
Also used : Path(org.apache.tools.ant.types.Path) FileList(org.apache.tools.ant.types.FileList) SourceFile(com.google.javascript.jscomp.SourceFile) File(java.io.File)

Aggregations

Path (org.apache.tools.ant.types.Path)175 File (java.io.File)81 BuildException (org.apache.tools.ant.BuildException)57 Test (org.junit.Test)49 Project (org.apache.tools.ant.Project)28 IOException (java.io.IOException)27 Commandline (org.apache.tools.ant.types.Commandline)21 ArrayList (java.util.ArrayList)15 DirectoryScanner (org.apache.tools.ant.DirectoryScanner)12 AntClassLoader (org.apache.tools.ant.AntClassLoader)9 GroovyClassLoader (groovy.lang.GroovyClassLoader)8 URL (java.net.URL)8 StringTokenizer (java.util.StringTokenizer)8 Reference (org.apache.tools.ant.types.Reference)8 Java (org.apache.tools.ant.taskdefs.Java)7 FileSet (org.apache.tools.ant.types.FileSet)7 Resource (org.apache.tools.ant.types.Resource)7 FileWriter (java.io.FileWriter)6 List (java.util.List)6 Execute (org.apache.tools.ant.taskdefs.Execute)6