Example usage for org.eclipse.jdt.core IPackageFragmentRoot isArchive

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot isArchive

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot isArchive.

Prototype

public boolean isArchive();

Source Link

Document

Returns whether this package fragment root's underlying resource is a binary archive (a JAR or zip file).

Usage

From source file:it.unibz.instasearch.indexing.WorkspaceIndexerJDT.java

License:Open Source License

private List<IPackageFragmentRoot> getJars(IJavaModel javaModel) throws JavaModelException {

    IJavaProject[] projects = javaModel.getJavaProjects();
    TreeSet<String> jarNames = new TreeSet<String>();
    LinkedList<IPackageFragmentRoot> jars = new LinkedList<IPackageFragmentRoot>();

    for (IJavaProject javaProj : projects) {

        IPackageFragmentRoot[] roots = javaProj.getPackageFragmentRoots();

        for (IPackageFragmentRoot root : roots) {
            if (root.isArchive() && root.getSourceAttachmentPath() != null) {

                String name = root.getElementName();

                if (!jarNames.contains(name)) {
                    jarNames.add(name);//from w  w w.ja v a  2s.  c  o  m
                    jars.add(root);
                }
            }
        }
    }

    return jars;
}

From source file:it.unibz.instasearch.indexing.WorkspaceIndexerJDT.java

License:Open Source License

/**
 * @param doc/*www  .j  av a  2  s  .c om*/
 * @return
 * @throws JavaModelException 
 */
private IStorage getNonJavaResource(SearchResultDoc doc) throws JavaModelException {

    IWorkspaceRoot workspaceRoot = InstaSearchPlugin.getWorkspaceRoot();
    IJavaModel javaModel = JavaCore.create(workspaceRoot);

    String javaProjectName = doc.getProject().segment(0);
    IJavaProject javaProj = javaModel.getJavaProject(javaProjectName);

    if (!javaProj.isOpen())
        javaProj.open(new NullProgressMonitor());

    javaModel.refreshExternalArchives(new IJavaElement[] { javaProj }, new NullProgressMonitor());

    String jarName = doc.getJarName();

    IPackageFragmentRoot[] roots = javaProj.getPackageFragmentRoots();
    IPackageFragmentRoot jar = null;

    for (IPackageFragmentRoot root : roots) {
        if (root.isArchive() && root.getSourceAttachmentPath() != null) {

            String name = root.getElementName();
            if (name.equals(jarName)) {
                jar = root;
                break;
            }
        }
    }

    if (jar == null)
        return null;

    String filePath = doc.getFilePath();
    IPath path = new Path(filePath);

    IJarEntryResource res = null;
    for (String segment : path.segments()) {
        if (res == null)
            res = findJarEntry(jar, segment);
        else
            res = findJarEntry(res.getChildren(), segment);
    }

    return res;
}

From source file:jmockit.assist.JunitLaunchListener.java

License:Open Source License

public boolean addJavaAgentVmArg(final ILaunchConfiguration conf) throws CoreException {
    boolean added = false;
    String vmargs = conf.getAttribute(JunitLaunchListener.VM_ARGS, "");
    String project = conf.getAttribute(JunitLaunchListener.PROJ_ATTR, "");

    IJavaModel javaModel = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
    IJavaProject jproj = javaModel.getJavaProject(project);

    IType mockitType = jproj.findType(MockUtil.MOCK);
    if (mockitType == null) {
        mockitType = jproj.findType(MockUtil.MOCKIT);
    }//from w w w .  ja  v  a 2  s.  c om

    if (mockitType != null) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) mockitType
                .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);

        if (root != null && root.isArchive()) // its a jar
        {
            String jarPath = root.getPath().toOSString();
            if (root.getResource() != null) {
                jarPath = root.getResource().getRawLocation().toString();
            }

            if (new File(jarPath).exists()) {
                String javaagentArg = "-javaagent:\"" + jarPath + "\"";
                setOrCreateVariable(javaagentArg);

                if (!vmargs.contains(JunitLaunchListener.JMOCKIT_VAR) && !vmargs.contains("-javaagent")) {
                    setRunConfVmArgs(conf, vmargs + " " + JunitLaunchListener.JMOCKIT_VAR);
                    added = true;
                }
            } else {
                Activator.log(new FileNotFoundException(jarPath));
            }
        }
    }

    return added;
}

