Example usage for org.apache.maven.project MavenProject getTestCompileSourceRoots

List of usage examples for org.apache.maven.project MavenProject getTestCompileSourceRoots

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getTestCompileSourceRoots.

Prototype

public List<String> getTestCompileSourceRoots() 

Source Link

Usage

From source file:org.eclipse.tycho.core.osgitools.OsgiBundleProject.java

License:Open Source License

private void addPDESourceRoots(MavenProject project) {
    EclipsePluginProjectImpl eclipsePluginProject = getEclipsePluginProject(
            DefaultReactorProject.adapt(project));
    for (BuildOutputJar outputJar : eclipsePluginProject.getOutputJars()) {
        for (File sourceFolder : outputJar.getSourceFolders()) {
            removeDuplicateTestCompileRoot(sourceFolder, project.getTestCompileSourceRoots());
            project.addCompileSourceRoot(sourceFolder.getAbsolutePath());
        }//w  ww.  j  a v a2  s .c o m
    }
}

From source file:org.jboss.tools.maven.jbosspackaging.configurators.SarProjectConfigurator.java

License:Open Source License

public static void removeTestFolderLinks(IProject project, MavenProject mavenProject, IProgressMonitor monitor,
        String folder) throws CoreException {
    IVirtualComponent component = ComponentCore.createComponent(project);
    if (component != null) {
        IVirtualFolder jsrc = component.getRootFolder().getFolder(folder);
        for (IPath location : MavenProjectUtils.getSourceLocations(project,
                mavenProject.getTestCompileSourceRoots())) {
            if (location == null)
                continue;
            jsrc.removeLink(location, 0, monitor);
        }/* w  ww.  j ava 2 s  . co m*/
        for (IPath location : MavenProjectUtils.getResourceLocations(project,
                mavenProject.getTestResources())) {
            if (location == null)
                continue;
            jsrc.removeLink(location, 0, monitor);
        }
    }
}

From source file:org.jetbrains.idea.maven.server.embedder.Maven2ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null) {
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
    }//from ww  w .j ava  2s .  co  m

    MavenModel model = Maven2ModelConverter.convertModel(mavenProject.getModel(),
            mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
            mavenProject.getArtifacts(), (rootNode == null ? Collections.emptyList() : rootNode.getChildren()),
            mavenProject.getExtensionArtifacts(), getLocalRepositoryFile());

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            Maven2ModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null)
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);

    MavenModel model = null;//from   www  .j av a  2  s.  c o  m
    try {
        if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
            //noinspection unchecked
            final List<DependencyNode> dependencyNodes = rootNode == null
                    ? Collections.<DependencyNode>emptyList()
                    : rootNode.getChildren();
            model = MavenModelConverter.convertModel(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        } else {
            final DependencyResolutionResult dependencyResolutionResult = result
                    .getDependencyResolutionResult();
            final org.sonatype.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null
                    ? dependencyResolutionResult.getDependencyGraph()
                    : null;

            final List<org.sonatype.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null
                    ? dependencyGraph.getChildren()
                    : Collections.<org.sonatype.aether.graph.DependencyNode>emptyList();
            model = Maven30AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        }
    } catch (Exception e) {
        validate(mavenProject.getFile(), Collections.singleton(e), problems, null);
    }

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null) {
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
    }//from   www .j  a v a2s  .c  o  m

    MavenModel model = null;
    try {
        if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
            //noinspection unchecked
            final List<DependencyNode> dependencyNodes = rootNode == null
                    ? Collections.<DependencyNode>emptyList()
                    : rootNode.getChildren();
            model = MavenModelConverter.convertModel(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        } else {
            final DependencyResolutionResult dependencyResolutionResult = result
                    .getDependencyResolutionResult();
            final org.eclipse.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null
                    ? dependencyResolutionResult.getDependencyGraph()
                    : null;

            final List<org.eclipse.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null
                    ? dependencyGraph.getChildren()
                    : Collections.<org.eclipse.aether.graph.DependencyNode>emptyList();
            model = Maven3AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        }
    } catch (Exception e) {
        validate(mavenProject.getFile(), Collections.singleton(e), problems, null);
    }

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.jfrog.jade.plugins.idea.IdeaModuleMojo.java

License:Apache License

