Example usage for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot

List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot.

Prototype

IPackageFragmentRoot getPackageFragmentRoot(IResource resource);

Source Link

Document

Returns a package fragment root for the given resource, which must either be a folder representing the top of a package hierarchy, or a ZIP archive (e.g.

Usage

From source file:org.wso2.developerstudio.eclipse.artifact.mediator.ui.wizard.CustomMediatorCreationWizard.java

License:Open Source License

public boolean performFinish() {
    try {/*w w w . ja v  a  2  s . co m*/

        if (customMediatorModel.getSelectedOption().equals("new.mediator")) {
            project = createNewProject();
            IFolder srcFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "java");
            JavaUtils.addJavaSupportAndSourceFolder(project, srcFolder);

            /*create the new Java project*/
            String className = customMediatorModel.getMediatorClassName();
            String packageName = customMediatorModel.getMediatorClassPackageName();
            IJavaProject iJavaProject = JavaCore.create(project);
            IPackageFragmentRoot root = iJavaProject.getPackageFragmentRoot(srcFolder);
            IPackageFragment sourcePackage = root.createPackageFragment(packageName, false, null);

            /*get the Mediator class template*/
            String template = CustomMediatorClassTemplate.getClassTemplete(packageName, className);
            ICompilationUnit cu = sourcePackage.createCompilationUnit(className + ".java", template, false,
                    null);

            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            try {
                IEditorPart javaEditor = JavaUI.openInEditor(cu);
                JavaUI.revealInEditor(javaEditor, (IJavaElement) cu);
            } catch (Exception e) {
                log.error(e);
            }
        } else {
            project = customMediatorModel.getMediatorProject();
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        }
        File pomfile = project.getFile("pom.xml").getLocation().toFile();
        getModel().getMavenInfo().setPackageName("bundle");
        if (!pomfile.exists()) {
            createPOM(pomfile);
            addDependancies(project);
        }
        MavenProject mavenProject = MavenUtils.getMavenProject(pomfile);
        boolean pluginExists = MavenUtils.checkOldPluginEntry(mavenProject, "org.apache.felix",
                "maven-bundle-plugin", "2.3.4");
        if (!pluginExists) {
            Plugin plugin = MavenUtils.createPluginEntry(mavenProject, "org.apache.felix",
                    "maven-bundle-plugin", "2.3.4", true);

            Xpp3Dom configurationNode = MavenUtils.createMainConfigurationNode(plugin);
            Xpp3Dom instructionNode = MavenUtils.createXpp3Node("instructions");
            Xpp3Dom bundleSymbolicNameNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-SymbolicName");
            Xpp3Dom bundleNameNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-Name");
            ;
            Xpp3Dom exportPackageNode = MavenUtils.createXpp3Node(instructionNode, "Export-Package");
            Xpp3Dom dynamicImportNode = MavenUtils.createXpp3Node(instructionNode, "DynamicImport-Package");
            bundleSymbolicNameNode.setValue(project.getName());
            bundleNameNode.setValue(project.getName());
            if (customMediatorModel.getMediatorClassPackageName() != null
                    && !customMediatorModel.getMediatorClassPackageName().trim().isEmpty()) {
                exportPackageNode.setValue(customMediatorModel.getMediatorClassPackageName());
            } else {
                IJavaProject javaProject = JavaCore.create(project);
                if (null != javaProject) {
                    StringBuffer sb = new StringBuffer();
                    for (IPackageFragment pkg : javaProject.getPackageFragments()) {
                        if (pkg.getKind() == IPackageFragmentRoot.K_SOURCE) {
                            if (pkg.hasChildren()) {
                                sb.append(pkg.getElementName()).append(",");
                            }
                        }
                    }
                    exportPackageNode.setValue(sb.toString().replaceAll(",$", ""));
                }
            }
            dynamicImportNode.setValue("*");
            configurationNode.addChild(instructionNode);
            MavenUtils.saveMavenProject(mavenProject, pomfile);
        }

        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        ProjectUtils.addNatureToProject(project, false, MEDIATOR_PROJECT_NATURE);
        MavenUtils.updateWithMavenEclipsePlugin(pomfile, new String[] { JDT_BUILD_COMMAND },
                new String[] { MEDIATOR_PROJECT_NATURE, JDT_PROJECT_NATURE });
        customMediatorModel.addToWorkingSet(project);
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        refreshDistProjects();
    } catch (CoreException e) {
        log.error(e);
    } catch (Exception e) {
        log.error(e);
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.utils.jdt.JavaUtils.java

License:Open Source License

public static void addJavaSourceFolder(IFolder sourceFolder, IJavaProject javaProject)
        throws CoreException, JavaModelException {
    ProjectUtils.createFolder(sourceFolder);
    int ClASSPATH_ENTRY_KIND = 3;
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);
    IClasspathEntry[] oldEntries = getClasspathEntries(javaProject);
    List<IClasspathEntry> validEntries = new ArrayList<IClasspathEntry>();
    for (IClasspathEntry classpathEntry : oldEntries) {
        if (ClASSPATH_ENTRY_KIND != classpathEntry.getEntryKind()) {
            validEntries.add(classpathEntry);
        }//from w ww.  j a  v a 2s .  c o m
    }
    validEntries.add(JavaCore.newSourceEntry(root.getPath()));
    javaProject.setRawClasspath(validEntries.toArray(new IClasspathEntry[] {}), null);
}

From source file:x10dt.ui.launch.cpp.wizards.CppProjectPropertiesWizardPage.java

License:Open Source License

private void createSampleCode(final IProgressMonitor monitor) throws CoreException {
    this.fCreatedFile = this.fCurrProject.getFile("src/Hello.x10"); //$NON-NLS-1$
    final IFolder srcFolder = this.fCurrProject.getFolder("src"); //$NON-NLS-1$
    final IJavaProject javaProject = getJavaProject();
    final IPackageFragmentRoot pkgFragRoot = javaProject.getPackageFragmentRoot(srcFolder);
    final IPackageFragment pkgFrag = pkgFragRoot.getPackageFragment(""); //$NON-NLS-1$

    this.fCreatedFile.create(WizardUtils.createSampleContentStream(pkgFrag.getElementName(), "Hello"), //$NON-NLS-1$
            IResource.FORCE | IResource.KEEP_HISTORY, monitor);

    openSourceFile(this.fCreatedFile);
}

From source file:x10dt.ui.launch.java.wizards.X10ProjectWizardSecondPage.java

License:Open Source License

@Override
public void performFinish(IProgressMonitor monitor) throws CoreException, InterruptedException {
    final X10ProjectWizardFirstPage firstPage = (X10ProjectWizardFirstPage) this.getPreviousPage();
    final IProject project = firstPage.getProjectHandle();

    super.performFinish(monitor);

    // -- create src-java and bin-java
    String srcJava = "src-java";
    String binJava = "bin-java";
    String x10GenSrc = "x10-gen-src";
    IFolder srcFolder = project.getFolder(srcJava);
    IFolder binFolder = project.getFolder(binJava);
    IFolder x10genFolder = project.getFolder(x10GenSrc);
    srcFolder.create(IResource.FORCE, true, monitor);
    binFolder.create(IResource.FORCE, true, monitor);
    x10genFolder.create(IResource.FORCE, true, monitor);

    // -- add src-java to classpath
    IClasspathEntry javasrc = JavaCore.newSourceEntry(project.getFolder(srcJava).getFullPath(), new IPath[0],
            project.getFolder(binJava).getFullPath());
    IClasspathEntry x10gen = JavaCore.newSourceEntry(project.getFolder(x10GenSrc).getFullPath());
    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] entries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 2];
    System.arraycopy(entries, 0, newEntries, 0, entries.length);
    newEntries[newEntries.length - 1] = javasrc;
    newEntries[newEntries.length - 2] = x10gen;
    javaProject.setRawClasspath(newEntries, new NullProgressMonitor());

    // generate sample "Hello World" X10 application
    if (firstPage.isGenHello()) {
        ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
            public void run(IProgressMonitor monitor) throws CoreException {
                IFile newFile = project.getFile("src/Hello.x10"); //$NON-NLS-1$
                IFolder srcFolder = project.getFolder("src"); //$NON-NLS-1$
                IJavaProject javaProject = JavaCore.create(project);
                IPackageFragmentRoot pkgFragRoot = javaProject.getPackageFragmentRoot(srcFolder);
                IPackageFragment pkgFrag = pkgFragRoot.getPackageFragment(""); //$NON-NLS-1$

                InputStream sourceInputStream = WizardUtils.createSampleContentStream(pkgFrag.getElementName(),
                        "Hello"); //$NON-NLS-1$
                newFile.create(sourceInputStream, IResource.FORCE | IResource.KEEP_HISTORY, monitor);

                ((X10ProjectWizard) X10ProjectWizardSecondPage.this.getWizard()).selectAndReveal(newFile);
                openResource(newFile);/*from  w w w  . j a  v a  2 s  .  c o m*/
            }
        }, monitor);
    }
}

