Example usage for org.eclipse.jdt.core JavaCore NATURE_ID

List of usage examples for org.eclipse.jdt.core JavaCore NATURE_ID

Introduction

In this page you can find the example usage for org.eclipse.jdt.core JavaCore NATURE_ID.

Prototype

String NATURE_ID

To view the source code for org.eclipse.jdt.core JavaCore NATURE_ID.

Click Source Link

Document

The identifier for the Java nature (value "org.eclipse.jdt.core.javanature").

Usage

From source file:at.bestsolution.efxclipse.tooling.rrobot.impl.JDTProjectHandler.java

License:Open Source License

protected IStatus customizeProject(IProgressMonitor monitor, IProject project, P model) {
    try {// w  w w  .  j  a  v a 2 s.  c  o m
        addNatureToProject(project, JavaCore.NATURE_ID, monitor);

        IJavaProject javaProject = JavaCore.create(project);

        javaProject.setOutputLocation(project.getFullPath().append("bin"), monitor); //FIXME has to come from model
        IClasspathEntry[] tmpEntries = createClasspathEntries(model);
        IClasspathEntry[] entries = new IClasspathEntry[tmpEntries.length + model.getSourceFragments().size()];
        int i = 0;
        for (SourceFragment f : model.getSourceFragments()) {
            StringBuilder b = new StringBuilder();
            Folder folder = f.getFolder();
            while (folder != null) {
                if (b.length() > 0) {
                    b.insert(0, "/");
                }
                b.insert(0, folder.getName());
                if (folder.eContainer() instanceof Folder) {
                    folder = (Folder) folder.eContainer();
                } else {
                    break;
                }
            }

            entries[i] = JavaCore.newSourceEntry(project.getProject().getFullPath().append(b.toString()));
        }

        System.arraycopy(tmpEntries, 0, entries, model.getSourceFragments().size(), tmpEntries.length);
        javaProject.setRawClasspath(entries, monitor);

    } catch (CoreException e) {
        return new Status(IStatus.ERROR, PLUGIN_ID, "Unable to add nature", e);
    }
    return super.customizeProject(monitor, project, model);
}

From source file:at.bestsolution.fxide.jdt.maven.MavenModuleTypeService.java

License:Open Source License