From source file:nz.ac.massey.cs.barrio.srcgraphbuilder.ExtractDependencyGraphJob.java

License:Apache License

@Override
protected IStatus run(IProgressMonitor monitor) {
    try {//from   w  w  w  .jav a2s.com
        int SCALE = 100000;
        monitor.beginTask("extracting dependency graph from Java project", SCALE);
        monitor.subTask("gathering classes");
        try {
            for (IJavaElement e : project.getChildren()) {
                //System.out.println("child"+e+" - "+e.getClass());
                if (e instanceof IPackageFragmentRoot) {
                    // sources
                    IPackageFragmentRoot pfr = (IPackageFragmentRoot) e;
                    if (pfr.getKind() == pfr.K_SOURCE) {
                        ContainerRef c = new ContainerRef();
                        c.setSourceContainer(true);
                        c.setName(pfr.getElementName());
                        c.setArchive(pfr.isArchive());
                        this.containers.add(c);
                        gatherSources(c, pfr);
                        // System.out.println("Added container " + c.getName() + " - contains " + c.getClassCount() + " sources");
                    } else if (pfr.getKind() == pfr.K_BINARY) {
                        ContainerRef c = new ContainerRef();
                        c.setSourceContainer(false);
                        c.setName(pfr.getElementName());
                        this.containers.add(c);
                        gatherBinaries(c, pfr);
                        // System.out.println("Added container " + c.getName() + " - contains " + c.getClassCount() + " bin classes");
                    } else {
                        System.err.println("Unhandled Java element type: " + e);
                    }
                }
            }
        } catch (Exception x) {
            x.printStackTrace();
        }
        // STEP2 - parse sources
        monitor.worked((int) (0.08 * SCALE));
        monitor.subTask("parsing classes");
        List<PackageRef> packages = new ArrayList<PackageRef>();
        for (ContainerRef c : containers) {
            if (c.isSourceContainer()) {
                for (PackageRef p : c.getPackages()) {
                    if (p.getClassCount() > 0)
                        packages.add(p);
                }
            }
        }
        monitor.internalWorked((int) (0.1 * SCALE));
        int delta = (int) (SCALE * 0.5 / packages.size());
        for (PackageRef p : packages) {
            monitor.subTask("parsing classes in package " + p.getName());

            monitor.worked(delta);
            for (ClassRef c : p.getClasses()) {
                SourceRef src = (SourceRef) c;
                ExtractTypeInfoVisitor v = new ExtractTypeInfoVisitor(src);
                ASTParser parser = ASTParser.newParser(AST.JLS3);
                parser.setSource(src.getCompilationUnit());
                parser.setResolveBindings(false);
                ASTNode node = parser.createAST(null);
                node.accept(v);
            }
        }

        // STEP3 - resolve references

        for (PackageRef p : packages) {
            monitor.subTask("resolving references " + p.getName());
            monitor.worked(delta);
            // add inner classes
            List<ClassRef> classlist = new ArrayList<ClassRef>(); // to avoid concurrent modification exception
            classlist.addAll(p.getClasses());
            for (ClassRef c : classlist) {
                addInnerClasses((SourceRef) c, p);
            }

            // resolve references
            for (ClassRef c : p.getClasses()) {
                SourceRef src = (SourceRef) c;
                resolveReferences(src);
            }
        }

        // STEP5: testing
        for (ContainerRef c : containers) {
            if (c.hasTestCases())
                c.test();
        }

        // STEP6 export graph
        monitor.subTask("exporting dependency graph");
        exportGraph();

        monitor.done();
        return Status.OK_STATUS;
    } finally {

    }
}

From source file:org.apache.tapestrytools.ui.internal.tcc.editor.PackagesPart.java

License:Open Source License

