private void dumpCodeBaseList(Iterator<? extends ICodeBase> i, String desc) throws InterruptedException { System.out.println(" " + desc + ":"); while (i.hasNext()) { ICodeBase codeBase = i.next(); System.out.println(" " + codeBase.getCodeBaseLocator().toString()); if (codeBase.containsSourceFiles()) { System.out.println(" * contains source files"); } } }
@Override public void addCodeBase(ICodeBase codeBase) { if (codeBase.isApplicationCodeBase()) { if (!(codeBase instanceof IScannableCodeBase)) { throw new IllegalStateException(); } appCodeBaseList.add((IScannableCodeBase) codeBase); } else { auxCodeBaseList.add(codeBase); } }
ICodeBaseEntry manifestEntry = codeBase.lookupResource("META-INF/MANIFEST.MF"); if (manifestEntry == null) { ICodeBaseLocator relativeCodeBaseLocator = codeBase.getCodeBaseLocator().createRelativeCodeBaseLocator(path);
if (!discoveredCodeBase.getCodeBase().isApplicationCodeBase() && item.isAppCodeBase()) { discoveredCodeBase.getCodeBase().setApplicationCodeBase(true); discoveredCodeBase.getCodeBase().setApplicationCodeBase(item.isAppCodeBase()); discoveredCodeBase.getCodeBase().setHowDiscovered(item.getHowDiscovered()); && ( discoveredCodeBase.codeBase.isApplicationCodeBase() || item.getHowDiscovered() == ICodeBase.Discovered.SPECIFIED) ) {
ICodeBase appCodeBase = i.next(); if (appCodeBase.containsSourceFiles()) { String pathName = appCodeBase.getPathName(); if (pathName != null) { pathNames.add(pathName); project.addTimestamp(appCodeBase.getLastModifiedTime());
/** * Search list of codebases for named resource. * * @param codeBaseList * list of codebases to search * @param resourceName * name of resourse * @return codebase entry for the named resource, or null if the named * resource cannot be found */ private ICodeBaseEntry search(List<? extends ICodeBase> codeBaseList, String resourceName) { for (ICodeBase codeBase : codeBaseList) { ICodeBaseEntry resource = codeBase.lookupResource(resourceName); if (resource != null) { return resource; } // Ignore, continue trying other codebases } return null; }
private static void setUpStaticDependenciesWithinFindBugs(BugReporter bugReporter) throws Exception { bugReporter.setPriorityThreshold(Priorities.LOW_PRIORITY); ClassPathImpl classPath = new ClassPathImpl(); IAnalysisCache analysisCache = ClassFactory.instance().createAnalysisCache(classPath, bugReporter); new ClassContextClassAnalysisEngine().registerWith(analysisCache); new edu.umd.cs.findbugs.classfile.engine.asm.EngineRegistrar().registerAnalysisEngines(analysisCache); new edu.umd.cs.findbugs.classfile.engine.bcel.EngineRegistrar().registerAnalysisEngines(analysisCache); new edu.umd.cs.findbugs.classfile.engine.EngineRegistrar().registerAnalysisEngines(analysisCache); registerUserDefined(analysisCache); Global.setAnalysisCacheForCurrentThread(analysisCache); ICodeBaseLocator codeBaseLocator = new FilesystemCodeBaseLocator("."); ICodeBase codeBase = new DirectoryCodeBase(codeBaseLocator, new File(CODEBASE_DIRECTORY)); codeBase.setApplicationCodeBase(true); classPath.addCodeBase(codeBase); addAuxCodeBasesFromClassPath(classPath); IClassFactory classFactory = ClassFactory.instance(); IClassPathBuilder builder = classFactory.createClassPathBuilder(bugReporter); builder.addCodeBase(codeBaseLocator, true); builder.scanNestedArchives(true); IClassPathBuilderProgress progress = new NoOpFindBugsProgress(); builder.build(classPath, progress); List<ClassDescriptor> appClassList = builder.getAppClassList(); AnalysisCacheToAnalysisContextAdapter analysisContext = new AnalysisCacheToAnalysisContextAdapter(); AnalysisContext.setCurrentAnalysisContext(analysisContext); analysisContext.setAppClassList(appClassList); analysisContext.setFieldSummary(new FieldSummary()); }
@Override public String toString() { return "nested:[" + parentCodeBase.getCodeBaseLocator() + "]" + resourceName; }
if (!discoveredCodeBase.getCodeBase().isApplicationCodeBase() && item.isAppCodeBase()) { discoveredCodeBase.getCodeBase().setApplicationCodeBase(true); discoveredCodeBase.getCodeBase().setApplicationCodeBase(item.isAppCodeBase()); discoveredCodeBase.getCodeBase().setHowDiscovered(item.getHowDiscovered()); && ( discoveredCodeBase.codeBase.isApplicationCodeBase() || item.getHowDiscovered() == ICodeBase.Discovered.SPECIFIED) ) {
ICodeBase appCodeBase = i.next(); if (appCodeBase.containsSourceFiles()) { String pathName = appCodeBase.getPathName(); if (pathName != null) { project.addSourceDir(pathName); project.addTimestamp(appCodeBase.getLastModifiedTime());
ICodeBaseEntry manifestEntry = codeBase.lookupResource("META-INF/MANIFEST.MF"); if (manifestEntry == null) { ICodeBaseLocator relativeCodeBaseLocator = codeBase.getCodeBaseLocator().createRelativeCodeBaseLocator(path);
/** * Probe a codebase to see if a given source exists in that code base. * * @param resourceName * name of a resource * @return true if the resource exists in the codebase, false if not */ private boolean probeCodeBaseForResource(DiscoveredCodeBase discoveredCodeBase, String resourceName) { ICodeBaseEntry resource = discoveredCodeBase.getCodeBase().lookupResource(resourceName); return resource != null; }
throws InterruptedException { if (DEBUG) { System.out.println("Scanning " + discoveredCodeBase.getCodeBase().getCodeBaseLocator());
private void dumpCodeBaseList(Iterator<? extends ICodeBase> i, String desc) throws InterruptedException { System.out.println(" " + desc + ":"); while (i.hasNext()) { ICodeBase codeBase = i.next(); System.out.println(" " + codeBase.getCodeBaseLocator().toString()); if (codeBase.containsSourceFiles()) { System.out.println(" * contains source files"); } } }
@Override public Map<String, ICodeBaseEntry> getApplicationCodebaseEntries() { Map<String, ICodeBaseEntry> appEntries = new HashMap<>(); Iterator<Entry<String, ICodeBaseEntry>> iterator = codeBaseEntryMap.entrySet().iterator(); while(iterator.hasNext()) { Entry<String, ICodeBaseEntry> entry = iterator.next(); ICodeBaseEntry codeBaseEntry = entry.getValue(); if(codeBaseEntry.getCodeBase().isApplicationCodeBase()) { appEntries.put(entry.getKey(), codeBaseEntry); } } return appEntries; }
ICodeBaseEntry resource = parentCodeBase.lookupResource(resourceName); if (resource == null) { throw new ResourceNotFoundException(resourceName);
@Override public String toString() { return "nested:[" + parentCodeBase.getCodeBaseLocator() + "]" + resourceName; }
if (!discoveredCodeBase.getCodeBase().isApplicationCodeBase()) { continue;