@Override
public Status createModule(IProject project, IResource resource) {
    IProjectDescription description = project.getWorkspace().newProjectDescription(project.getName());
    description.setNatureIds(new String[] { JavaCore.NATURE_ID, "org.eclipse.m2e.core.maven2Nature" });

    ICommand[] commands = new ICommand[2];

    {/*from w  ww.j a  v  a2 s . co m*/
        ICommand cmd = description.newCommand();
        cmd.setBuilderName(JavaCore.BUILDER_ID);
        commands[0] = cmd;
    }

    {
        ICommand cmd = description.newCommand();
        cmd.setBuilderName("org.eclipse.m2e.core.maven2Builder");
        commands[1] = cmd;
    }

    if (resource != null) {
        // If we get a parent path we create a nested project
        try {
            if (resource.getProject().getNature("org.eclipse.m2e.core.maven2Nature") != null) {
                IFolder folder = resource.getProject().getFolder(project.getName());
                if (folder.exists()) {
                    return Status.status(State.ERROR, -1, "Folder already exists", null);
                }
                folder.create(true, true, null);

                description.setLocation(folder.getLocation());
            }
        } catch (CoreException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
            return Status.status(State.ERROR, -1, "Could not create parent relation", e1);
        }
    }

    description.setBuildSpec(commands);

    try {
        project.create(description, null);
        project.open(null);

        project.getFolder(new Path("target")).create(true, true, null);
        project.getFolder(new Path("target").append("classes")).create(true, true, null);

        project.getFolder(new Path("target")).setDerived(true, null);
        project.getFolder(new Path("target").append("classes")).setDerived(true, null);

        project.getFolder(new Path("src")).create(true, true, null);

        project.getFolder(new Path("src").append("main")).create(true, true, null);
        project.getFolder(new Path("src").append("main").append("java")).create(true, true, null);
        project.getFolder(new Path("src").append("main").append("resources")).create(true, true, null);

        project.getFolder(new Path("src").append("test")).create(true, true, null);
        project.getFolder(new Path("src").append("test").append("java")).create(true, true, null);
        project.getFolder(new Path("src").append("test").append("resources")).create(true, true, null);

        {
            IFile file = project.getFile(new Path("pom.xml"));
            try (InputStream templateStream = getClass().getResourceAsStream("template-pom.xml")) {
                String pomContent = IOUtils.readToString(templateStream, Charset.forName("UTF-8"));
                Map<String, String> map = new HashMap<>();
                map.put("groupId", project.getName());
                map.put("artifactId", project.getName());
                map.put("version", "1.0.0");

                file.create(new ByteArrayInputStream(StrSubstitutor.replace(pomContent, map).getBytes()), true,
                        null);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        IJavaProject jProject = JavaCore.create(project);
        jProject.setOutputLocation(project.getFolder(new Path("target").append("classes")).getFullPath(), null);

        List<IClasspathEntry> entries = new ArrayList<>();

        {
            IClasspathAttribute[] attributes = new IClasspathAttribute[2];
            attributes[0] = JavaCore.newClasspathAttribute("optional", "true");
            attributes[1] = JavaCore.newClasspathAttribute("maven.pomderived", "true");
            IPath path = new Path("src").append("main").append("java");
            IPath output = new Path("target").append("classes");
            IClasspathEntry sourceEntry = JavaCore.newSourceEntry(
                    project.getProject().getFullPath().append(path), null, null,
                    project.getProject().getFullPath().append(output), attributes);
            entries.add(sourceEntry);
        }

        {
            IClasspathAttribute[] attributes = new IClasspathAttribute[1];
            attributes[0] = JavaCore.newClasspathAttribute("maven.pomderived", "true");
            IPath path = new Path("src").append("main").append("resources");
            IPath output = new Path("target").append("classes");
            IPath[] exclusions = new IPath[] { new Path("**") };
            entries.add(JavaCore.newSourceEntry(project.getProject().getFullPath().append(path), null,
                    exclusions, project.getProject().getFullPath().append(output), attributes));
        }

        {
            IClasspathAttribute[] attributes = new IClasspathAttribute[2];
            attributes[0] = JavaCore.newClasspathAttribute("optional", "true");
            attributes[1] = JavaCore.newClasspathAttribute("maven.pomderived", "true");
            IPath path = new Path("src").append("test").append("java");
            IPath output = new Path("target").append("test-classes");
            IClasspathEntry sourceEntry = JavaCore.newSourceEntry(
                    project.getProject().getFullPath().append(path), null, null,
                    project.getProject().getFullPath().append(output), attributes);
            entries.add(sourceEntry);
        }

        {
            IClasspathAttribute[] attributes = new IClasspathAttribute[1];
            attributes[0] = JavaCore.newClasspathAttribute("maven.pomderived", "true");
            IPath path = new Path("src").append("test").append("resources");
            IPath output = new Path("target").append("test-classes");
            IPath[] exclusions = new IPath[] { new Path("**") };
            entries.add(JavaCore.newSourceEntry(project.getProject().getFullPath().append(path), null,
                    exclusions, project.getProject().getFullPath().append(output), attributes));
        }

        {
            IClasspathAttribute[] attributes = new IClasspathAttribute[1];
            attributes[0] = JavaCore.newClasspathAttribute("maven.pomderived", "true");

            IPath path = JavaRuntime.newDefaultJREContainerPath();
            entries.add(JavaCore.newContainerEntry(path, null, attributes, false));
        }

        {
            IClasspathAttribute[] attributes = new IClasspathAttribute[1];
            attributes[0] = JavaCore.newClasspathAttribute("maven.pomderived", "true");

            IPath path = new Path("org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER");
            entries.add(JavaCore.newContainerEntry(path, null, attributes, false));
        }

        jProject.setRawClasspath(entries.toArray(new IClasspathEntry[0]), null);
        project.getWorkspace().save(true, null);
        return Status.ok();
    } catch (CoreException ex) {
        //TODO
        ex.printStackTrace();
        return Status.status(State.ERROR, -1, "Failed to create project", ex);
    }
}

From source file:at.bestsolution.fxide.jdt.maven.MavenParentModuleTypeService.java

License:Open Source License

@Override
public Status createModule(IProject project, IResource resource) {
    IProjectDescription description = project.getWorkspace().newProjectDescription(project.getName());
    description.setNatureIds(new String[] { JavaCore.NATURE_ID, "org.eclipse.m2e.core.maven2Nature" });

    ICommand[] commands = new ICommand[1];

    {//from www  .  ja  v a 2s.c om
        ICommand cmd = description.newCommand();
        cmd.setBuilderName("org.eclipse.m2e.core.maven2Builder");
        commands[0] = cmd;
    }

    // If we get a parent path we create a nested project
    if (resource != null) {
        try {
            if (resource.getProject().getNature("org.eclipse.m2e.core.maven2Nature") != null) {
                description.setLocation(resource.getProject().getFullPath().append(project.getName()));
            }
        } catch (CoreException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }

    description.setBuildSpec(commands);

    try {
        project.create(description, null);
        project.open(null);

        project.getFolder(new Path("target")).create(true, true, null);
        project.getFolder(new Path("target")).setDerived(true, null);

        project.getFolder(new Path("src")).create(true, true, null);
        project.getFolder(new Path("src").append("site")).create(true, true, null);

        {
            IFile file = project.getFile(new Path("pom.xml"));
            try (InputStream templateStream = getClass().getResourceAsStream("template-parent-pom.xml")) {
                String pomContent = IOUtils.readToString(templateStream, Charset.forName("UTF-8"));
                Map<String, String> map = new HashMap<>();
                map.put("groupId", project.getName());
                map.put("artifactId", project.getName());
                map.put("version", "1.0.0");

                try (ByteArrayInputStream in = new ByteArrayInputStream(
                        StrSubstitutor.replace(pomContent, map).getBytes());
                        ByteArrayOutputStream out = new ByteArrayOutputStream();) {
                    Model model = MavenPlugin.getMaven().readModel(in);
                    MavenPlugin.getMaven().writeModel(model, out);
                    try (ByteArrayInputStream in2 = new ByteArrayInputStream(out.toByteArray())) {
                        file.create(in2, true, null);
                    }
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        project.getWorkspace().save(true, null);
    } catch (CoreException ex) {
        return Status.status(State.ERROR, -1, "Failed to create project", ex);
    }

    return Status.ok();
}

From source file:at.bestsolution.fxide.jdt.services.JDTModuleTypeService.java

License:Open Source License

@Override
public Status createModule(IProject project, IResource resource) {
    IProjectDescription description = project.getWorkspace().newProjectDescription(project.getName());
    description.setNatureIds(new String[] { JavaCore.NATURE_ID });
    ICommand cmd = description.newCommand();
    cmd.setBuilderName(JavaCore.BUILDER_ID);
    description.setBuildSpec(new ICommand[] { cmd });

    try {//from  w  w  w . ja va 2s.com
        project.create(description, null);
        project.open(null);

        project.getFolder(new Path("target")).create(true, true, null);
        project.getFolder(new Path("target").append("classes")).create(true, true, null);

        project.getFolder(new Path("target")).setDerived(true, null);
        project.getFolder(new Path("target").append("classes")).setDerived(true, null);

        project.getFolder(new Path("src")).create(true, true, null);

        project.getFolder(new Path("src").append("main")).create(true, true, null);
        project.getFolder(new Path("src").append("main").append("java")).create(true, true, null);
        project.getFolder(new Path("src").append("main").append("resources")).create(true, true, null);

        project.getFolder(new Path("src").append("test")).create(true, true, null);
        project.getFolder(new Path("src").append("test").append("java")).create(true, true, null);
        project.getFolder(new Path("src").append("test").append("resources")).create(true, true, null);

        //         IExecutionEnvironmentsManager executionEnvironmentsManager = JavaRuntime.getExecutionEnvironmentsManager();
        //         IExecutionEnvironment[] executionEnvironments = executionEnvironmentsManager.getExecutionEnvironments();
        //         System.err.println(JavaRuntime.getDefaultVMInstall().getInstallLocation());

        IJavaProject jProject = JavaCore.create(project);
        jProject.setOutputLocation(project.getFolder(new Path("target").append("classes")).getFullPath(), null);

        List<IClasspathEntry> entries = new ArrayList<>();
        entries.add(JavaCore.newSourceEntry(
                project.getProject().getFullPath().append("src").append("main").append("java")));
        entries.add(JavaCore.newSourceEntry(
                project.getProject().getFullPath().append("src").append("main").append("resources")));
        entries.add(JavaCore.newSourceEntry(
                project.getProject().getFullPath().append("src").append("test").append("java")));
        entries.add(JavaCore.newSourceEntry(
                project.getProject().getFullPath().append("src").append("test").append("resources")));
        entries.add(JavaCore.newContainerEntry(JavaRuntime.newDefaultJREContainerPath()));

        jProject.setRawClasspath(entries.toArray(new IClasspathEntry[0]), null);
        project.getWorkspace().save(true, null);
        return Status.ok();
    } catch (CoreException ex) {
        return Status.status(State.ERROR, -1, "Failed to create project", ex);
    }
}

From source file:at.bestsolution.javafx.ide.jdt.internal.NewJavaProjectService.java

License:Open Source License

private void configureProject(IProject project, IProgressMonitor monitor) throws CoreException {
    IProjectDescription description = project.getDescription();
    String[] prevNatures = description.getNatureIds();
    String[] newNatures = new String[prevNatures.length + 1];
    System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
    newNatures[prevNatures.length] = JavaCore.NATURE_ID;
    description.setNatureIds(newNatures);
    project.setDescription(description, monitor);
}

From source file:at.component.newcomponentwizard.generator.NewProjectCreationOperation.java

License:Open Source License

private IProject createProject() throws CoreException {
    IProject project = fProjectProvider.getProject();
    if (!project.exists()) {
        CoreUtility.createProject(project, fProjectProvider.getLocationPath(), null);
        project.open(null);/*w  ww  .j  a  v  a 2 s .  c om*/
    }
    if (!project.hasNature(PDE.PLUGIN_NATURE))
        CoreUtility.addNatureToProject(project, PDE.PLUGIN_NATURE, null);
    if (!fData.isSimple() && !project.hasNature(JavaCore.NATURE_ID))
        CoreUtility.addNatureToProject(project, JavaCore.NATURE_ID, null);
    if (!fData.isSimple() && fData.getSourceFolderName() != null
            && fData.getSourceFolderName().trim().length() > 0) {
        IFolder folder = project.getFolder(fData.getSourceFolderName());
        if (!folder.exists())
            CoreUtility.createFolder(folder);
    }
    return project;
}

From source file:at.component.newcomponentwizard.generator.NewProjectCreationOperation.java

License:Open Source License

protected void execute(IProgressMonitor monitor)
        throws CoreException, InvocationTargetException, InterruptedException {

    // start task
    monitor.beginTask(PDEUIMessages.NewProjectCreationOperation_creating, getNumberOfWorkUnits());
    monitor.subTask(PDEUIMessages.NewProjectCreationOperation_project);

    // create project
    IProject project = createProject();//  www.  ja v a2 s  .c o  m
    monitor.worked(1);
    createContents(monitor, project);

    // set classpath if project has a Java nature
    if (project.hasNature(JavaCore.NATURE_ID)) {
        monitor.subTask(PDEUIMessages.NewProjectCreationOperation_setClasspath);
        setClasspath(project, fData);
        monitor.worked(1);
    }

    if (fData instanceof PluginFieldData) {
        PluginFieldData data = (PluginFieldData) fData;

        // generate top-level Java class if that option is selected
        if (data.doGenerateClass()) {
            generateClasses(project, new SubProgressMonitor(monitor, 1));
        }

        // add API tooling nature if requested
        if (data.doEnableAPITooling()) {
            addApiAnalysisNature();
        }

    }
    // generate the manifest file
    monitor.subTask(PDEUIMessages.NewProjectCreationOperation_manifestFile);
    createManifest(project);
    monitor.worked(1);

    // generate the build.properties file
    monitor.subTask(PDEUIMessages.NewProjectCreationOperation_buildPropertiesFile);
    createBuildPropertiesFile(project);
    monitor.worked(1);

    // generate content contributed by template wizards
    boolean contentWizardResult = true;
    if (fContentWizard != null) {
        contentWizardResult = fContentWizard.performFinish(project, fModel, new SubProgressMonitor(monitor, 1));
    }

    if (fData instanceof AbstractFieldData) {
        String framework = ((AbstractFieldData) fData).getOSGiFramework();
        if (framework != null) {
            IEclipsePreferences pref = new ProjectScope(project).getNode(PDECore.PLUGIN_ID);
            if (pref != null) {
                pref.putBoolean(ICoreConstants.RESOLVE_WITH_REQUIRE_BUNDLE, false);
                pref.putBoolean(ICoreConstants.EXTENSIONS_PROPERTY, false);
                if (!ICoreConstants.EQUINOX.equals(framework))
                    pref.putBoolean(ICoreConstants.EQUINOX_PROPERTY, false);
                try {
                    pref.flush();
                } catch (BackingStoreException e) {
                    PDEPlugin.logException(e);
                }
            }
        }
    }

    if (fData.hasBundleStructure() && fModel instanceof WorkspaceBundlePluginModelBase) {
        adjustManifests(new SubProgressMonitor(monitor, 1), project, fModel.getPluginBase());
    }

    fModel.save();
    openFile((IFile) fModel.getUnderlyingResource());
    monitor.worked(1);

    fResult = contentWizardResult;
}

From source file:bndtools.nature.ToggleNatureAction.java

License:Open Source License

@Override
public void run(IAction action) {
    if (selection instanceof IStructuredSelection) {
        for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();) {
            Object element = it.next();
            IProject project = null;//w  w  w.j a v a  2s . c o  m
            if (element instanceof IProject) {
                project = (IProject) element;
            } else if (element instanceof IAdaptable) {
                project = (IProject) ((IAdaptable) element).getAdapter(IProject.class);
            }
            if (project != null) {
                boolean isJavaProject = false;
                try {
                    isJavaProject = project.hasNature(JavaCore.NATURE_ID);
                } catch (CoreException e) {
                    /* swallow */
                }
                if (isJavaProject) {
                    IStatus status = toggleNature(JavaCore.create(project));
                    if (!status.isOK())
                        ErrorDialog.openError(targetPart.getSite().getShell(), "Toggle Bnd Nature", null,
                                status);
                }
            }
        }
    }
}

From source file:byke.tests.workspaceutils.JavaProject.java

License:Open Source License

/**
 * @throws CoreException
 */
private void setJavaNature() throws CoreException {
    addNature(JavaCore.NATURE_ID);
}

From source file:bz.davide.dmeclipsesavehookplugin.builder.DMEclipseSaveHookPluginBuilder.java

License:Open Source License

@Override
protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
    // Check for changes only in the "output" folder!

    try {//from   w w  w  .  j  ava2s.  co  m
        System.out.println("DMEclipseSaveHookPlugin " + new Date().toString());
        if (this.getProject().hasNature(JavaCore.NATURE_ID)) {
            IJavaProject javaProject = JavaCore.create(this.getProject());

            ArrayList<IProject> depProjects = new ArrayList<IProject>();
            ArrayList<String> fullClasspath = new ArrayList<String>();
            findTransitiveDepProjects(javaProject, depProjects, fullClasspath);

            File projectDir = new File(this.getProject().getLocation().toOSString());

            DeltaVisitor deltaVisitor = new DeltaVisitor();

            for (IProject iprj : depProjects) {
                IResourceDelta delta = this.getDelta(iprj);
                if (delta != null) {
                    // Check if all changes are only in the bin path
                    // if yes do nothing, is the effect of a previous change!
                    delta.accept(deltaVisitor);

                }
            }
            // No src file was changed!
            if (deltaVisitor.countSrc == 0) {
                return depProjects.toArray(new IProject[0]);
            }
            System.out.println(" *** SRC FILES CHANGED *** REGENERATING ...");
            IFile jbindFile = this.getProject().getFile("dmxmljson.conf");
            if (jbindFile.exists()) {
                InputStream is = jbindFile.getContents();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));

                String line;

                do {

                    int numClasspaths = Integer.parseInt(br.readLine());

                    URL[] urls = new URL[numClasspaths + fullClasspath.size()];
                    for (int i = 0; i < numClasspaths; i++) {
                        File file = new File(projectDir, br.readLine());
                        String path = file.getAbsolutePath() + (file.isDirectory() ? "/" : "");
                        System.out.println(path);
                        urls[i] = new URL("file://" + path);
                    }
                    for (int i = 0; i < fullClasspath.size(); i++) {
                        urls[i + numClasspaths] = new URL("file://" + fullClasspath.get(i));
                    }

                    URLClassLoader urlClassLoader = new URLClassLoader(urls);
                    String mainClassName = br.readLine();
                    Class<?> clazz = urlClassLoader.loadClass(mainClassName);

                    ArrayList<String> parameters = new ArrayList<String>();
                    // Add project root folder
                    parameters.add(projectDir.getAbsolutePath());

                    line = br.readLine();
                    while (line != null && line.length() > 0) {
                        parameters.add(line);
                        line = br.readLine();
                    }

                    Method mainMethod = clazz.getMethod("main", new Class[] { String[].class });
                    // Exception during invoke must not break the plug-in funcionality!
                    try {
                        mainMethod.invoke(null, new Object[] { parameters.toArray(new String[0]) });
                    } catch (Exception exxx) {
                        exxx.printStackTrace();
                    }
                    urlClassLoader.close();

                } while (line != null);

                br.close();

                this.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);

            } // jf bind.txt exits
            return depProjects.toArray(new IProject[0]);
        } // if java nature
    } catch (Exception exxx) {
        exxx.printStackTrace();
    }
    return null;
}