List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:org.jetbrains.kotlin.wizards.ProjectCreationOp.java
License:Apache License
private static IJavaProject buildJavaProject(@NotNull IProject project) throws CoreException, FileNotFoundException { IJavaProject result = JavaCore.create(project); IFolder binFolder = project.getFolder(BIN_FOLDER); if (!binFolder.exists()) { binFolder.create(false, true, null); }/* w w w.j a v a2s .co m*/ result.setOutputLocation(binFolder.getFullPath(), null); IFolder srcFolder = project.getFolder(SRC_FOLDER); if (!srcFolder.exists()) { srcFolder.create(false, true, null); } result.setRawClasspath( new IClasspathEntry[] { JavaCore.newContainerEntry(new Path(JavaRuntime.JRE_CONTAINER)), JavaCore.newSourceEntry(result.getPackageFragmentRoot(srcFolder).getPath()) }, null); ProjectUtils.addKotlinRuntime(project); return result; }
From source file:org.kie.eclipse.utils.FileUtils.java
License:Apache License
public static void addFolderToClasspath(IJavaProject project, String folderName, boolean create, IProgressMonitor monitor) throws JavaModelException, CoreException { List<IClasspathEntry> list = new ArrayList<IClasspathEntry>(); list.addAll(Arrays.asList(project.getRawClasspath())); IFolder folder = project.getProject().getFolder(folderName); if (create || folder.exists()) { if (create) createFolder(folder, monitor); IPackageFragmentRoot ipackagefragmentroot = project.getPackageFragmentRoot(folder); list.add(JavaCore.newSourceEntry(ipackagefragmentroot.getPath())); project.setRawClasspath((IClasspathEntry[]) list.toArray(new IClasspathEntry[list.size()]), null); }//from w w w.j ava 2 s .com }
From source file:org.kie.eclipse.wizard.project.AbstractKieProjectWizard.java
License:Apache License
protected void addSourceFolder(IJavaProject project, List<IClasspathEntry> list, String s, IProgressMonitor monitor) throws CoreException { IFolder folder = project.getProject().getFolder(s); FileUtils.createFolder(folder, monitor); IPackageFragmentRoot ipackagefragmentroot = project.getPackageFragmentRoot(folder); list.add(JavaCore.newSourceEntry(ipackagefragmentroot.getPath())); }
From source file:org.mobicents.eclipslee.servicecreation.wizards.generic.FilenamePage.java
License:Apache License
/** * Tests if the current workbench selection is a suitable * container to use./* w w w . j a v a 2 s . co m*/ */ private void initialize() { if (selection != null && selection.isEmpty() == false && selection instanceof IStructuredSelection) { IJavaElement element = getInitialJavaElement((IStructuredSelection) selection); IPackageFragmentRoot initialRoot; initialRoot = JavaModelUtil.getPackageFragmentRoot(element); if (initialRoot == null || initialRoot.isArchive()) { IJavaProject javaProject = element.getJavaProject(); if (javaProject != null) { try { initialRoot = null; if (javaProject.exists()) { IPackageFragmentRoot roots[] = javaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { initialRoot = roots[i]; break; } } } } catch (JavaModelException e) { ServiceCreationPlugin.log("JavaModelException determining project root."); } if (initialRoot == null) { initialRoot = javaProject.getPackageFragmentRoot(javaProject.getResource()); } } } try { setSourceContainer((IFolder) initialRoot.getCorrespondingResource()); } catch (JavaModelException e) { ServiceCreationPlugin.log("JavaModelException thrown setting source container on FilenamePage"); } // // Initialize the maven module dialog // mavenModuleText.setText(mavenModule); // Initialize the filename dialog fileText.setText("__Replace_Me__" + ends); if (element != null && element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { IPackageFragment fragment = (IPackageFragment) element; setPackage(fragment); return; } if (element != null && element.getElementType() == IJavaElement.COMPILATION_UNIT) { ICompilationUnit unit = (ICompilationUnit) element; IPackageFragment fragment = (IPackageFragment) unit.getParent(); setPackage(fragment); return; } setPackage(null); } }
From source file:org.nuxeo.ide.sdk.index.DependencyProvider.java
License:Open Source License
public static Set<Dependency> getTestDependencies(IJavaProject project) throws Exception { Set<Dependency> result = new HashSet<Dependency>(); IResource rootResource = project.getProject().getFolder("src/test/java"); if (rootResource.exists()) { IPackageFragmentRoot root = project.getPackageFragmentRoot(rootResource); if (root != null) { introspectPackageRoot(root, result); }/*from w w w .java 2 s .c o m*/ } return result; }
From source file:org.nuxeo.ide.sdk.ui.widgets.PackageChooser.java
License:Open Source License
public IPackageFragmentRoot getSourceRoot(IJavaProject project) { IResource resource = project.getProject().getFolder("src/main/java"); return project.getPackageFragmentRoot(resource); }
From source file:org.nuxeo.ide.sdk.ui.widgets.TestPackageChooser.java
License:Open Source License
public IPackageFragmentRoot getSourceRoot(IJavaProject project) { IResource resource = project.getProject().getFolder("src/test/java"); return project.getPackageFragmentRoot(resource); }
From source file:org.occiware.clouddesigner.occi.gen.connector.ui.wizards.NewConnectorWizard.java
License:Open Source License
private void createConnectorJavaProject(String connectorProjectName, String extensionScheme, IProgressMonitor monitor) throws CoreException { // Get the file containing the OCCI extension. String extensionFile = OCCIRegistry.getInstance().getFileURI(extensionScheme); // This connector project will require the bundle containing the OCCI extension. // Warning extensionFile must be a platform URI (plugin or resource). String tmp = extensionFile.substring("platform:/".length()); tmp = tmp.substring(tmp.indexOf('/') + 1); String requireBundle = tmp.substring(0, tmp.indexOf('/')); // FIXME we suppose that the project name is equals to the bundle name. IProject requireProject = ResourcesPlugin.getWorkspace().getRoot().getProject(requireBundle); // See https://sdqweb.ipd.kit.edu/wiki/JDT_Tutorial:_Creating_Eclipse_Java_Projects_Programmatically // Create an Eclipse project. IProject connectorProject = ResourcesPlugin.getWorkspace().getRoot().getProject(connectorProjectName); connectorProject.create(null);//from w w w . j a va 2 s . c o m connectorProject.open(null); // Because we need a java project, we have to set the Java nature to the created project: IProjectDescription description = connectorProject.getDescription(); description.setNatureIds(new String[] { JavaCore.NATURE_ID }); connectorProject.setDescription(description, null); // Now we can create our Java project IJavaProject javaProject = JavaCore.create(connectorProject); // However, it's not enough if we want to add Java source code to the project. We have to set the Java build path: // (1) We first specify the output location of the compiler (the bin folder): IFolder binFolder = connectorProject.getFolder("bin"); binFolder.create(false, true, null); javaProject.setOutputLocation(binFolder.getFullPath(), null); // (2) Define the class path entries. IClasspathEntry[] entries = new IClasspathEntry[(requireProject.exists()) ? 3 : 2]; // Add JRE System Library. entries[0] = JavaRuntime.getDefaultJREContainerEntry(); // (3) We have not yet the source folder created: IFolder sourceFolder = connectorProject.getFolder("src"); sourceFolder.create(false, true, null); // (4) Now the created source folder should be added to the class entries of the project, otherwise compilation will fail: IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder); entries[1] = JavaCore.newSourceEntry(root.getPath()); // Add the extension project. if (requireProject.exists()) { entries[2] = JavaCore.newSourceEntry(requireProject.getFullPath()); } // (5) Set the Java build path. javaProject.setRawClasspath(entries, null); // Convert this project to a plugin project. try { new ConvertProjectToPluginOperation(new IProject[] { connectorProject }, false).run(monitor); } catch (InvocationTargetException | InterruptedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // Generate META-INF/MANIFEST.MF IFile manifest = PDEProject.getManifest(connectorProject); String manifestContent = "Manifest-Version: 1.0\n" + "Bundle-ManifestVersion: 2\n" + "Bundle-Name: " + connectorProjectName + "\n" + "Bundle-SymbolicName: " + connectorProjectName + ";singleton:=true\n" + "Bundle-Version: 0.1.0.qualifier\n" + "Bundle-ClassPath: .\n" + "Bundle-Vendor: OCCIware\n" + // "Bundle-Localization: plugin\n" + // FIXME generate plugin.properties "Bundle-RequiredExecutionEnvironment: JavaSE-1.7\n" + "Bundle-ActivationPolicy: lazy\n" + "Require-Bundle: org.slf4j.api,\n" + " org.occiware.clouddesigner.occi,\n" + " " + requireBundle + "\n" + "Export-Package: " + connectorProjectName + "\n"; manifest.setContents(new ByteArrayInputStream(manifestContent.getBytes()), true, false, monitor); // Generate build.properties IFile build = PDEProject.getBuildProperties(connectorProject); String buildContent = "# Copyright (c) 2016 Inria\n" + "#\n" + "# All rights reserved. This program and the accompanying materials\n" + "# are made available under the terms of the Eclipse Public License v1.0\n" + "# which accompanies this distribution, and is available at\n" + "# http://www.eclipse.org/legal/epl-v10.html\n" + "#\n" + "# Contributors:\n" + "# - Philippe Merle <philippe.merle@inria.fr>\n" + "#\n" + "\n" + "source.. = src/\n" + "output.. = bin/\n" + "bin.includes = META-INF/, plugin.xml, .\n"; build.setContents(new ByteArrayInputStream(buildContent.getBytes()), true, false, monitor); // Generate plugin.xml IFile pluginXML = PDEProject.getPluginXml(connectorProject); String pluginContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<?eclipse version=\"3.0\"?>\n" + "<!--\n" + " Copyright (c) 2016 Inria\n" + "\n" + " All rights reserved. This program and the accompanying materials\n" + " are made available under the terms of the Eclipse Public License v1.0\n" + " which accompanies this distribution, and is available at\n" + " http://www.eclipse.org/legal/epl-v10.html\n" + "\n" + " Contributors:\n" + " - Philippe Merle <philippe.merle@inria.fr>\n" + "-->\n" + "<plugin>\n" + "\n" + " <!-- Register the factory of this connector. -->\n" + " <extension point=\"org.eclipse.emf.ecore.factory_override\">\n" + " <factory\n" + " uri=\"" + Occi2Ecore.convertOcciScheme2EcoreNamespace(extensionScheme) + "\"\n" + " class=\"" + connectorProjectName + ".ConnectorFactory\"/>\n" + " </extension>\n" + "\n" + "</plugin>\n"; pluginXML.create(new ByteArrayInputStream(pluginContent.getBytes()), true, monitor); // Generate Java code for the connector. try { URI modelURI = URI.createURI(extensionFile, true); // Generate Java code for the connector. IContainer target = connectorProject.getFolder("src"); // Compute the arguments of the generator. ArrayList<String> arguments = new ArrayList<String>(); // The full name of the package to generate. arguments.add(connectorProjectName); // The full name of the package to extend. arguments.add(requireBundle); // Call the generator. GenerateAll generator = new GenerateAll(modelURI, target, arguments); generator.doGenerate(monitor); } catch (IOException e) { IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e); Activator.getDefault().getLog().log(status); } finally { connectorProject.refreshLocal(IResource.DEPTH_INFINITE, monitor); } }
From source file:org.openlegacy.ide.eclipse.actions.AbstractGenerateCodeDialog.java
License:Open Source License
protected IPackageFragmentRoot chooseContainer() { IJavaElement initElement = getSourceFolder(); Class<?>[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { @Override/*from w ww. j a va2 s . co m*/ public boolean isSelectedValid(Object element) { try { if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; IPath path = jproject.getProject().getFullPath(); return (jproject.findPackageFragmentRoot(path) != null); } else if (element instanceof IPackageFragmentRoot) { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } return true; } catch (JavaModelException e) { } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { @Override public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { } } else if (element instanceof IJavaProject) { IJavaProject javaPr = (IJavaProject) element; return javaPr.isOpen(); } return super.select(viewer, parent, element); } }; StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setValidator(validator); dialog.setComparator(new JavaElementComparator()); dialog.setTitle(""); //$NON-NLS-1$ dialog.setMessage(""); //$NON-NLS-1$ dialog.addFilter(filter); IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); dialog.setInput(JavaCore.create(root)); dialog.setInitialSelection(initElement); dialog.setHelpAvailable(false); if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; return jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) element; } return null; } return null; }
From source file:org.openlegacy.ide.eclipse.actions.AbstractGenerateModelDialog.java
License:Open Source License
@Override protected void loadPrefrences() { EclipseDesignTimeExecuter designtimeExecuter = EclipseDesignTimeExecuter.instance(); IProject project = getProject();/* w ww . jav a2s. c o m*/ String prefrenceSourceFolderPath = designtimeExecuter.getPreference(project, PreferencesConstants.API_SOURCE_FOLDER); getSourceFolderPathText().setText( MessageFormat.format("{0}{1}{2}", project.getName(), File.separator, prefrenceSourceFolderPath)); //$NON-NLS-1$ IJavaProject javaProject = JavaUtils.getJavaProjectFromIProject(project); setSourceFolder(javaProject.getPackageFragmentRoot(prefrenceSourceFolderPath)); String prefrencePackage = designtimeExecuter.getPreference(project, PreferencesConstants.API_PACKAGE); if (prefrencePackage != null) { getPackageText().setText(prefrencePackage); } String useAjStr = designtimeExecuter.getPreference(project, PreferencesConstants.USE_AJ); if (useAjStr == null || useAjStr.equals("1")) { this.setUseAj(true); } else { this.setUseAj(false); } String generateTest = designtimeExecuter.getPreference(project, PreferencesConstants.GENERATE_TEST); if (generateTest == null || generateTest.equals("1")) { this.setGenerateTest(true); } else { this.setGenerateTest(false); } }