List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:org.eclipse.jst.servlet.ui.internal.wizard.NewWebArtifactWizard.java
License:Open Source License
protected void openJavaClass() { try {/*from www . jav a2 s .c om*/ String className; if (getDataModel().getBooleanProperty(USE_EXISTING_CLASS)) { className = getDataModel().getStringProperty(CLASS_NAME); } else { className = getDataModel().getStringProperty(QUALIFIED_CLASS_NAME); } IProject p = (IProject) getDataModel().getProperty(PROJECT); IJavaProject javaProject = J2EEEditorUtility.getJavaProject(p); IType type = javaProject.findType(className); IFile file = null; if (type != null) { file = (IFile) type.getResource(); } else if (!getDataModel().getBooleanProperty(USE_EXISTING_CLASS)) { // If we could not find the type, the class might be in a folder that is not part of the build path. // Let's look for it using the class name and source folder (this does not work when using existing class, but // should not be a problem, because the wizard to select the existing class will not let you select class that // is not in the build path) IFolder sourceFolder = (IFolder) getDataModel().getProperty(JAVA_SOURCE_FOLDER); String packageName = getDataModel().getStringProperty(JAVA_PACKAGE); IPackageFragmentRoot packageFragmentRoot = javaProject.getPackageFragmentRoot(sourceFolder); IPackageFragment packageFragment = null; if (packageFragmentRoot != null) { packageFragment = packageFragmentRoot.getPackageFragment(packageName); } if (packageFragment != null) { ICompilationUnit cu = packageFragment.getCompilationUnit( getDataModel().getStringProperty(CLASS_NAME) + JavaModelUtil.DEFAULT_CU_SUFFIX); IResource resource = cu.getResource(); if (resource.exists() && resource instanceof IFile) { file = (IFile) resource; } } } if (file != null) { openEditor(file); } } catch (Exception cantOpen) { ServletUIPlugin.log(cantOpen); } }
From source file:org.eclipse.objectteams.otdt.tests.AbstractJavaModelTests.java
License:Open Source License
/** * Returns the specified package fragment root in the given project, or * <code>null</code> if it does not exist. * If relative, the rootPath must be specified as a project relative path. * The empty path refers to the package fragment root that is the project * folder iteslf./*from www .j a v a 2 s . c o m*/ * If absolute, the rootPath refers to either an external jar, or a resource * internal to the workspace */ public IPackageFragmentRoot getPackageFragmentRoot(String projectName, String rootPath) throws JavaModelException { IJavaProject project = getJavaProject(projectName); if (project == null) { return null; } IPath path = new Path(rootPath); if (path.isAbsolute()) { IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); IResource resource = workspaceRoot.findMember(path); IPackageFragmentRoot root; if (resource == null) { // external jar root = project.getPackageFragmentRoot(rootPath); } else { // resource in the workspace root = project.getPackageFragmentRoot(resource); } return root; } else { IPackageFragmentRoot[] roots = project.getPackageFragmentRoots(); if (roots == null || roots.length == 0) { return null; } for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; if (!root.isExternal() && root.getUnderlyingResource().getProjectRelativePath().equals(path)) { return root; } } } return null; }
From source file:org.eclipse.objectteams.otdt.ui.tests.core.CompletionTestSetup.java
License:Open Source License
public static IPackageFragment getAbsoluteTestPackage(IJavaProject project, String packageName) throws CoreException { IPackageFragmentRoot root = project.getPackageFragmentRoot("src"); if (!root.exists()) root = JavaProjectHelper.addSourceContainer(project, "src"); IPackageFragment fragment = root.getPackageFragment(packageName); if (!fragment.exists()) fragment = root.createPackageFragment(packageName, false, null); return fragment; }
From source file:org.eclipse.objectteams.otdt.ui.tests.core.CompletionTestSetup.java
License:Open Source License
public static IPackageFragment getAnonymousTestPackage(IJavaProject project) throws CoreException { String sourceFolder = "src" + fAnonymousSoureFolderCounter++; IPackageFragmentRoot root = project.getPackageFragmentRoot(sourceFolder); if (!root.exists()) root = JavaProjectHelper.addSourceContainer(project, sourceFolder); IPackageFragment fragment = root.getPackageFragment("test1"); if (!fragment.exists()) fragment = root.createPackageFragment("test1", false, null); return fragment; }
From source file:org.eclipse.pde.api.tools.tests.AbstractApiTest.java
License:Open Source License
/** * Creates a project with the given name and adds the default 'src' folder * // w w w .j ava 2 s.c om * @param name * @param packages an optional list of packages to add to the project when * it is created * @throws Exception */ protected void createProject(final String name, String[] packages) throws Exception { if (name == null) { return; } // create project and import source IJavaProject jproject = ProjectUtils.createPluginProject(name, new String[] { PDE.PLUGIN_NATURE, ApiPlugin.NATURE_ID }); assertNotNull("The java project must have been created", jproject); //$NON-NLS-1$ IPackageFragmentRoot root = jproject .getPackageFragmentRoot(jproject.getProject().getFolder(ProjectUtils.SRC_FOLDER)); assertTrue("the src root must have been created", root.exists()); //$NON-NLS-1$ if (packages != null) { IPackageFragment fragment = null; for (int i = 0; i < packages.length; i++) { fragment = root.createPackageFragment(packages[i], true, new NullProgressMonitor()); assertNotNull("the package fragment " + packages[i] + " cannot be null", fragment); //$NON-NLS-1$ //$NON-NLS-2$ } } PluginRegistry.getWorkspaceModels(); IApiBaseline baseline = getWorkspaceBaseline(); assertNotNull("the workspace baseline cannot be null", baseline); //$NON-NLS-1$ // This assertion caused intermittant failures, skipping it hasn't // caused any problems in the tests (Bug 368458) // IApiComponent component = baseline.getApiComponent(name); // assertNotNull("the test project api component must exist in the workspace baseline", // component); }
From source file:org.eclipse.pde.api.tools.tests.util.ProjectUtils.java
License:Open Source License
/** * Adds a new source container specified by the container name to the source * path of the specified project/*from www . ja va2 s . c o m*/ * * @param jproject * @param containerName * @return the package fragment root of the container name * @throws CoreException */ public static IPackageFragmentRoot addSourceContainer(IJavaProject jproject, String containerName) throws CoreException { IProject project = jproject.getProject(); IPackageFragmentRoot root = jproject.getPackageFragmentRoot(addFolderToProject(project, containerName)); IClasspathEntry cpe = JavaCore.newSourceEntry(root.getPath()); addToClasspath(jproject, cpe); return root; }
From source file:org.eclipse.pde.api.tools.util.tests.ApiBaselineManagerTests.java
License:Open Source License
/** * Tests that the output folder settings for a source folder cause the class * file containers to be updated/* ww w.j a v a 2 s . c om*/ */ public void testWPUpdateOutputFolderSrcFolderChanged() throws Exception { IJavaProject project = getTestingProject(); IApiComponent component = getWorkspaceBaseline().getApiComponent(project.getElementName()); assertNotNull("the workspace component must exist", component); //$NON-NLS-1$ int before = component.getApiTypeContainers().length; ProjectUtils.addFolderToProject(project.getProject(), "bin3"); //$NON-NLS-1$ IContainer container = ProjectUtils.addFolderToProject(project.getProject(), "src2"); //$NON-NLS-1$ // add to bundle class path IBundleProjectService service = ProjectUtils.getBundleProjectService(); IBundleClasspathEntry next = service.newBundleClasspathEntry(new Path("src2"), new Path("bin3"), //$NON-NLS-1$//$NON-NLS-2$ new Path("next.jar")); //$NON-NLS-1$ ProjectUtils.addBundleClasspathEntry(project.getProject(), next); waitForAutoBuild(); // retrieve updated component component = getWorkspaceBaseline().getApiComponent(project.getElementName()); assertTrue("there must be one more container after the change", //$NON-NLS-1$ before < component.getApiTypeContainers().length); IPackageFragmentRoot root = project.getPackageFragmentRoot(container); assertTrue("the class file container for src2 must be 'bin3'", //$NON-NLS-1$ "bin3".equals(root.getRawClasspathEntry().getOutputLocation().toFile().getName())); //$NON-NLS-1$ }
From source file:org.eclipse.pde.api.tools.util.tests.ProjectCreationTests.java
License:Open Source License
/** * Tests importing the java source for the Javadoc tag update tests *//* w w w . j a v a 2s. c om*/ public void testImportJavadocTestSource() { try { File dest = new File(JAVADOC_SRC_DIR); assertTrue("the source dir must exist", dest.exists()); //$NON-NLS-1$ assertTrue("the source dir must be a directory", dest.isDirectory()); //$NON-NLS-1$ IJavaProject project = getTestingJavaProject(TESTING_PROJECT_NAME); IPackageFragmentRoot srcroot = project.getPackageFragmentRoot(ProjectUtils.SRC_FOLDER); assertNotNull("the srcroot for the test java project must not be null", srcroot); //$NON-NLS-1$ FileUtils.importFilesFromDirectory(dest, project.getPath().append(srcroot.getPath()).append("javadoc"), //$NON-NLS-1$ new NullProgressMonitor()); // try to look up a file to test if it worked IType type = project.findType("javadoc.JavadocTestClass1", new NullProgressMonitor()); //$NON-NLS-1$ assertNotNull("the JavadocTestClass1 type should exist in the javadoc package", type); //$NON-NLS-1$ } catch (Exception e) { fail(e.getMessage()); } }
From source file:org.eclipse.pde.api.tools.util.tests.ProjectCreationTests.java
License:Open Source License
/** * Tests importing the java source for the javadoc tag reading tests *//*from w w w . ja v a 2 s .co m*/ public void testImportClassesTestSource() { try { File dest = new File(JAVADOC_READ_SRC_DIR); assertTrue("the source dir must exist", dest.exists()); //$NON-NLS-1$ assertTrue("the source dir must be a directory", dest.isDirectory()); //$NON-NLS-1$ IJavaProject project = getTestingJavaProject(TESTING_PROJECT_NAME); IPackageFragmentRoot srcroot = project.getPackageFragmentRoot(ProjectUtils.SRC_FOLDER); assertNotNull("the srcroot for the test java project must not be null", srcroot); //$NON-NLS-1$ FileUtils.importFilesFromDirectory(dest, project.getPath().append(srcroot.getPath()).append("a").append("b").append("c"), //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ new NullProgressMonitor()); } catch (Exception e) { fail(e.getMessage()); } }
From source file:org.eclipse.pde.internal.core.util.ManifestUtils.java
License:Open Source License
public static IPackageFragmentRoot[] findPackageFragmentRoots(IManifestHeader header, IProject project) { IJavaProject javaProject = JavaCore.create(project); String[] libs;/*from w w w.j a v a2s .c o m*/ if (header == null || header.getValue() == null) libs = new String[] { "." }; //$NON-NLS-1$ else libs = header.getValue().split(","); //$NON-NLS-1$ IBuild build = getBuild(project); if (build == null) { try { return javaProject.getPackageFragmentRoots(); } catch (JavaModelException e) { return new IPackageFragmentRoot[0]; } } List<IPackageFragmentRoot> pkgFragRoots = new LinkedList<IPackageFragmentRoot>(); for (int j = 0; j < libs.length; j++) { String lib = libs[j]; //https://bugs.eclipse.org/bugs/show_bug.cgi?id=230469 IPackageFragmentRoot root = null; if (!lib.equals(".")) { //$NON-NLS-1$ try { root = javaProject.getPackageFragmentRoot(project.getFile(lib)); } catch (IllegalArgumentException e) { return new IPackageFragmentRoot[0]; } } if (root != null && root.exists()) { pkgFragRoots.add(root); } else { IBuildEntry entry = build.getEntry("source." + lib); //$NON-NLS-1$ if (entry == null) continue; String[] tokens = entry.getTokens(); for (int i = 0; i < tokens.length; i++) { IResource resource = project.findMember(tokens[i]); if (resource == null) continue; root = javaProject.getPackageFragmentRoot(resource); if (root != null && root.exists()) pkgFragRoots.add(root); } } } return pkgFragRoots.toArray(new IPackageFragmentRoot[pkgFragRoots.size()]); }