public void rewriteModule() throws MojoExecutionException {
    MavenProject executedProject = getExecutedProject();
    File moduleFile = new File(executedProject.getBasedir(), getIdeProjectName() + ".iml");
    try {/*  ww  w.  ja v  a 2  s .  c  o m*/
        Document document = readXmlDocument(moduleFile, "module.xml");

        Element module = document.getRootElement();

        // TODO: how can we let the WAR/EJBs plugin hook in and provide this?
        // TODO: merge in ejb-module, etc.
        if ("war".equals(executedProject.getPackaging())) {
            addWebModule(module);
        } else if ("ejb".equals(executedProject.getPackaging())) {
            addEjbModule(module);
        } else if ("ear".equals(executedProject.getPackaging())) {
            addEarModule(module);
        } else if (isIdeaPlugin()) {
            addPluginModule(module);
        }

        Element component = findComponent(module, "NewModuleRootManager");
        Element output = findElement(component, "output");
        output.addAttribute("url", getModuleFileUrl(executedProject.getBuild().getOutputDirectory()));

        Element outputTest = findElement(component, "output-test");
        outputTest.addAttribute("url", getModuleFileUrl(executedProject.getBuild().getTestOutputDirectory()));

        Element content = findElement(component, "content");

        removeOldElements(content, "sourceFolder");

        for (Iterator i = executedProject.getCompileSourceRoots().iterator(); i.hasNext();) {
            String directory = (String) i.next();
            addSourceFolder(content, directory, false);
        }
        for (Iterator i = executedProject.getTestCompileSourceRoots().iterator(); i.hasNext();) {
            String directory = (String) i.next();
            addSourceFolder(content, directory, true);
        }

        for (Iterator i = executedProject.getBuild().getResources().iterator(); i.hasNext();) {
            Resource resource = (Resource) i.next();
            String directory = resource.getDirectory();
            if (resource.getTargetPath() == null && !resource.isFiltering()) {
                addSourceFolder(content, directory, false);
            } else {
                getLog().info(
                        "Not adding resource directory as it has an incompatible target path or filtering: "
                                + directory);
            }
        }

        for (Iterator i = executedProject.getBuild().getTestResources().iterator(); i.hasNext();) {
            Resource resource = (Resource) i.next();
            String directory = resource.getDirectory();
            if (resource.getTargetPath() == null && !resource.isFiltering()) {
                addSourceFolder(content, directory, true);
            } else {
                getLog().info(
                        "Not adding test resource directory as it has an incompatible target path or filtering: "
                                + directory);
            }
        }

        removeOldElements(content, "excludeFolder");

        //For excludeFolder
        File target = new File(executedProject.getBuild().getDirectory());
        File classes = new File(executedProject.getBuild().getOutputDirectory());
        File testClasses = new File(executedProject.getBuild().getTestOutputDirectory());

        List sourceFolders = content.elements("sourceFolder");

        List<String> filteredExcludes = new ArrayList<String>();
        filteredExcludes.addAll(getExcludedDirectories(target, filteredExcludes, sourceFolders));
        filteredExcludes.addAll(getExcludedDirectories(classes, filteredExcludes, sourceFolders));
        filteredExcludes.addAll(getExcludedDirectories(testClasses, filteredExcludes, sourceFolders));

        if (getExclude() != null) {
            String[] dirs = getExclude().split("[,\\s]+");
            for (int i = 0; i < dirs.length; i++) {
                File excludedDir = new File(executedProject.getBasedir(), dirs[i]);
                filteredExcludes.addAll(getExcludedDirectories(excludedDir, filteredExcludes, sourceFolders));
            }
        }

        // even though we just ran all the directories in the filteredExcludes List through the intelligent
        // getExcludedDirectories method, we never actually were guaranteed the order that they were added was
        // in the order required to make the most optimized exclude list. In addition, the smart logic from
        // that method is entirely skipped if the directory doesn't currently exist. A simple string matching
        // will do pretty much the same thing and make the list more concise.
        List<String> actuallyExcluded = new ArrayList<String>();
        Collections.sort(filteredExcludes);
        for (Iterator i = filteredExcludes.iterator(); i.hasNext();) {
            String dirToExclude = i.next().toString();
            String dirToExcludeTemp = dirToExclude.replace('\\', '/');
            boolean addExclude = true;
            for (Iterator iterator = actuallyExcluded.iterator(); iterator.hasNext();) {
                String dir = iterator.next().toString();
                String dirTemp = dir.replace('\\', '/');
                if (dirToExcludeTemp.startsWith(dirTemp + "/")) {
                    addExclude = false;
                    break;
                } else if (dir.startsWith(dirToExcludeTemp + "/")) {
                    actuallyExcluded.remove(dir);
                }
            }

            if (addExclude) {
                actuallyExcluded.add(dirToExclude);
                addExcludeFolder(content, dirToExclude);
            }
        }

        rewriteDependencies(component);

        writeXmlDocument(moduleFile, document);
    } catch (DocumentException e) {
        throw new MojoExecutionException("Error parsing existing IML file " + moduleFile.getAbsolutePath(), e);
    } catch (IOException e) {
        throw new MojoExecutionException("Error parsing existing IML file " + moduleFile.getAbsolutePath(), e);
    }
}

