public String getProjectClassPath()

in CasViewerEclipsePlugin/uimaj-ep-casviewer/src/main/java/org/apache/uima/casviewer/viewer/internal/GenericCasViewer.java [1315:1364]


    public String getProjectClassPath(IFile iFile) {
        IJavaProject javaProj = getJavaProject(iFile);
        if (javaProj == null) {
            return "";
        }
        IProject projectRoot = javaProj.getProject();

        IResource classFileResource = projectRoot.findMember(".classpath"); //$NON-NLS-1$
        long stamp = classFileResource.getModificationStamp();
        if (stamp == cachedStamp)
            return cachedClassPath;
        cachedStamp = stamp;

        StringBuffer result = new StringBuffer(1000);

        String[] classPaths;
        try {
            classPaths = JavaRuntime.computeDefaultRuntimeClassPath(javaProj);
        } catch (CoreException e) {
            e.printStackTrace();
            return null;
        }

        for (int i = 0; i < classPaths.length; i++) {
            String classPath = classPaths[i];

            URLClassLoader checker = null;
            try {
                // ignore this entry if it is the Java JVM path
                checker = new URLClassLoader(new URL[] { new File(classPath).toURL() });

            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if (null == checker
                    // || null != checker.findResource("java/lang/Object.class") //$NON-NLS-1$
                    || null != checker.findResource("org/apache/uima/impl/UIMAFramework_impl.class")) { //$NON-NLS-1$
                Trace.err("Skip calsspath: " + classPath);
                continue;
            }
            if (result.length() > 0) {
                result = result.append(PATH_SEPARATOR);
            }
            result = result.append(classPath);
        }
        cachedStamp = stamp;
        cachedClassPath = result.toString();
        return cachedClassPath;
    }