List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:at.bestsolution.efxclipse.tooling.ui.wizards.AbstractHtmlElementPage.java
License:Open Source License
private IPackageFragmentRoot choosePackageRoot() { IJavaElement initElement = clazz.getFragmentRoot(); Class<?>[] acceptedClasses = new Class<?>[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { 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); }/*ww w . j av a2s .c o m*/ return true; } catch (JavaModelException e) { JavaPlugin.log(e.getStatus()); // just log, no UI in validation } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { JavaPlugin.log(e.getStatus()); // just log, no UI in validation return false; } } 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(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_title); dialog.setMessage(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_description); dialog.addFilter(filter); dialog.setInput(JavaCore.create(fWorkspaceRoot)); 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:at.bestsolution.efxclipse.tooling.ui.wizards.AbstractNewJDTElementWizard.java
License:Open Source License
protected IPackageFragmentRoot getFragmentRoot(IJavaElement elem) { IPackageFragmentRoot initRoot = null; if (elem != null) { initRoot = (IPackageFragmentRoot) elem.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); try {// ww w .j a va 2 s.c o m if (initRoot == null || initRoot.getKind() != IPackageFragmentRoot.K_SOURCE) { IJavaProject jproject = elem.getJavaProject(); if (jproject != null) { initRoot = null; if (jproject.exists()) { IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { initRoot = roots[i]; break; } } } if (initRoot == null) { initRoot = jproject.getPackageFragmentRoot(jproject.getResource()); } } } } catch (JavaModelException e) { // TODO e.printStackTrace(); } } return initRoot; }
From source file:at.component.newcomponentwizard.generator.NewProjectCreationOperation.java
License:Open Source License
@SuppressWarnings({ "rawtypes", "unchecked" }) private void addAllSourcePackages(IProject project, Set list) { try {// ww w . jav a 2s. c o m IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] classpath = javaProject.getRawClasspath(); for (int i = 0; i < classpath.length; i++) { IClasspathEntry entry = classpath[i]; if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPath path = entry.getPath().removeFirstSegments(1); if (path.segmentCount() > 0) { IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(project.getFolder(path)); IJavaElement[] children = root.getChildren(); for (int j = 0; j < children.length; j++) { IPackageFragment frag = (IPackageFragment) children[j]; if (frag.getChildren().length > 0 || frag.getNonJavaResources().length > 0) list.add(children[j].getElementName()); } } } } } catch (JavaModelException e) { } }
From source file:ca.ecliptical.pde.ds.search.DescriptorQueryParticipant.java
License:Open Source License
private void searchBundle(final IPluginModelBase model, IJavaProject javaProject, IProgressMonitor monitor) throws CoreException { // note: there's no getBundleDescription().getBundle() so we have to parse the manifest ourselves Map<String, String> headers = ManifestUtils.loadManifest(new File(model.getInstallLocation())); String header = headers.get(SERVICE_COMPONENT_HEADER); if (header == null) { if (debug.isDebugging()) debug.trace(String.format("No Service-Component header in bundle: %s", //$NON-NLS-1$ model.getUnderlyingResource().getFullPath())); return;/* w ww. j av a 2 s . co m*/ } File bundleRoot = new File(model.getInstallLocation()); IPackageFragmentRoot packageRoot = javaProject.getPackageFragmentRoot(bundleRoot.getAbsolutePath()); final HashSet<IStorage> files = new HashSet<IStorage>(); String[] elements = header.split("\\s*,\\s*"); //$NON-NLS-1$ for (String element : elements) { if (element.length() == 0) continue; final IPath path = new Path(element).makeRelative(); String lastSegment = path.lastSegment(); if (lastSegment.indexOf('*') >= 0) { // wildcard path; get all entries in directory final Filter filter; try { filter = FrameworkUtil.createFilter("(filename=" + sanitizeFilterValue(lastSegment) + ")"); //$NON-NLS-1$ //$NON-NLS-2$ } catch (InvalidSyntaxException e) { // ignore continue; } IPath folderPath = path.removeLastSegments(1); if (packageRoot.exists()) { IJarEntryResource folderEntry = findJarEntry(packageRoot, folderPath); if (folderEntry != null) { IJarEntryResource[] fileEntries = findMatchingJarEntries(folderEntry, filter); for (IJarEntryResource fileEntry : fileEntries) { files.add(fileEntry); } } } else { File entryDir = folderPath.isEmpty() ? bundleRoot : new File(bundleRoot, folderPath.toString()); entryDir.listFiles(new FileFilter() { public boolean accept(File pathname) { if (filter.matches(Collections.singletonMap("filename", pathname.getName()))) { //$NON-NLS-1$ try { files.add(new ExternalDescriptorFile(path, pathname.toURI().toURL())); } catch (MalformedURLException e) { if (debug.isDebugging()) debug.trace(String.format("Unable to create URL for file: %s", pathname), //$NON-NLS-1$ e); } } return false; } }); } } else { if (packageRoot.exists()) { IJarEntryResource jarEntry = findJarEntry(packageRoot, path); if (jarEntry != null) files.add(jarEntry); } else { URL url; try { if (bundleRoot.isDirectory()) url = new File(bundleRoot, path.toString()).toURI().toURL(); else url = new URL("jar:" + bundleRoot.toURI() + "!/" + path); //$NON-NLS-1$ //$NON-NLS-2$ } catch (IOException e) { if (debug.isDebugging()) debug.trace(String.format("Error creating JAR URL for file '%s' in bundle '%s'.", path, //$NON-NLS-1$ bundleRoot), e); continue; } files.add(new ExternalDescriptorFile(path, url)); } } } // process each descriptor file monitor.beginTask(model.getBundleDescription().getSymbolicName(), files.size()); try { for (IStorage file : files) { if (monitor.isCanceled()) throw new OperationCanceledException(); searchFile(file, javaProject, new SubProgressMonitor(monitor, 1)); } } finally { monitor.done(); } }
From source file:com.aerospike.project.wizards.NewAerospikeProjectWizard.java
License:Apache License
protected boolean generateJavaProject() { URL url = this.getClass().getResource("project.stg"); final STGroup projectSTG = new STGroupFile(url.getPath()); final String projectName = page.getProjectName(); final String author = page.getAuthor(); final String email = page.getEmail(); final String artifactId = page.getArtifiactId(); final String version = page.getVersion(); final String packageString = page.getPackage(); final String mainClass = page.getMainClassName(); final String seedNode = page.getSeedNode(); final String port = page.getPortString(); final boolean generateMain = page.getGenerateMain(); final boolean generateJUnit = page.getGenerateJUnit(); IRunnableWithProgress op = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException { try { //Create the project IProject project = createProject(projectName, monitor); project.setPersistentProperty(CoreActivator.SEED_NODE_PROPERTY, seedNode); project.setPersistentProperty(CoreActivator.PORT_PROPERTY, port); project.setPersistentProperty(CoreActivator.UDF_DIRECTORY, null); project.setPersistentProperty(CoreActivator.AQL_GENERATION_DIRECTORY, null); //make a java project IJavaProject javaProject = JavaCore.create(project); // create the classpath entries List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>(); IExecutionEnvironmentsManager executionEnvironmentsManager = JavaRuntime .getExecutionEnvironmentsManager(); IExecutionEnvironment[] executionEnvironments = executionEnvironmentsManager .getExecutionEnvironments(); for (IExecutionEnvironment iExecutionEnvironment : executionEnvironments) { // We will look for JavaSE-1.6 as the JRE container to add to our classpath if ("JavaSE-1.6".equals(iExecutionEnvironment.getId())) { entries.add(JavaCore .newContainerEntry(JavaRuntime.newJREContainerPath(iExecutionEnvironment))); break; } else if ("JavaSE-1.5".equals(iExecutionEnvironment.getId())) { entries.add(JavaCore .newContainerEntry(JavaRuntime.newJREContainerPath(iExecutionEnvironment))); break; }/*from ww w .ja v a 2 s. co m*/ } IClasspathEntry mavenEntry = JavaCore.newContainerEntry( new Path("org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"), new IAccessRule[0], new IClasspathAttribute[] { JavaCore.newClasspathAttribute( "org.eclipse.jst.component.dependency", "/WEB-INF/lib") }, false); entries.add(mavenEntry); javaProject.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), null); // create source folders IFolder srcMainJava = project.getFolder("src/main/java"); createFolder(srcMainJava); IFolder srcMainResource = project.getFolder("src/main/resource"); createFolder(srcMainResource); IFolder srcTestJava = project.getFolder("src/test/java"); createFolder(srcTestJava); IFolder srcTestResource = project.getFolder("src/test/resource"); createFolder(srcTestResource); // create aerospike folders IFolder srcUDF = project.getFolder(store.getString(PreferenceConstants.UDF_PATH)); createFolder(srcUDF); IFolder srcGenerated = project.getFolder(store.getString(PreferenceConstants.GENERATION_PATH)); createFolder(srcGenerated); IFolder srcAql = project.getFolder("aql"); createFolder(srcAql); // IPackageFragmentRoot mainJava = javaProject.getPackageFragmentRoot(srcMainJava); IPackageFragmentRoot mainResource = javaProject.getPackageFragmentRoot(srcMainResource); IPackageFragmentRoot testJava = javaProject.getPackageFragmentRoot(srcTestJava); IPackageFragmentRoot testResource = javaProject.getPackageFragmentRoot(srcTestResource); IPackageFragmentRoot mainGenerated = javaProject.getPackageFragmentRoot(srcGenerated); IClasspathEntry[] oldEntries = javaProject.getRawClasspath(); IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 5]; System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length); newEntries[oldEntries.length] = JavaCore.newSourceEntry(mainJava.getPath()); newEntries[oldEntries.length + 1] = JavaCore.newSourceEntry(mainResource.getPath()); newEntries[oldEntries.length + 2] = JavaCore.newSourceEntry(testJava.getPath()); newEntries[oldEntries.length + 3] = JavaCore.newSourceEntry(testResource.getPath()); newEntries[oldEntries.length + 4] = JavaCore.newSourceEntry(mainGenerated.getPath()); javaProject.setRawClasspath(newEntries, monitor); // create the pom.xml ST template = projectSTG.getInstanceOf("pom"); template.add("name", projectName); template.add("artifactId", artifactId); template.add("version", version); template.add("author", author); template.add("email", email); template.add("mainClass", mainClass); template.add("package", packageString); createFile(project, null, "pom.xml", monitor, template); // create the log4J.properties template = projectSTG.getInstanceOf("log4J"); template.add("package", packageString); template.add("mainClass", mainClass); createFile(project, srcMainJava, "log4j.properties", monitor, template); // create the .gitignore template = projectSTG.getInstanceOf("ignore"); createFile(project, null, ".gitignore", monitor, template); // create the README template = projectSTG.getInstanceOf("readme"); template.add("name", projectName); createFile(project, null, "README.md", monitor, template); // create package // create JUnit if (generateJUnit) { IPackageFragment pack = javaProject.getPackageFragmentRoot(srcTestJava) .createPackageFragment(packageString, false, null); template = projectSTG.getInstanceOf("junit"); template.add("name", mainClass + "Test"); template.add("package", packageString); template.add("classUnderTest", mainClass); pack.createCompilationUnit(mainClass + "Test" + ".java", template.render(), false, monitor); } // create main class IPackageFragment pack = javaProject.getPackageFragmentRoot(srcMainJava) .createPackageFragment(packageString, false, null); template = projectSTG.getInstanceOf("mainClass"); template.add("name", mainClass); template.add("package", packageString); template.add("author", author); template.add("seedNode", seedNode); template.add("port", port); final ICompilationUnit cu = pack.createCompilationUnit(mainClass + ".java", template.render(), false, monitor); // open editor on main class monitor.setTaskName("Opening file for editing..."); getShell().getDisplay().asyncExec(new Runnable() { public void run() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage(); try { IEditorPart editor = IDE.openEditor(page, (IFile) cu.getResource(), true); } catch (PartInitException e) { } } }); } catch (CoreException e) { throw new InvocationTargetException(e); } finally { monitor.done(); } } }; try { getContainer().run(true, false, op); } catch (InterruptedException e) { return false; } catch (InvocationTargetException e) { Throwable realException = e.getTargetException(); MessageDialog.openError(getShell(), "Error", realException.getMessage()); return false; } return true; }
From source file:com.amazonaws.eclipse.lambda.project.wizard.NewLambdaJavaFunctionProjectWizard.java
License:Open Source License
private static void addTestDirectoryToClasspath(IProject project) { try {/* w w w. ja va2s . co m*/ IJavaProject javaProj = JavaCore.create(project); IFolder tstFolder = project.getFolder("tst"); IPackageFragmentRoot tstRoot = javaProj.getPackageFragmentRoot(tstFolder); IClasspathEntry[] originalCp = javaProj.getRawClasspath(); IClasspathEntry[] augmentedCp = new IClasspathEntry[originalCp.length + 1]; System.arraycopy(originalCp, 0, augmentedCp, 0, originalCp.length); augmentedCp[originalCp.length] = JavaCore.newSourceEntry(tstRoot.getPath()); javaProj.setRawClasspath(augmentedCp, null); } catch (Exception e) { LambdaPlugin.getDefault().warn("Failed to add tst directory to the classpath", e); } }
From source file:com.amazonaws.eclipse.lambda.project.wizard.util.FunctionProjectUtil.java
License:Open Source License
private static void addTestDirectoryToClasspath(IProject project) { try {/*from w w w . j a v a 2s . c om*/ IJavaProject javaProj = JavaCore.create(project); IFolder tstFolder = project.getFolder("tst"); IPackageFragmentRoot tstRoot = javaProj.getPackageFragmentRoot(tstFolder); if (javaProj.isOnClasspath(tstRoot)) return; IClasspathEntry[] originalCp = javaProj.getRawClasspath(); IClasspathEntry[] augmentedCp = new IClasspathEntry[originalCp.length + 1]; System.arraycopy(originalCp, 0, augmentedCp, 0, originalCp.length); augmentedCp[originalCp.length] = JavaCore.newSourceEntry(tstRoot.getPath()); javaProj.setRawClasspath(augmentedCp, null); } catch (Exception e) { LambdaPlugin.getDefault().warn("Failed to add tst directory to the classpath", e); } }
From source file:com.android.ide.eclipse.adt.internal.editors.manifest.ManifestInfo.java
License:Open Source License
/** * Returns the first package root for the given java project * * @param javaProject the project to search in * @return the first package root, or null *///www .j a v a 2 s. c o m @Nullable public static IPackageFragmentRoot getSourcePackageRoot(IJavaProject javaProject) { IPackageFragmentRoot packageRoot = null; List<IPath> sources = BaseProjectHelper.getSourceClasspaths(javaProject); IWorkspace workspace = ResourcesPlugin.getWorkspace(); for (IPath path : sources) { IResource firstSource = workspace.getRoot().findMember(path); if (firstSource != null) { packageRoot = javaProject.getPackageFragmentRoot(firstSource); if (packageRoot != null) { break; } } } return packageRoot; }
From source file:com.centurylink.mdw.plugin.WizardPage.java
License:Apache License
public void determinePackageFragmentRoot(WorkflowProject workflowProject) { IPackageFragmentRoot oldPackageFragmentRoot = getPackageFragmentRoot(); if (workflowProject != null && workflowProject.isLocalJavaSupported()) { try {/*from w w w . j a v a 2 s. c o m*/ IPackageFragmentRoot tempRoot = null; IPackageFragmentRoot srcRoot = null; IJavaProject javaProject = workflowProject == null ? null : workflowProject.getSourceJavaProject(); if (javaProject != null) { for (IPackageFragmentRoot pfr : javaProject.getPackageFragmentRoots()) { if (pfr.getKind() == IPackageFragmentRoot.K_SOURCE) { if (pfr.getElementName().equals(MdwPlugin.getSettings().getTempResourceLocation())) { tempRoot = pfr; } else { srcRoot = pfr; break; } } } if (srcRoot == null && tempRoot == null) srcRoot = javaProject.getPackageFragmentRoot(javaProject.getResource()); setPackageFragmentRoot(srcRoot == null ? tempRoot : srcRoot, true); } } catch (JavaModelException ex) { PluginMessages.log(ex); } } else { setPackageFragmentRoot(getPackageFragmentRoot(), true); } if (oldPackageFragmentRoot == null || !oldPackageFragmentRoot.equals(getPackageFragmentRoot())) setPackageFragment(null, true); }
From source file:com.centurylink.mdw.plugin.WizardPage.java
License:Apache License
/** * Override to prefer non-temp package root. *///from ww w.ja v a 2 s .c o m @SuppressWarnings("restriction") @Override protected void initContainerPage(IJavaElement elem) { IPackageFragmentRoot tempRoot = null; // only as fallback IPackageFragmentRoot initRoot = null; if (elem != null) { initRoot = org.eclipse.jdt.internal.corext.util.JavaModelUtil.getPackageFragmentRoot(elem); try { if (initRoot == null || initRoot.getKind() != IPackageFragmentRoot.K_SOURCE) { IJavaProject jproject = elem.getJavaProject(); if (jproject != null) { initRoot = null; if (jproject.exists()) { IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { if (roots[i].getElementName() .equals(MdwPlugin.getSettings().getTempResourceLocation())) { tempRoot = roots[i]; } else { initRoot = roots[i]; break; } } } } if (initRoot == null && tempRoot == null) { initRoot = jproject.getPackageFragmentRoot(jproject.getResource()); } } } } catch (JavaModelException e) { org.eclipse.jdt.internal.ui.JavaPlugin.log(e); } } setPackageFragmentRoot(initRoot == null ? tempRoot : initRoot, true); }