From source file:org.jvnet.sorcerer.maven_plugin.SorcererTestReport.java

License:Apache License

protected List<String> getSourceRoots(MavenProject project) {
    return project.getTestCompileSourceRoots();
}

From source file:org.maven.ide.eclipse.embedder.BuildPathManager.java

License:Apache License

private void addDirs(IContainer project, Set sources, List sourceEntries, MavenProject mavenProject,
        File basedir, File projectBaseDir) {
    addSourceDirs(project, sources, sourceEntries, mavenProject.getCompileSourceRoots(), basedir,
            projectBaseDir);//from ww  w .j  a  v a  2s .c  o  m
    addSourceDirs(project, sources, sourceEntries, mavenProject.getTestCompileSourceRoots(), basedir,
            projectBaseDir);

    addResourceDirs(project, sources, sourceEntries, mavenProject.getBuild().getResources(), basedir,
            projectBaseDir);
    addResourceDirs(project, sources, sourceEntries, mavenProject.getBuild().getTestResources(), basedir,
            projectBaseDir);

    // HACK to support xmlbeans generated classes MNGECLIPSE-374
    File generatedClassesDir = new File(mavenProject.getBuild().getDirectory(),
            "generated-classes" + File.separator + "xmlbeans");
    IResource generatedClasses = project.findMember(toRelativeAndFixSeparator(projectBaseDir, //
            generatedClassesDir.getAbsolutePath()));
    if (generatedClasses != null && generatedClasses.isAccessible()
            && generatedClasses.getType() == IResource.FOLDER) {
        sourceEntries.add(JavaCore.newLibraryEntry(generatedClasses.getFullPath(), null, null));
    }
}

From source file:org.mobicents.maven.plugin.eclipse.ClasspathWriter.java

License:Open Source License

/**
 * Writes the source roots for the given project.
 * /*from   w ww  . j ava 2  s  .c o  m*/
 * @param project
 *            the project for which to write the source roots.
 * @param rootDirectory
 *            the root project's base directory
 * @param writer
 *            the XMLWriter used to write the source roots.
 * @param includeResourcesDirectory
 */
private Set<String> collectSourceRoots(final MavenProject project, final String rootDirectory,
        final XMLWriter writer, boolean includeResourcesDirectory) {

    Set<String> sourcePaths = new TreeSet<String>();

    // collect source roots
    List<String> sourceRoots = new ArrayList<String>();
    sourceRoots.addAll(project.getCompileSourceRoots());
    sourceRoots.addAll(project.getTestCompileSourceRoots());
    for (String s : sourceRoots) {
        final String sourceRoot = PathNormalizer.normalizePath(s);
        if (new File(sourceRoot).isDirectory()) {
            String sourceRootPath = StringUtils.replace(sourceRoot, rootDirectory, "");
            if (sourceRootPath.startsWith("/")) {
                sourceRootPath = sourceRootPath.substring(1, sourceRootPath.length());
            }
            sourcePaths.add(sourceRootPath);
        }
    }

    if (includeResourcesDirectory) {

        // collect resources
        List<Resource> resources = new ArrayList<Resource>();
        resources.addAll(project.getResources());
        resources.addAll(project.getTestResources());
        for (Resource resource : resources) {
            final String resourceRoot = PathNormalizer.normalizePath(resource.getDirectory());
            File resourceDirectory = new File(resourceRoot);
            if (resourceDirectory.exists() && resourceDirectory.isDirectory()) {
                String resourceSourceRootPath = StringUtils.replace(resourceRoot, rootDirectory, "");
                if (resourceSourceRootPath.startsWith("/")) {
                    resourceSourceRootPath = resourceSourceRootPath.substring(1,
                            resourceSourceRootPath.length());
                }
                // we need to avoid nested paths, eclipse doesn't
                // support them
                // check if there is already a parent resource path
                boolean add = true;
                for (String resourcePath : sourcePaths) {
                    if (resourceSourceRootPath.startsWith(resourcePath)) {
                        // the one we are processing is a child folder,
                        // ignore it
                        add = false;
                        break;
                    }
                }
                if (add) {
                    for (String resourcePath : sourcePaths) {
                        if (resourcePath.startsWith(resourceSourceRootPath)) {
                            // the one we are processing is a parent
                            // folder, remove the child
                            sourcePaths.remove(resourcePath);
                        }
                    }
                    sourcePaths.add(resourceSourceRootPath);
                }
            }
        }
    }
    return sourcePaths;
}

From source file:org.sonar.batch.maven.MavenProjectConverter.java

License:Open Source License

private List<File> testDirs(MavenProject pom) {
    return sourceDirs(pom, ProjectDefinition.TEST_DIRS_PROPERTY, pom.getTestCompileSourceRoots());
}