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

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

Introduction

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

Prototype

public List<String> getModules() 

Source Link

Usage

From source file:org.sonarsource.scanner.maven.bootstrap.MavenProjectConverter.java

License:Open Source License

private static void rebuildModuleHierarchy(Properties properties, Map<MavenProject, Properties> propsByModule,
        MavenProject current, String prefix) throws IOException {
    Properties currentProps = propsByModule.get(current);
    if (currentProps == null) {
        throw new IllegalStateException(UNABLE_TO_DETERMINE_PROJECT_STRUCTURE_EXCEPTION_MESSAGE);
    }/*from   w w w.j ava2  s.  c o  m*/
    for (Map.Entry<Object, Object> prop : currentProps.entrySet()) {
        properties.put(prefix + prop.getKey(), prop.getValue());
    }
    propsByModule.remove(current);
    List<String> moduleIds = new ArrayList<>();
    for (String modulePathStr : current.getModules()) {
        File modulePath = new File(current.getBasedir(), modulePathStr);
        MavenProject module = findMavenProject(modulePath, propsByModule.keySet());
        if (module != null) {
            String moduleId = module.getGroupId() + ":" + module.getArtifactId();
            rebuildModuleHierarchy(properties, propsByModule, module, prefix + moduleId + ".");
            moduleIds.add(moduleId);
        }
    }
    if (!moduleIds.isEmpty()) {
        properties.put(prefix + "sonar.modules", StringUtils.join(moduleIds, SEPARATOR));
    }
}

From source file:org.universAAL.support.directives.checks.DependencyManagementCheckFix.java

License:Apache License