private void collectCustomComponents(IProject project) {
    List<ComponentInstance> componentList = new ArrayList<ComponentInstance>();
    try {// w  w w.  j  av a2 s .com
        IPackageFragmentRoot[] roots = JavaCore.create(project).getAllPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            IPackageFragmentRoot root = roots[i];
            String srcPath = root.getElementName();
            for (ComponentPackage pi : model.getCustomPackageList()) {
                if (pi.isArchive() == root.isArchive() && srcPath.equals(pi.getFragmentRoot())) {
                    if (!root.isArchive()) {
                        //Load custom components from source directory
                        String wholePath = "/" + srcPath + "/" + pi.getPath().replace(".", "/");
                        IFolder folder = project.getFolder(wholePath);
                        if (folder.exists()) {
                            IResource[] fileList = folder.members();
                            for (IResource file : fileList) {
                                String fullPath = file.getFullPath().toString();
                                String classFile = fullPath.replace(".tml", ".java").substring(1);
                                classFile = classFile.substring(classFile.indexOf("/"));
                                if (fullPath.endsWith(".tml") && file.getType() == IResource.FILE
                                        && project.getFile(classFile).exists()) {
                                    IFile componentFile = (IFile) file;
                                    Element rootElement = getRootElementOfXML(componentFile.getContents());
                                    if (rootElement.getNodeName().trim().equals("t:container")) {
                                        String componentName = classFile.substring(classFile.lastIndexOf("/"));
                                        componentName = componentName.substring(0, componentName.indexOf("."));
                                        if (componentName.startsWith("/"))
                                            componentName = componentName.substring(1);
                                        ComponentInstance ci = new ComponentInstance();
                                        ci.setId(componentName);
                                        ci.setName(pi.getPrefix() + ":" + componentName);
                                        ci.setPath(pi.getPath());
                                        ci.setPrefix(pi.getPrefix());
                                        ci.setText(componentName);
                                        componentList.add(ci);
                                    }
                                }
                            }
                        }
                    } else {
                        // Load custom components from jar files
                        for (IJavaElement pack : root.getChildren()) {
                            if (pack != null && pack instanceof PackageFragment
                                    && pack.getElementName().equals(pi.getPath())) {
                                for (Object packo : ((PackageFragment) pack)
                                        .getChildrenOfType(IJavaElement.CLASS_FILE)) {
                                    ClassFile packi = (ClassFile) packo;
                                    String itemName = packi.getElementName();
                                    if (itemName.indexOf('$') < 0 && itemName.endsWith(".class")) {
                                        ComponentInstance ci = new ComponentInstance();
                                        String componentName = itemName.substring(0, itemName.length() - 6);
                                        ci.setId(componentName);
                                        ci.setName(pi.getPrefix() + ":" + componentName);
                                        ci.setPath(pi.getPath());
                                        ci.setPrefix(pi.getPrefix());
                                        ci.setText(componentName);
                                        componentList.add(ci);
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }
        model.setComponentList(componentList);
        markDirty();
    } catch (JavaModelException e) {
        e.printStackTrace();
    } catch (CoreException e) {
        e.printStackTrace();
    }
}

From source file:org.apache.tapestrytools.ui.internal.tcc.editor.Utils.java

License:Open Source License

public static Set<IJavaElement> getSrcDirectories(IProject project) {
    Set<IJavaElement> list = new HashSet<IJavaElement>();
    try {//w w  w . ja v a 2  s.c  om
        IPackageFragmentRoot[] sourceFolders = JavaCore.create(project).getAllPackageFragmentRoots();
        for (int i = 0; i < sourceFolders.length; i++) {
            IPackageFragmentRoot item = sourceFolders[i];
            String jarPath = item.getPath().toString();
            String jarName = jarPath.substring(jarPath.lastIndexOf('/'));
            if (sourceFolders[i].getResource() != null && !sourceFolders[i].isArchive()
                    || item.isArchive() && jarPath.endsWith(".jar") && !BLOCKED_JARS.contains(jarName)) {
                IJavaElement[] eles = sourceFolders[i].getChildren();
                for (IJavaElement ele : eles) {
                    if (!ele.getElementName().trim().isEmpty())
                        list.add(ele);
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return list;
}

From source file:org.cloudfoundry.ide.eclipse.server.standalone.internal.application.JavaCloudFoundryArchiver.java

License:Open Source License

protected IFile getManifest(IPackageFragmentRoot[] roots, IJavaProject javaProject) throws CoreException {

    IFolder metaFolder = null;/* w ww . j a  v  a2s. c om*/
    for (IPackageFragmentRoot root : roots) {
        if (!root.isArchive() && !root.isExternal()) {
            IResource resource = root.getResource();
            metaFolder = getMetaFolder(resource);
            if (metaFolder != null) {
                break;
            }
        }
    }

    // Otherwise look for manifest file in the java project:
    if (metaFolder == null) {
        metaFolder = getMetaFolder(javaProject.getProject());
    }

    if (metaFolder != null) {
        IResource[] members = metaFolder.members();
        if (members != null) {
            for (IResource mem : members) {
                if (MANIFEST_FILE.equals(mem.getName().toUpperCase()) && mem instanceof IFile) {
                    return (IFile) mem;
                }
            }
        }
    }

    return null;

}

From source file:org.cloudfoundry.ide.eclipse.server.standalone.internal.application.JavaCloudFoundryArchiver.java

License:Open Source License

protected void bootRepackage(final IPackageFragmentRoot[] roots, File packagedFile) throws CoreException {
    Repackager bootRepackager = new Repackager(packagedFile);
    try {/*  w ww . ja va2 s  .c  o  m*/
        bootRepackager.repackage(new Libraries() {

            public void doWithLibraries(LibraryCallback callBack) throws IOException {
                for (IPackageFragmentRoot root : roots) {

                    if (root.isArchive()) {

                        File rootFile = new File(root.getPath().toOSString());
                        if (rootFile.exists()) {
                            callBack.library(new Library(rootFile, LibraryScope.COMPILE));
                        }
                    }
                }
            }
        });
    } catch (IOException e) {
        handleApplicationDeploymentFailure(
                NLS.bind(Messages.JavaCloudFoundryArchiver_ERROR_REPACKAGE_SPRING, e.getMessage()));
    }
}

From source file:org.dyno.visual.swing.base.JavaUtil.java

License:Open Source License

private static IPackageFragmentRoot getSourceRoot(IJavaProject prj) {
    try {//  ww  w  . j  a v a2s  .  com
        IJavaElement[] children = prj.getChildren();
        for (IJavaElement child : children) {
            if (child instanceof IPackageFragmentRoot) {
                IPackageFragmentRoot childRoot = (IPackageFragmentRoot) child;
                if (!childRoot.isArchive())
                    return childRoot;
            }
        }
    } catch (JavaModelException e) {
        VisualSwingPlugin.getLogger().error(e);
    }
    return null;
}

From source file:org.dyno.visual.swing.base.ResourceIcon.java

License:Open Source License

public ResourceIcon(String p) {
    this.path = p;
    IJavaProject prj = VisualSwingPlugin.getCurrentProject();
    IProject project = prj.getProject();
    IResource resource = project.findMember(new Path(p));
    if (resource == null) {
        IPackageFragmentRoot[] roots;//from w w  w . j  a  v  a2 s .c  o  m
        try {
            roots = prj.getPackageFragmentRoots();
            for (IPackageFragmentRoot root : roots) {
                if (!root.isArchive()) {
                    String src = root.getElementName();
                    src = "/" + src + p;
                    resource = project.findMember(new Path(src));
                    if (resource != null) {
                        String ext = resource.getFileExtension();
                        if (ext.equals("gif") || ext.equals("png") || ext.equals("jpg")) {
                            IPath fullPath = project.getWorkspace().getRoot().getRawLocation()
                                    .append(resource.getFullPath());
                            String fullpath = fullPath.toString();
                            Image image = Toolkit.getDefaultToolkit().getImage(fullpath);
                            icon = new ImageIcon(image);
                        } else {
                            break;
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            VisualSwingPlugin.getLogger().error(e);
        }
    }
}