private void locateCodebasesRequiredForAnalysis ( IClassPath classPath , IClassPathBuilderProgress progress ) throws InterruptedException , IOException , ResourceNotFoundException { boolean foundJavaLangObject = false ; boolean foundFindBugsAnnotations = false ; boolean foundJSR305Annotations = false ; for ( DiscoveredCodeBase discoveredCodeBase : discoveredCodeBaseList ) { if ( ! foundJavaLangObject ) { foundJavaLangObject = probeCodeBaseForResource ( discoveredCodeBase , "java/lang/Object.class" ) ; } if ( ! foundFindBugsAnnotations ) { foundFindBugsAnnotations = probeCodeBaseForResource ( discoveredCodeBase , "edu/umd/cs/findbugs/annotations/Nonnull.class" ) ; } if ( ! foundJSR305Annotations ) { foundJSR305Annotations = probeCodeBaseForResource ( discoveredCodeBase , "javax/annotation/meta/TypeQualifier.class" ) ; if ( DEBUG ) { System . out . println ( "foundJSR305Annotations: " + foundJSR305Annotations ) ; } } } if ( ! foundJavaLangObject ) { processWorkList ( classPath , buildSystemCodebaseList ( ) , progress ) ; } // If we're running findbugs-full.jar, IT contains the contents // of jsr305.jar and annotations.jar. So, add it to the classpath. if ( runningFindBugsFullJar ( ) ) { processWorkList ( classPath , buildFindBugsFullJarCodebaseList ( ) , progress ) ; return ; } // Not running findbugs-full.jar: try to find jsr305.jar and // annotations.jar. if ( ! foundFindBugsAnnotations ) { processWorkList ( classPath , buildFindBugsAnnotationCodebaseList ( ) , progress ) ; } if ( ! foundJSR305Annotations ) { processWorkList ( classPath , buildJSR305AnnotationsCodebaseList ( ) , progress ) ; } }
Make an effort to find the codebases containing any files required for analysis .