public static List<MavenProject> getChildrenModules(MavenProject mavenProject, MavenProjectBuilder mpb,
        ArtifactRepository localRepository, ProfileManager pm) {
    List<MavenProject> children = new ArrayList<MavenProject>();
    List<String> modules = mavenProject.getModules();
    for (String mod : modules) {
        try {/*from  w  w  w .j  av a  2s.c o m*/
            children.add(mpb.buildWithDependencies(new File(mavenProject.getBasedir(), mod + "/pom.xml"),
                    localRepository, pm));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    return children;
}

From source file:org.universAAL.support.directives.checks.ModulesCheckFix.java

License:Apache License

/**
 * Check whether the pom modules are in the following disposition:
 * <br>/* w w  w.  ja v  a 2s .c  om*/
 * <pre>
 *    parentFolder
 *    L pom.xml
 *    L Module1
 *      L pom.xml
 *    :
 *    L ModuleN
 *      L pom.xml
 * </pre>
 * ie: all of the modules of the pom are children.
 * @param mavenProject2
 * @param log
 * @return
 */
private boolean isOfCommonType(MavenProject mp, Log log) {
    List<String> listed = (List<String>) mp.getModules();
    boolean common = true;
    for (String m : listed) {
        File mDir = new File(mp.getBasedir(), m);
        log.debug("checking \n -" + mp.getBasedir().getAbsolutePath() + "\n -" + mDir.getAbsolutePath());
        try {
            /*
             * for all of the modules:
             *    the parent folder of the module is the same as the parent POMs folder
             */
            common &= mp.getBasedir().equals(mDir.getCanonicalFile().getParentFile());
        } catch (IOException e) {
            log.error(e);
        }
        log.debug(Boolean.toString(common));

    }
    return listed.size() > 0 && common;
}

From source file:org.universAAL.support.directives.checks.ModulesCheckFix.java

License:Apache License

private boolean passRootCheckCommonType(MavenProject mavenProject2, Log log) {
    List<String> mods = (List<String>) mavenProject2.getModules();
    List<File> listed = new ArrayList<File>();
    for (String m : mods) {
        try {//from  ww  w . j a v  a  2 s.c o  m
            listed.add(new File(mavenProject2.getBasedir(), m).getCanonicalFile());
        } catch (IOException e) {
            log.error(e);
        }
    }
    //gather the existent modules
    File dir = mavenProject2.getBasedir();
    for (File f : dir.listFiles()) {
        String rel = f.getName();
        if (f.isDirectory() && directoryContains(f, "pom.xml") && !listed.contains(f) // it is not already listed
                && !rel.contains(SVN_FOLDER)
        // it is not the svn folder
        ) {
            toBeFixed.add(rel);
            log.debug("Found not listed module : " + rel);
        }
    }
    return toBeFixed.isEmpty();
}

From source file:org.universAAL.support.directives.checks.ModulesCheckFix.java

License:Apache License

private boolean passRootCheckSiblingType(MavenProject mavenProject2, Log log) {
    List<String> listed = (List<String>) mavenProject2.getModules();

    //gather the existent modules
    File dir = mavenProject2.getBasedir().getParentFile();
    for (File f : dir.listFiles()) {
        String rel = "../" + f.getName();
        if (f.isDirectory() && directoryContains(f, "pom.xml") && !listed.contains(rel) // it is not already listed
                && !rel.endsWith(mavenProject2.getBasedir().getName())
                // it is not the parent project
                && !rel.contains(SVN_FOLDER)
        // it is not the svn folder
        ) {/* w w w  .j a v a 2  s . c o m*/
            toBeFixed.add(rel);
            log.debug("Found not listed module : " + rel);
        }
    }
    return toBeFixed.isEmpty();
}

From source file:org.wso2.developerstudio.eclipse.maven.internal.executor.impl.MavenExecutorImpl.java

License:Open Source License

public boolean setMavenParent(File mavenProjectLocation, File parentMavenProjectLocation) throws Exception {
    if (parentMavenProjectLocation == null) {
        setMavenParent(mavenProjectLocation, (MavenProjectType) null);
    } else {/*w ww  .ja v a 2 s. co m*/
        File parentProjectPomFile = new File(parentMavenProjectLocation, "pom.xml");
        MavenProject parentProject = MavenUtils.getMavenProject(parentProjectPomFile);
        String relativeLocation = FileUtils.getRelativePath(parentMavenProjectLocation, mavenProjectLocation);
        if (!parentProject.getModules().contains(relativeLocation)) {
            parentProject.getModules().add(relativeLocation);
        }
        MavenUtils.saveMavenProject(parentProject, parentProjectPomFile);
        MavenProjectType parentMavenProject = new MavenProjectType(parentProject.getGroupId(),
                parentProject.getArtifactId(), parentProject.getVersion());
        String relativePath = FileUtils.getRelativePath(mavenProjectLocation, parentProjectPomFile)
                .replace('\\', '/');
        parentMavenProject.setRelativePath(relativePath);
        setMavenParent(mavenProjectLocation, parentMavenProject);
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.maven.multi.module.handlers.MvnMultiModuleWizard.java

License:Open Source License

public void init() {

    if (multiModuleProject != null) {
        IFile pomFile = multiModuleProject.getFile("pom.xml");
        if (pomFile.exists()) {
            // Parse the pom and see the packaging type
            try {
                moduleModel.setUpdateMode(true);
                MavenProject mavenProject2 = MavenUtils.getMavenProject(pomFile.getLocation().toFile());
                Parent parent = mavenProject2.getModel().getParent();
                if (parent != null) {
                    moduleModel.setRequiredParent(true);
                    moduleModel.setParentArtifact(parent.getArtifactId());
                    moduleModel.setParentGroup(parent.getGroupId());
                    moduleModel.setParentVersion(parent.getVersion());
                    moduleModel.setRelativePath(parent.getRelativePath());
                }/*from w  w w . j a v  a 2  s  .c  o m*/
                setMavenProperty(mavenProject2.getGroupId(), mavenProject2.getArtifactId(),
                        mavenProject2.getVersion());
                List<String> modules = mavenProject2.getModules();
                MvnMultiModuleProjectList projectListProvider = new MvnMultiModuleProjectList();
                List<ListData> listData = projectListProvider.getListData(null, moduleModel);

                for (ListData data : listData) {
                    IProject moduleProject = (IProject) data.getData();
                    String relativePath = FileUtils
                            .getRelativePath(multiModuleProject.getLocation().toFile(),
                                    moduleProject.getLocation().toFile())
                            .replaceAll(Pattern.quote(File.separator), "/");
                    if (modules.contains(relativePath)) {
                        moduleModel.getSelectedProjects().add(moduleProject);
                    }
                }

            } catch (Exception e) {
                log.error("Error occured while trying to create the Maven Project", e);
            }
        } else {
            setMavenProperty("com.example", multiModuleProject.getName(), "1.0.0");
        }
    }
}

From source file:org.wso2.developerstudio.eclipse.maven.multi.module.handlers.MvnMultiModuleWizard.java

License:Open Source License

public boolean performFinish() {
    // If the multiModuleProject is not empty, then this is thru UI. Just
    // generate the POM
    MavenProject mavenProject = MavenUtils.createMavenProject(moduleModel.getGroupId(),
            moduleModel.getArtifactId(), moduleModel.getVersion(), "pom");

    if (moduleModel.isRequiredParent()) {
        Parent parent = new Parent();
        parent.setArtifactId(moduleModel.getParentArtifact());
        parent.setGroupId(moduleModel.getParentGroup());
        parent.setVersion(moduleModel.getParentVersion());
        String relativePath = moduleModel.getRelativePath();
        if (relativePath != null && !relativePath.trim().isEmpty()) {
            parent.setRelativePath(relativePath);
        }/*w  ww  .  j  a v  a  2s .c  o  m*/
        mavenProject.getModel().setParent(parent);
    } else {
        mavenProject.getModel().setParent(null);
    }

    List modules = mavenProject.getModules();

    List<IProject> selectedProjects = moduleModel.getSelectedProjects();

    selectedProjects = sortProjects(selectedProjects);

    if (multiModuleProject != null) {
        IFile pomFile = multiModuleProject.getFile("pom.xml");
        if (pomFile.exists()) {
            // Parse the pom and see the packaging type
            try {
                MavenProject mavenProject2 = MavenUtils.getMavenProject(pomFile.getLocation().toFile());
                String packaging = mavenProject2.getPackaging();
                if (!"pom".equalsIgnoreCase(packaging)) {
                    addMavenModules(multiModuleProject, mavenProject, modules, selectedProjects, pomFile);
                } else {
                    modules = mavenProject2.getModules();
                    mavenProject2.setGroupId(moduleModel.getGroupId());
                    mavenProject2.setArtifactId(moduleModel.getArtifactId());
                    mavenProject2.setVersion(moduleModel.getVersion());
                    mavenProject2.getModel().setParent(mavenProject.getModel().getParent());
                    addMavenModules(multiModuleProject, mavenProject2, modules, selectedProjects, pomFile);
                }

            } catch (Exception e) {
                log.error("Error occured while trying to generate the Maven Project for the Project Pom", e);
            }

        } else {
            // Since pom is not there, just create the new pom with all the
            // necessary things
            addMavenModules(multiModuleProject, mavenProject, modules, selectedProjects, pomFile);
        }
        // Adding Maven Multi Module Nature to POM generated Project
        addMavenMultiModuleProjectNature(multiModuleProject);

    } else {
        try {
            moduleModel.setProjectName(moduleModel.getArtifactId());
            project = createNewProject();

            addMavenMultiModuleProjectNature(project);

            addMavenModules(project, mavenProject, modules, selectedProjects, project.getFile("pom.xml"));

        } catch (CoreException e) {
            log.error("Error occured while creating the new Maven Multi Module Project", e);
        } catch (ObserverFailedException e) {
            log.error("Error occured while trying to inject values to the Project Model", e);
        }
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.platform.core.project.refactor.ArtifactProjectDeleteParticipant.java

License:Open Source License

/**
 * This method gets executed before the refactoring gets executed on original file which means
 * this method is executed before the actual project is deleted from the workspace.
 * If you have any task need to run before the project is deleted, you need to generate Changes 
 * for those tasks in this method. //from  www  .j  av a 2 s. co m
 */
@Override
public Change createPreChange(IProgressMonitor arg0) throws CoreException, OperationCanceledException {
    CompositeChange deleteChange = new CompositeChange("Delete Artifact Project");

    IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
    for (IProject project : projects) {
        if (project.isOpen()
                && project.hasNature("org.wso2.developerstudio.eclipse.distribution.project.nature")) {
            try {
                deleteDependencies(deleteChange, project, originalProject);
            } catch (Exception e) {
                log.error("Error occured while trying to generate the Refactoring", e);
            }
        }
    }
    if (originalProject.isOpen()
            && originalProject.hasNature("org.wso2.developerstudio.eclipse.mavenmultimodule.project.nature")) {
        MavenProject mavenProject = ProjectRefactorUtils.getMavenProject(originalProject);
        List<String> modulesofOrignal = mavenProject.getModules();
        if (!modulesofOrignal.isEmpty()) {
            deleteMavenSubModules(originalProject, modulesofOrignal, deleteChange);
        }
    }
    return deleteChange;
}

From source file:org.wso2.developerstudio.eclipse.platform.ui.mvn.wizard.MvnMultiModuleWizard.java

License:Open Source License

public void init() {

    if (multiModuleProject != null) {
        IFile pomFile = multiModuleProject.getFile("pom.xml");
        if (pomFile.exists()) {
            // Parse the pom and see the packaging type
            try {
                moduleModel.setUpdateMode(true);
                MavenProject mavenProject2 = MavenUtils.getMavenProject(pomFile.getLocation().toFile());

                Parent parent = mavenProject2.getModel().getParent();
                if (parent != null) {
                    moduleModel.setRequiredParent(true);
                    moduleModel.setParentArtifact(parent.getArtifactId());
                    moduleModel.setParentGroup(parent.getGroupId());
                    moduleModel.setParentVersion(parent.getVersion());
                    moduleModel.setRelativePath(parent.getRelativePath());
                }//w ww .  j  a v a  2  s .  c  o  m

                setMavenProperty(mavenProject2.getGroupId(), mavenProject2.getArtifactId(),
                        mavenProject2.getVersion());

                List<String> modules = mavenProject2.getModules();
                MvnMultiModuleProjectList projectListProvider = new MvnMultiModuleProjectList();
                List<ListData> listData = projectListProvider.getListData(null, null);

                for (ListData data : listData) {
                    IProject moduleProject = (IProject) data.getData();
                    String relativePath = FileUtils
                            .getRelativePath(multiModuleProject.getLocation().toFile(),
                                    moduleProject.getLocation().toFile())
                            .replaceAll(Pattern.quote(File.separator), "/");
                    if (modules.contains(relativePath)) {
                        moduleModel.getSelectedProjects().add(moduleProject);
                    }
                }

            } catch (Exception e) {
                log.error("Error occured while trying to create the Maven Project", e);
            }
        } else {
            setMavenProperty("com.example", multiModuleProject.getName(), "1.0.0");
        }
    }
}