From source file:Xtext2SonarM2T.launcher.popupMenus.AcceleoGenerateGenerateSonarQubePluginAction.java

License:Open Source License

private void addSourceFolder(IProject project, IPath[] excludePatterns, IFolder sourcefolder,
        IProgressMonitor monitor) throws JavaModelException {
    IJavaProject javaProject = JavaCore.create(project);
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourcefolder);
    IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
    System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
    System.out.println("Root path: " + root.getPath());
    System.out//  www  .j a  va 2 s.  c o  m
            .println("Exclude paths: " + excludePatterns[0].toString() + " - " + excludePatterns[1].toString());
    newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath(), excludePatterns);
    javaProject.setRawClasspath(newEntries, monitor);
}

From source file:Xtext2SonarM2T.launcher.popupMenus.AcceleoGenerateGenerateSonarQubePluginAction.java

License:Open Source License

/**
 * @author Tatiana Person Montero//ww  w .j  av  a  2  s.  co  m
 * @param name : model name
 * @throws Exception 
 */
private void createMavenProjects(String name, IProgressMonitor monitor) throws Exception {
    //Delete .xmi of the name
    name = name.replaceAll(".xmi", "");
    this.name = name;

    //1) sonar-name project
    String projectMainName = "sonar-" + name;
    IProject projectMain = ResourcesPlugin.getWorkspace().getRoot().getProject(projectMainName);
    createMavenProject(projectMain, monitor, true);

    //------ Copy the pom.xml file
    addFileToProject(projectMain, "resources/pom/pomMain.xml", "pom.xml", monitor, name, true);

    //2) sonar-name-plugin project
    String projectPluginName = "sonar-" + name + "-plugin";
    IProject projectPlugin = ResourcesPlugin.getWorkspace().getRoot().getProject(projectPluginName);
    createMavenProject(projectPlugin, monitor, false);
    IFolder sourcefolderPlugin = projectPlugin.getFolder("src/");
    IFolder sourcefoldermainPlugin = projectPlugin.getFolder("src/main/");
    IFolder sourcefolderjavaPlugin = projectPlugin.getFolder("src/main/java/");
    sourcefolderPlugin.create(false, true, monitor);
    sourcefoldermainPlugin.create(false, true, monitor);
    sourcefolderjavaPlugin.create(false, true, monitor);
    setJRE(projectPlugin, monitor);
    addSourceFolder(projectPlugin, new IPath[] { sourcefolderPlugin.getProjectRelativePath(),
            sourcefoldermainPlugin.getProjectRelativePath() }, sourcefolderjavaPlugin, monitor);

    //------ Copy the pom.xml file
    addFileToProject(projectPlugin, "resources/pom/pomPlugin.xml", "pom.xml", monitor, name, true);

    //========== Copy the basic Java files to the Plugin project
    IJavaProject javaProjectPlugin = JavaCore.create(projectPlugin);
    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin", false, null);
    addFileToProject(projectPlugin, "resources/plugin/XCommonRulesDecorator.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "CommonRulesDecorator.java", monitor,
            name, false);
    addFileToProject(projectPlugin, "resources/plugin/XCommonRulesEngine.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "CommonRulesEngine.java", monitor,
            name, false);
    addFileToProject(projectPlugin, "resources/plugin/XCpdMapping.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "CpdMapping.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/XDefaultProfile.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "DefaultProfile.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/XLanguage.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "Language.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XPlugin.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "Plugin.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XRuleRepository.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "RuleRepository.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/XTokenizer.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/" + name + "Tokenizer.java", monitor, name,
            false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin.coverage", false, null);
    addFileToProject(projectPlugin, "resources/plugin/BullseyeParser.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/coverage/BullseyeParser.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/CoberturaParser.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/coverage/CoberturaParser.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/CoverageParser.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/coverage/CoverageParser.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/XCoverageSensor.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/coverage/" + name + "CoverageSensor.java",
            monitor, name, false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin.externalrules", false, null);
    addFileToProject(
            projectPlugin, "resources/plugin/XExternalRuleRepository.java", "src/main/java/" + "org/sonar/"
                    + name + "/plugin/externalrules/" + name + "ExternalRuleRepository.java",
            monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XExternalRulesSensor.java", "src/main/java/"
            + "org/sonar/" + name + "/plugin/externalrules/" + name + "ExternalRulesSensor.java", monitor, name,
            false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin.highlighter", false, null);
    addFileToProject(projectPlugin, "resources/plugin/SourceFileOffsets.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/highlighter/SourceFileOffsets.java", monitor,
            name, false);
    addFileToProject(projectPlugin, "resources/plugin/XHighlighter.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/highlighter/" + name + "Highlighter.java",
            monitor, name, false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin.squid", false, null);
    addFileToProject(projectPlugin, "resources/plugin/DependencyAnalyzer.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/squid/DependencyAnalyzer.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/DirectoryEdge.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/squid/DirectoryEdge.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/DsmSerializer.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/squid/DsmSerializer.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/FileEdge.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/squid/FileEdge.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XLanguageFootprint.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/squid/" + name + "LanguageFootprint.java",
            monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XSquidSensor.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/squid/" + name + "SquidSensor.java", monitor,
            name, false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin.utils", false, null);
    addFileToProject(projectPlugin, "resources/plugin/EmptyReportException.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/utils/EmptyReportException.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/XAbstractRuleRepository.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/utils/" + name + "AbstractRuleRepository.java",
            monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XMetrics.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/utils/" + name + "Metrics.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/XReportSensor.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/utils/" + name + "ReportSensor.java", monitor,
            name, false);
    addFileToProject(projectPlugin, "resources/plugin/XUtils.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/utils/" + name + "Utils.java", monitor, name,
            false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin)
            .createPackageFragment("org.sonar." + name + ".plugin.xunit", false, null);
    addFileToProject(projectPlugin, "resources/plugin/DefaultResourceFinder.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/DefaultResourceFinder.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/MSTestResultsProvider.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/MSTestResultsProvider.java", monitor, name,
            false);
    addFileToProject(projectPlugin, "resources/plugin/ResourceFinder.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/ResourceFinder.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/TestCase.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/TestCase.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/TestResource.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/TestResource.java", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/XXunitSensor.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/" + name + "XunitSensor.java", monitor,
            name, false);
    addFileToProject(projectPlugin, "resources/plugin/XunitReportParser.java",
            "src/main/java/" + "org/sonar/" + name + "/plugin/xunit/XunitReportParser.java", monitor, name,
            false);

    javaProjectPlugin.getPackageFragmentRoot(sourcefolderjavaPlugin).createPackageFragment("resources", false,
            null);
    addFileToProject(projectPlugin, "resources/plugin/default-profile.xml",
            "src/main/java/" + "resources/default-profile.xml", monitor, name, false);
    addFileToProject(projectPlugin, "resources/plugin/external-rule.xml",
            "src/main/java/" + "resources/external-rule.xml", monitor, name, false);

    //3) sslr-name-toolkit project
    String projectToolkitName = "sslr-" + name + "-toolkit";
    IProject projectToolkit = ResourcesPlugin.getWorkspace().getRoot().getProject(projectToolkitName);
    createMavenProject(projectToolkit, monitor, false);
    IFolder sourcefolderToolkit = projectToolkit.getFolder("src");
    IFolder sourcefoldermainToolkit = projectToolkit.getFolder("src/main");
    IFolder sourcefolderjavaToolkit = projectToolkit.getFolder("src/main/java");
    sourcefolderToolkit.create(false, true, monitor);
    sourcefoldermainToolkit.create(false, true, monitor);
    sourcefolderjavaToolkit.create(false, true, monitor);
    setJRE(projectToolkit, monitor);
    addSourceFolder(projectToolkit, new IPath[] { sourcefolderToolkit.getProjectRelativePath(),
            sourcefoldermainToolkit.getProjectRelativePath() }, sourcefolderjavaToolkit, monitor);

    //------ Copy the pom.xml file
    addFileToProject(projectToolkit, "resources/pom/pomToolkit.xml", "pom.xml", monitor, name, true);

    //========== Copy the basic Java files to the Toolkit project
    IJavaProject javaProjectToolkit = JavaCore.create(projectToolkit);
    javaProjectToolkit.getPackageFragmentRoot(sourcefolderjavaToolkit)
            .createPackageFragment("org.sslr." + name + ".toolkit", false, null);
    addFileToProject(projectToolkit, "resources/toolkit/XConfigurationModel.java",
            "src/main/java/" + "org/sslr/" + name + "/toolkit/" + name + "ConfigurationModel" + ".java",
            monitor, name, false);
    addFileToProject(projectToolkit, "resources/toolkit/XToolkit.java",
            "src/main/java/" + "org/sslr/" + name + "/toolkit/" + name + "Toolkit" + ".java", monitor, name,
            false);

    //MavenProjectBuilder mavenProjectBuilder = new MavenProjectBuilder(pomToModel(projectToolkit.getFullPath() + "/pom.xml"));
    //MavenProject mavenProject = new MavenProject(pomToModel(projectToolkit.getFullPath() + "/pom.xml"));

    //4) name-checks project
    String projectChecksName = name + "-checks";
    IProject projectChecks = ResourcesPlugin.getWorkspace().getRoot().getProject(projectChecksName);
    createMavenProject(projectChecks, monitor, false);
    IFolder sourcefolderChecks = projectChecks.getFolder("src/");
    IFolder sourcefoldermainChecks = projectChecks.getFolder("src/main/");
    IFolder sourcefolderjavaChecks = projectChecks.getFolder("src/main/java/");
    IFolder sourcefolderesourcesChecks = projectChecks.getFolder("src/main/resources/");
    sourcefolderChecks.create(false, true, monitor);
    sourcefoldermainChecks.create(false, true, monitor);
    sourcefolderjavaChecks.create(false, true, monitor);
    sourcefolderesourcesChecks.create(false, true, monitor);
    setJRE(projectChecks, monitor);
    addSourceFolder(projectChecks, new IPath[] { sourcefolderChecks.getProjectRelativePath(),
            sourcefoldermainChecks.getProjectRelativePath() }, sourcefolderjavaChecks, monitor);
    addSourceFolder(projectChecks, new IPath[] { sourcefolderChecks.getProjectRelativePath(),
            sourcefoldermainChecks.getProjectRelativePath() }, sourcefolderesourcesChecks, monitor);

    //------ Copy the pom.xml file
    addFileToProject(projectChecks, "resources/pom/pomChecks.xml", "pom.xml", monitor, name, true);

    //========== Copy the basic Java files to the Checks project
    IJavaProject javaProjectChecks = JavaCore.create(projectChecks);
    javaProjectChecks.getPackageFragmentRoot(sourcefolderjavaChecks)
            .createPackageFragment("org.sonar." + name + ".checks", false, null);
    addFileToProject(projectChecks, "resources/checks/CheckList.java",
            "src/main/java/" + "org/sonar/" + name + "/checks/CheckList.java", monitor, name, false);
    addFileToProject(projectChecks, "resources/checks/FileComplexityCheck.java",
            "src/main/java/" + "org/sonar/" + name + "/checks/FileComplexityCheck.java", monitor, name, false);
    addFileToProject(projectChecks, "resources/checks/TooLongLineCheck.java",
            "src/main/java/" + "org/sonar/" + name + "/checks/TooLongLineCheck.java", monitor, name, false);
    addFileToProject(projectChecks, "resources/checks/CompileIncludePathNotFoundOrInvalid.java",
            "src/main/java/" + "org/sonar/" + name + "/checks/CompileIncludePathNotFoundOrInvalid.java",
            monitor, name, false);

    javaProjectChecks.getPackageFragmentRoot(sourcefolderesourcesChecks)
            .createPackageFragment("org.sonar.l10n." + name + ".rules." + name, false, null);
    addFileToProject(projectChecks, "resources/checks/TooLongLine.html",
            "src/main/resources/" + "org/sonar/l10n/" + name + "/rules/" + name + "/TooLongLine.html", monitor,
            name, false);
    addFileToProject(projectChecks, "resources/checks/FileComplexity.html",
            "src/main/resources/" + "org/sonar/l10n/" + name + "/rules/" + name + "/FileComplexity.html",
            monitor, name, false);
    addFileToProject(
            projectChecks, "resources/checks/CompileIncludePathNotFoundOrInvalid.html", "src/main/resources/"
                    + "org/sonar/l10n/" + name + "/rules/" + name + "/CompileIncludePathNotFoundOrInvalid.html",
            monitor, name, false);

    //4) name-squid project
    String projectSquidName = name + "-squid";
    IProject projectSquid = ResourcesPlugin.getWorkspace().getRoot().getProject(projectSquidName);
    createMavenProject(projectSquid, monitor, false);
    IFolder sourcefolderSquid = projectSquid.getFolder("src/");
    IFolder sourcefoldermainSquid = projectSquid.getFolder("src/main/");
    IFolder sourcefolderjavaSquid = projectSquid.getFolder("src/main/java/");
    sourcefolderSquid.create(false, true, monitor);
    sourcefoldermainSquid.create(false, true, monitor);
    sourcefolderjavaSquid.create(false, true, monitor);
    setJRE(projectSquid, monitor);
    addSourceFolder(projectSquid, new IPath[] { sourcefolderSquid.getProjectRelativePath(),
            sourcefoldermainSquid.getProjectRelativePath() }, sourcefolderjavaSquid, monitor);

    //------ Copy the pom.xml file
    addFileToProject(projectSquid, "resources/pom/pomSquid.xml", "pom.xml", monitor, name, true);

    //========== Copy the basic Java files to the Squid project
    IJavaProject javaProjectSquid = JavaCore.create(projectSquid);
    javaProjectSquid.getPackageFragmentRoot(sourcefolderjavaSquid).createPackageFragment("org.sonar." + name,
            false, null);
    addFileToProject(projectSquid, "resources/squid/ProgressAstScanner.java",
            "src/main/java/" + "org/sonar/" + name + "/ProgressAstScanner.java", monitor, name, false);
    addFileToProject(projectSquid, "resources/squid/ProgressReport.java",
            "src/main/java/" + "org/sonar/" + name + "/ProgressReport.java", monitor, name, false);
    addFileToProject(projectSquid, "resources/squid/XCommentAnalyser.java",
            "src/main/java/" + "org/sonar/" + name + "/" + name + "CommentAnalyser.java", monitor, name, false);
    addFileToProject(projectSquid, "resources/squid/XConfiguration.java",
            "src/main/java/" + "org/sonar/" + name + "/" + name + "Configuration.java", monitor, name, false);

    javaProjectSquid.getPackageFragmentRoot(sourcefolderjavaSquid)
            .createPackageFragment("org.sonar." + name + ".api", false, null);
    addFileToProject(projectSquid, "resources/squid/XMetric.java",
            "src/main/java/" + "org/sonar/" + name + "/api/" + name + "Metric.java", monitor, name, false);

    javaProjectSquid.getPackageFragmentRoot(sourcefolderjavaSquid)
            .createPackageFragment("org.sonar." + name + ".channels", false, null);
    addFileToProject(projectSquid, "resources/squid/CharacterLiteralsChannel.java",
            "src/main/java/" + "org/sonar/" + name + "/channels/CharacterLiteralsChannel.java", monitor, name,
            false);
    addFileToProject(projectSquid, "resources/squid/StringLiteralsChannel.java",
            "src/main/java/" + "org/sonar/" + name + "/channels/StringLiteralsChannel.java", monitor, name,
            false);

    javaProjectSquid.getPackageFragmentRoot(sourcefolderjavaSquid)
            .createPackageFragment("org.sonar." + name + ".lexer", false, null);
    addFileToProject(projectSquid, "resources/squid/BackslashChannel.java",
            "src/main/java/" + "org/sonar/" + name + "/lexer/BackslashChannel.java", monitor, name, false);
    addFileToProject(projectSquid, "resources/squid/XLexer.java",
            "src/main/java/" + "org/sonar/" + name + "/lexer/" + name + "Lexer.java", monitor, name, false);

    javaProjectSquid.getPackageFragmentRoot(sourcefolderjavaSquid)
            .createPackageFragment("org.sonar." + name + ".parser", false, null);
    addFileToProject(projectSquid, "resources/squid/XParser.java",
            "src/main/java/" + "org/sonar/" + name + "/parser/" + name + "Parser.java", monitor, name, false);

    javaProjectSquid.getPackageFragmentRoot(sourcefolderjavaSquid)
            .createPackageFragment("org.sonar." + name + ".visitors", false, null);
    addFileToProject(projectSquid, "resources/squid/XCharsetAwareVisitor.java",
            "src/main/java/" + "org/sonar/" + name + "/visitors/" + name + "CharsetAwareVisitor.java", monitor,
            name, false);
    addFileToProject(projectSquid, "resources/squid/XCommentLinesVisitor.java",
            "src/main/java/" + "org/sonar/" + name + "/visitors/" + name + "CommentLinesVisitor.java", monitor,
            name, false);
    addFileToProject(projectSquid, "resources/squid/XFileVisitor.java",
            "src/main/java/" + "org/sonar/" + name + "/visitors/" + name + "FileVisitor.java", monitor, name,
            false);
    addFileToProject(projectSquid, "resources/squid/XLinesOfCodeVisitor.java",
            "src/main/java/" + "org/sonar/" + name + "/visitors/" + name + "LinesOfCodeVisitor.java", monitor,
            name, false);
    addFileToProject(projectSquid, "resources/squid/XParseErrorLoggerVisitor.java",
            "src/main/java/" + "org/sonar/" + name + "/visitors/" + name + "ParseErrorLoggerVisitor.java",
            monitor, name, false);

    //----- Copy all projects in the main project : Maven multi module

    //projectMain.copy(projectPlugin.getFullPath(), true, monitor);
    System.out.println("Path usada = " + projectMain.getName() + "/");
    projectPlugin.copy(new Path(projectMain.getName() + "/"), true, monitor);
    System.out.println("Copy plugin project done.");

}