Package list findbugs / bae81f4
initialize with upstream version of 2.0.2 yesx 8 years ago
1430 changed file(s) with 286274 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 <?xml version="1.0" encoding="UTF-8"?>
1 <fileset-config file-format-version="1.1.0" simple-config="true">
2 <fileset name="all" check-config-name="Sun Checks" enabled="true"><file-match-pattern match-pattern="." include-pattern="true"/>
3 </fileset>
4 </fileset-config>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <classpath>
2 <classpathentry excluding="**/CVS/*" kind="src" path="src/java"/>
3 <classpathentry excluding="**/CVS/*" kind="src" path="src/antTask"/>
4 <classpathentry excluding="**/CVS/*|edu/umd/cs/findbugs/tools/patcomp/**/*" kind="src" path="src/tools"/>
5 <classpathentry kind="src" path="etc"/>
6 <classpathentry kind="src" path="src/xsl"/>
7 <classpathentry excluding="**/CVS/*" kind="src" path="src/junit"/>
8 <classpathentry kind="src" path="src/gui"/>
9 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
10 <accessrules>
11 <accessrule kind="accessible" pattern="com/sun/management/*"/>
12 <accessrule kind="nonaccessible" pattern="com/sun/**"/>
13 <accessrule kind="accessible" pattern="com/apple/eawt/*"/>
14 <accessrule kind="nonaccessible" pattern="com/apple/**"/>
15 </accessrules>
16 </classpathentry>
17 <classpathentry kind="lib" path="lib/AppleJavaExtensions.jar"/>
18 <classpathentry exported="true" kind="lib" path="lib/bcel.jar">
19 <attributes>
20 <attribute name="javadoc_location" value="http://jakarta.apache.org/bcel/apidocs/"/>
21 </attributes>
22 </classpathentry>
23 <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar">
24 <attributes>
25 <attribute name="javadoc_location" value="http://dom4j.org/apidocs/"/>
26 </attributes>
27 </classpathentry>
28 <classpathentry kind="lib" path="lib/junit.jar"/>
29 <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.4.jar"/>
30 <classpathentry exported="true" kind="lib" path="lib/jcip-annotations.jar"/>
31 <classpathentry kind="lib" path="lib/yjp-controller-api-redist.jar"/>
32 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
33 <classpathentry exported="true" kind="lib" path="lib/jsr305.jar" sourcepath="lib/jsr305.jar"/>
34 <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.1.jar"/>
35 <classpathentry exported="true" kind="lib" path="lib/jFormatString.jar"/>
36 <classpathentry exported="true" kind="lib" path="lib/jdepend-2.9.jar"/>
37 <classpathentry exported="true" kind="lib" path="lib/asm-3.3.jar" sourcepath="lib/asm-src-3.3.zip"/>
38 <classpathentry exported="true" kind="lib" path="lib/asm-commons-3.3.jar" sourcepath="lib/asm-src-3.3.zip"/>
39 <classpathentry exported="true" kind="lib" path="lib/asm-tree-3.3.jar" sourcepath="lib/asm-src-3.3.zip"/>
40 <classpathentry kind="lib" path="lib/ant.jar"/>
41 <classpathentry kind="output" path="classesEclipse"/>
42 </classpath>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <pmd><useProjectRuleSet>false</useProjectRuleSet><rules><rule><name>UnnecessaryReturn</name><ruleset>Basic Rules</ruleset></rule><rule><name>IdempotentOperations</name><ruleset>Design Rules</ruleset></rule><rule><name>BadComparison</name><ruleset>Design Rules</ruleset></rule><rule><name>EmptyTryBlock</name><ruleset>Basic Rules</ruleset></rule><rule><name>SwitchDensity</name><ruleset>Design Rules</ruleset></rule><rule><name>NonCaseLabelInSwitchStatement</name><ruleset>Design Rules</ruleset></rule><rule><name>CloneMethodMustImplementCloneable</name><ruleset>Clone Implementation Rules</ruleset></rule><rule><name>UnusedModifier</name><ruleset>Controversial Rules</ruleset></rule><rule><name>CloneThrowsCloneNotSupportedException</name><ruleset>Clone Implementation Rules</ruleset></rule><rule><name>AvoidDeeplyNestedIfStmts</name><ruleset>Design Rules</ruleset></rule><rule><name>TooManyFields</name><ruleset>Code Size Rules</ruleset></rule><rule><name>FinalizeShouldBeProtected</name><ruleset>Finalizer Rules</ruleset></rule><rule><name>UnusedFormalParameter</name><ruleset>Unused Code Rules</ruleset></rule><rule><name>ConfusingTernary</name><ruleset>Design Rules</ruleset></rule><rule><name>AbstractClassWithoutAbstractMethod</name><ruleset>Design Rules</ruleset></rule><rule><name>UseAssertSameInsteadOfAssertTrue</name><ruleset>JUnit Rules</ruleset></rule><rule><name>UnnecessaryParentheses</name><ruleset>Controversial Rules</ruleset></rule><rule><name>StringInstantiation</name><ruleset>java.lang.String Rules</ruleset></rule><rule><name>UnusedLocalVariable</name><ruleset>Unused Code Rules</ruleset></rule><rule><name>NoPackage</name><ruleset>Naming Rules</ruleset></rule><rule><name>IfStmtsMustUseBraces</name><ruleset>Braces Rules</ruleset></rule><rule><name>LocalVariableCouldBeFinal</name><ruleset>Optimization Rules</ruleset></rule><rule><name>VariableNamingConventions</name><ruleset>Naming Rules</ruleset></rule><rule><name>UnnecessaryLocalBeforeReturn</name><ruleset>Design Rules</ruleset></rule><rule><name>OnlyOneReturn</name><ruleset>Controversial Rules</ruleset></rule><rule><name>ShortVariable</name><ruleset>Naming Rules</ruleset></rule><rule><name>PackageCase</name><ruleset>Naming Rules</ruleset></rule><rule><name>ExcessiveMethodLength</name><ruleset>Code Size Rules</ruleset></rule><rule><name>JUnitAssertionsShouldIncludeMessage</name><ruleset>JUnit Rules</ruleset></rule><rule><name>AvoidThrowingNullPointerException</name><ruleset>Strict Exception Rules</ruleset></rule><rule><name>WhileLoopsMustUseBraces</name><ruleset>Braces Rules</ruleset></rule><rule><name>DontImportJavaLang</name><ruleset>Import Statement Rules</ruleset></rule><rule><name>DoubleCheckedLocking</name><ruleset>Basic Rules</ruleset></rule><rule><name>NullAssignment</name><ruleset>Controversial Rules</ruleset></rule><rule><name>ReturnFromFinallyBlock</name><ruleset>Basic Rules</ruleset></rule><rule><name>StringToString</name><ruleset>java.lang.String Rules</ruleset></rule><rule><name>UnusedPrivateMethod</name><ruleset>Unused Code Rules</ruleset></rule><rule><name>ImportFromSamePackage</name><ruleset>Import Statement Rules</ruleset></rule><rule><name>DefaultLabelNotLastInSwitchStmt</name><ruleset>Design Rules</ruleset></rule><rule><name>SwitchStmtsShouldHaveDefault</name><ruleset>Design Rules</ruleset></rule><rule><name>FinalizeDoesNotCallSuperFinalize</name><ruleset>Finalizer Rules</ruleset></rule><rule><name>AvoidCallingFinalize</name><ruleset>Finalizer Rules</ruleset></rule><rule><name>FinalizeOverloaded</name><ruleset>Finalizer Rules</ruleset></rule><rule><name>CouplingBetweenObjects</name><ruleset>Coupling Rules</ruleset></rule><rule><name>ExcessiveImports</name><ruleset>Coupling Rules</ruleset></rule><rule><name>SuspiciousOctalEscape</name><ruleset>Controversial Rules</ruleset></rule><rule><name>CollapsibleIfStatements</name><ruleset>Basic Rules</ruleset></rule><rule><name>MoreThanOneLogger</name><ruleset>Java Logging Rules</ruleset></rule><rule><name>SystemPrintln</name><ruleset>Java Logging Rules</ruleset></rule><rule><name>EmptyFinalizer</name><ruleset>Finalizer Rules</ruleset></rule><rule><name>IfElseStmtsMustUseBraces</name><ruleset>Braces Rules</ruleset></rule><rule><name>ForLoopShouldBeWhileLoop</name><ruleset>Basic Rules</ruleset></rule><rule><name>EmptyStaticInitializer</name><ruleset>Basic Rules</ruleset></rule><rule><name>JumbledIncrementer</name><ruleset>Basic Rules</ruleset></rule><rule><name>LoggerIsNotStaticFinal</name><ruleset>Java Logging Rules</ruleset></rule><rule><name>CloseConnection</name><ruleset>Design Rules</ruleset></rule><rule><name>InstantiationToGetClass</name><ruleset>Design Rules</ruleset></rule><rule><name>CallSuperInConstructor</name><ruleset>Controversial Rules</ruleset></rule><rule><name>FinalFieldCouldBeStatic</name><ruleset>Design Rules</ruleset></rule><rule><name>UseSingleton</name><ruleset>Design Rules</ruleset></rule><rule><name>AvoidCatchingNPE</name><ruleset>Strict Exception Rules</ruleset></rule><rule><name>AvoidPrintStackTrace</name><ruleset>Java Logging Rules</ruleset></rule><rule><name>SuspiciousConstantFieldName</name><ruleset>Naming Rules</ruleset></rule><rule><name>ExcessiveClassLength</name><ruleset>Code Size Rules</ruleset></rule><rule><name>ShortMethodName</name><ruleset>Naming Rules</ruleset></rule><rule><name>UnnecessaryConstructor</name><ruleset>Controversial Rules</ruleset></rule><rule><name>CompareObjectsWithEquals</name><ruleset>Design Rules</ruleset></rule><rule><name>AvoidInstantiatingObjectsInLoops</name><ruleset>Optimization Rules</ruleset></rule><rule><name>SimplifyStartsWith</name><ruleset>Optimization Rules</ruleset></rule><rule><name>SimplifyBooleanReturns</name><ruleset>Design Rules</ruleset></rule><rule><name>FinalizeOnlyCallsSuperFinalize</name><ruleset>Finalizer Rules</ruleset></rule><rule><name>MissingSerialVersionUID</name><ruleset>JavaBean Rules</ruleset></rule><rule><name>SimplifyBooleanExpressions</name><ruleset>Design Rules</ruleset></rule><rule><name>DuplicateImports</name><ruleset>Import Statement Rules</ruleset></rule><rule><name>ConstructorCallsOverridableMethod</name><ruleset>Design Rules</ruleset></rule><rule><name>EmptyIfStmt</name><ruleset>Basic Rules</ruleset></rule><rule><name>AvoidInstanceofChecksInCatchClause</name><ruleset>Design Rules</ruleset></rule><rule><name>EmptySynchronizedBlock</name><ruleset>Basic Rules</ruleset></rule><rule><name>BeanMembersShouldSerialize</name><ruleset>JavaBean Rules</ruleset></rule><rule><name>UseAssertEqualsInsteadOfAssertTrue</name><ruleset>JUnit Rules</ruleset></rule><rule><name>EmptyWhileStmt</name><ruleset>Basic Rules</ruleset></rule><rule><name>SimplifyConditional</name><ruleset>Design Rules</ruleset></rule><rule><name>EqualsNull</name><ruleset>Design Rules</ruleset></rule><rule><name>UnnecessaryConversionTemporary</name><ruleset>Basic Rules</ruleset></rule><rule><name>MethodWithSameNameAsEnclosingClass</name><ruleset>Naming Rules</ruleset></rule><rule><name>AvoidProtectedFieldInFinalClass</name><ruleset>Design Rules</ruleset></rule><rule><name>JUnitStaticSuite</name><ruleset>JUnit Rules</ruleset></rule><rule><name>ExcessiveParameterList</name><ruleset>Code Size Rules</ruleset></rule><rule><name>UnusedPrivateField</name><ruleset>Unused Code Rules</ruleset></rule><rule><name>ForLoopsMustUseBraces</name><ruleset>Braces Rules</ruleset></rule><rule><name>LongVariable</name><ruleset>Naming Rules</ruleset></rule><rule><name>OptimizableToArrayCall</name><ruleset>Design Rules</ruleset></rule><rule><name>EmptyCatchBlock</name><ruleset>Basic Rules</ruleset></rule><rule><name>ArrayIsStoredDirectly</name><ruleset>Security Code Guidelines</ruleset></rule><rule><name>MethodArgumentCouldBeFinal</name><ruleset>Optimization Rules</ruleset></rule><rule><name>AvoidDollarSigns</name><ruleset>Naming Rules</ruleset></rule><rule><name>LooseCoupling</name><ruleset>Coupling Rules</ruleset></rule><rule><name>UnconditionalIfStatement</name><ruleset>Basic Rules</ruleset></rule><rule><name>NonStaticInitializer</name><ruleset>Design Rules</ruleset></rule><rule><name>AssignmentToNonFinalStatic</name><ruleset>Design Rules</ruleset></rule><rule><name>EmptyStatementNotInLoop</name><ruleset>Basic Rules</ruleset></rule><rule><name>ImmutableField</name><ruleset>Design Rules</ruleset></rule><rule><name>MethodNamingConventions</name><ruleset>Naming Rules</ruleset></rule><rule><name>AssignmentInOperand</name><ruleset>Controversial Rules</ruleset></rule><rule><name>DontImportSun</name><ruleset>Controversial Rules</ruleset></rule><rule><name>UseNotifyAllInsteadOfNotify</name><ruleset>Design Rules</ruleset></rule><rule><name>BooleanInstantiation</name><ruleset>Basic Rules</ruleset></rule><rule><name>SimpleDateFormatNeedsLocale</name><ruleset>Design Rules</ruleset></rule><rule><name>ProperLogger</name><ruleset>Jakarta Commons Logging Rules</ruleset></rule><rule><name>UnnecessaryCaseChange</name><ruleset>java.lang.String Rules</ruleset></rule><rule><name>EmptyFinallyBlock</name><ruleset>Basic Rules</ruleset></rule><rule><name>UnusedImports</name><ruleset>Import Statement Rules</ruleset></rule><rule><name>UnnecessaryBooleanAssertion</name><ruleset>JUnit Rules</ruleset></rule><rule><name>AvoidFieldNameMatchingMethodName</name><ruleset>Naming Rules</ruleset></rule><rule><name>ExceptionAsFlowControl</name><ruleset>Strict Exception Rules</ruleset></rule><rule><name>JUnitSpelling</name><ruleset>JUnit Rules</ruleset></rule><rule><name>UseLocaleWithCaseConversions</name><ruleset>Design Rules</ruleset></rule><rule><name>JUnitTestsShouldIncludeAssert</name><ruleset>JUnit Rules</ruleset></rule><rule><name>TestClassWithoutTestCases</name><ruleset>JUnit Rules</ruleset></rule><rule><name>MethodReturnsInternalArray</name><ruleset>Security Code Guidelines</ruleset></rule><rule><name>UseArrayListInsteadOfVector</name><ruleset>Optimization Rules</ruleset></rule><rule><name>AvoidReassigningParameters</name><ruleset>Design Rules</ruleset></rule><rule><name>AvoidDuplicateLiterals</name><ruleset>java.lang.String Rules</ruleset></rule><rule><name>SignatureDeclareThrowsException</name><ruleset>Strict Exception Rules</ruleset></rule><rule><name>ClassNamingConventions</name><ruleset>Naming Rules</ruleset></rule><rule><name>PositionLiteralsFirstInComparisons</name><ruleset>Design Rules</ruleset></rule><rule><name>SingularField</name><ruleset>Controversial Rules</ruleset></rule><rule><name>SuspiciousHashcodeMethodName</name><ruleset>Naming Rules</ruleset></rule><rule><name>UselessOverridingMethod</name><ruleset>Basic Rules</ruleset></rule><rule><name>AvoidConcatenatingNonLiteralsInStringBuffer</name><ruleset>java.lang.String Rules</ruleset></rule><rule><name>AvoidSynchronizedAtMethodLevel</name><ruleset>Design Rules</ruleset></rule><rule><name>UseCorrectExceptionLogging</name><ruleset>Jakarta Commons Logging Rules</ruleset></rule><rule><name>OverrideBothEqualsAndHashcode</name><ruleset>Basic Rules</ruleset></rule><rule><name>ProperCloneImplementation</name><ruleset>Clone Implementation Rules</ruleset></rule><rule><name>AtLeastOneConstructor</name><ruleset>Controversial Rules</ruleset></rule><rule><name>AbstractNaming</name><ruleset>Naming Rules</ruleset></rule><rule><name>CyclomaticComplexity</name><ruleset>Code Size Rules</ruleset></rule><rule><name>AvoidFieldNameMatchingTypeName</name><ruleset>Naming Rules</ruleset></rule><rule><name>MissingBreakInSwitch</name><ruleset>Design Rules</ruleset></rule><rule><name>MissingStaticMethodInNonInstantiatableClass</name><ruleset>Design Rules</ruleset></rule><rule><name>AvoidThrowingRawExceptionTypes</name><ruleset>Strict Exception Rules</ruleset></rule><rule><name>ExcessivePublicCount</name><ruleset>Code Size Rules</ruleset></rule><rule><name>AccessorClassGeneration</name><ruleset>Design Rules</ruleset></rule><rule><name>SuspiciousEqualsMethodName</name><ruleset>Naming Rules</ruleset></rule><rule><name>UseStringBufferForStringAppends</name><ruleset>Optimization Rules</ruleset></rule><rule><name>UnnecessaryFinalModifier</name><ruleset>Basic Rules</ruleset></rule><rule><name>EmptySwitchStatements</name><ruleset>Basic Rules</ruleset></rule><rule><name>AvoidCatchingThrowable</name><ruleset>Strict Exception Rules</ruleset></rule><rule><name>AvoidNonConstructorMethodsWithClassName</name><ruleset>Naming Rules</ruleset></rule></rules></pmd>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <projectDescription>
2 <name>findbugs</name>
3 <comment></comment>
4 <projects>
5 </projects>
6 <buildSpec>
7 <buildCommand>
8 <name>org.eclipse.jdt.core.javabuilder</name>
9 <arguments>
10 </arguments>
11 </buildCommand>
12 <buildCommand>
13 <name>org.eclipse.pde.ManifestBuilder</name>
14 <arguments>
15 </arguments>
16 </buildCommand>
17 <buildCommand>
18 <name>org.eclipse.pde.SchemaBuilder</name>
19 <arguments>
20 </arguments>
21 </buildCommand>
22 <buildCommand>
23 <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
24 <arguments>
25 </arguments>
26 </buildCommand>
27 </buildSpec>
28 <natures>
29 <nature>org.eclipse.jdt.core.javanature</nature>
30 <nature>org.eclipse.pde.PluginNature</nature>
31 <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
32 </natures>
33 </projectDescription>
0 #Sun Sep 19 07:41:57 CEST 2010
1 activeContentFilterList=*.makefile,makefile,*.Makefile,Makefile,Makefile.*,*.mk
2 addNewLine=true
3 convertActionOnSaave=AnyEdit.CnvrtTabToSpaces
4 eclipse.preferences.version=1
5 inActiveContentFilterList=
6 javaTabWidthForJava=true
7 org.eclipse.jdt.ui.editor.tab.width=4
8 projectPropsEnabled=true
9 removeTrailingSpaces=true
10 replaceAllSpaces=false
11 replaceAllTabs=false
12 saveAndAddLine=true
13 saveAndConvert=true
14 saveAndTrim=true
15 useModulo4Tabs=false
0 #FindBugs User Preferences
1 #Thu Aug 25 18:56:29 EDT 2011
2 cloud_id=edu.umd.cs.findbugs.cloud.appengine.findbugs-cloud
3 detectorAbnormalFinallyBlockReturn=AbnormalFinallyBlockReturn|true
4 detectorAbstractClassEmptyMethods=AbstractClassEmptyMethods|true
5 detectorAbstractOverriddenMethod=AbstractOverriddenMethod|true
6 detectorAppendingToAnObjectOutputStream=AppendingToAnObjectOutputStream|true
7 detectorArrayBasedCollections=ArrayBasedCollections|true
8 detectorArrayWrappedCallByReference=ArrayWrappedCallByReference|true
9 detectorAtomicityProblem=AtomicityProblem|true
10 detectorBCPMethodReturnCheck=BCPMethodReturnCheck|false
11 detectorBadAppletConstructor=BadAppletConstructor|false
12 detectorBadResultSetAccess=BadResultSetAccess|true
13 detectorBadSyntaxForRegularExpression=BadSyntaxForRegularExpression|true
14 detectorBadUseOfReturnValue=BadUseOfReturnValue|true
15 detectorBadlyOverriddenAdapter=BadlyOverriddenAdapter|true
16 detectorBogusExceptionDeclaration=BogusExceptionDeclaration|true
17 detectorBooleanReturnNull=BooleanReturnNull|true
18 detectorBuildInterproceduralCallGraph=BuildInterproceduralCallGraph|false
19 detectorBuildObligationPolicyDatabase=BuildObligationPolicyDatabase|true
20 detectorCallToUnsupportedMethod=CallToUnsupportedMethod|true
21 detectorCalledMethods=CalledMethods|true
22 detectorCheckCalls=CheckCalls|false
23 detectorCheckExpectedWarnings=CheckExpectedWarnings|false
24 detectorCheckImmutableAnnotation=CheckImmutableAnnotation|true
25 detectorCheckTypeQualifiers=CheckTypeQualifiers|true
26 detectorCloneIdiom=CloneIdiom|true
27 detectorComparatorIdiom=ComparatorIdiom|true
28 detectorConfusedInheritance=ConfusedInheritance|true
29 detectorConfusingAutoboxedOverloading=ConfusingAutoboxedOverloading|true
30 detectorConfusingFunctionSemantics=ConfusingFunctionSemantics|true
31 detectorConfusionBetweenInheritedAndOuterMethod=ConfusionBetweenInheritedAndOuterMethod|true
32 detectorConstantListIndex=ConstantListIndex|true
33 detectorCopiedOverriddenMethod=CopiedOverriddenMethod|true
34 detectorCrossSiteScripting=CrossSiteScripting|false
35 detectorCustomBuiltXML=CustomBuiltXML|true
36 detectorCyclomaticComplexity=CyclomaticComplexity|true
37 detectorDateComparison=DateComparison|true
38 detectorDeclaredRuntimeException=DeclaredRuntimeException|true
39 detectorDefaultEncodingDetector=DefaultEncodingDetector|true
40 detectorDeletingWhileIterating=DeletingWhileIterating|true
41 detectorDeprecatedTypesafeEnumPattern=DeprecatedTypesafeEnumPattern|true
42 detectorDoInsideDoPrivileged=DoInsideDoPrivileged|true
43 detectorDontCatchIllegalMonitorStateException=DontCatchIllegalMonitorStateException|true
44 detectorDontIgnoreResultOfPutIfAbsent=DontIgnoreResultOfPutIfAbsent|true
45 detectorDontUseEnum=DontUseEnum|true
46 detectorDroppedException=DroppedException|true
47 detectorDubiousListCollection=DubiousListCollection|true
48 detectorDubiousSetOfCollections=DubiousSetOfCollections|true
49 detectorDumbMethodInvocations=DumbMethodInvocations|true
50 detectorDumbMethods=DumbMethods|true
51 detectorDuplicateBranches=DuplicateBranches|true
52 detectorEmptyZipFileEntry=EmptyZipFileEntry|true
53 detectorEqStringTest=EqStringTest|false
54 detectorEqualsOperandShouldHaveClassCompatibleWithThis=EqualsOperandShouldHaveClassCompatibleWithThis|true
55 detectorExceptionSoftening=ExceptionSoftening|true
56 detectorExplicitSerialization=ExplicitSerialization|true
57 detectorFieldCouldBeLocal=FieldCouldBeLocal|true
58 detectorFieldItemSummary=FieldItemSummary|true
59 detectorFinalParameters=FinalParameters|true
60 detectorFinalizerNullsFields=FinalizerNullsFields|true
61 detectorFindBadCast=FindBadCast|false
62 detectorFindBadCast2=FindBadCast2|true
63 detectorFindBadEqualsImplementation=FindBadEqualsImplementation|false
64 detectorFindBadForLoop=FindBadForLoop|true
65 detectorFindBugsSummaryStats=FindBugsSummaryStats|true
66 detectorFindCircularDependencies=FindCircularDependencies|false
67 detectorFindDeadLocalStores=FindDeadLocalStores|true
68 detectorFindDoubleCheck=FindDoubleCheck|true
69 detectorFindEmptySynchronizedBlock=FindEmptySynchronizedBlock|true
70 detectorFindFieldSelfAssignment=FindFieldSelfAssignment|true
71 detectorFindFinalizeInvocations=FindFinalizeInvocations|true
72 detectorFindFloatEquality=FindFloatEquality|true
73 detectorFindFloatMath=FindFloatMath|false
74 detectorFindHEmismatch=FindHEmismatch|true
75 detectorFindInconsistentSync2=FindInconsistentSync2|true
76 detectorFindJSR166LockMonitorenter=FindJSR166LockMonitorenter|true
77 detectorFindLocalSelfAssignment2=FindLocalSelfAssignment2|true
78 detectorFindMaskedFields=FindMaskedFields|true
79 detectorFindMismatchedWaitOrNotify=FindMismatchedWaitOrNotify|true
80 detectorFindNakedNotify=FindNakedNotify|true
81 detectorFindNonSerializableStoreIntoSession=FindNonSerializableStoreIntoSession|true
82 detectorFindNonSerializableValuePassedToWriteObject=FindNonSerializableValuePassedToWriteObject|true
83 detectorFindNonShortCircuit=FindNonShortCircuit|true
84 detectorFindNullDeref=FindNullDeref|true
85 detectorFindNullDerefsInvolvingNonShortCircuitEvaluation=FindNullDerefsInvolvingNonShortCircuitEvaluation|true
86 detectorFindOpenStream=FindOpenStream|true
87 detectorFindPuzzlers=FindPuzzlers|true
88 detectorFindRefComparison=FindRefComparison|true
89 detectorFindReturnRef=FindReturnRef|false
90 detectorFindRunInvocations=FindRunInvocations|true
91 detectorFindSelfComparison=FindSelfComparison|true
92 detectorFindSelfComparison2=FindSelfComparison2|true
93 detectorFindSleepWithLockHeld=FindSleepWithLockHeld|true
94 detectorFindSpinLoop=FindSpinLoop|true
95 detectorFindSqlInjection=FindSqlInjection|false
96 detectorFindTwoLockWait=FindTwoLockWait|true
97 detectorFindUncalledPrivateMethods=FindUncalledPrivateMethods|true
98 detectorFindUnconditionalWait=FindUnconditionalWait|true
99 detectorFindUninitializedGet=FindUninitializedGet|true
100 detectorFindUnrelatedTypesInGenericContainer=FindUnrelatedTypesInGenericContainer|true
101 detectorFindUnreleasedLock=FindUnreleasedLock|true
102 detectorFindUnsatisfiedObligation=FindUnsatisfiedObligation|true
103 detectorFindUnsyncGet=FindUnsyncGet|true
104 detectorFindUseOfNonSerializableValue=FindUseOfNonSerializableValue|true
105 detectorFindUselessControlFlow=FindUselessControlFlow|true
106 detectorFloatingPointLoops=FloatingPointLoops|true
107 detectorFormatStringChecker=FormatStringChecker|false
108 detectorHugeSharedStringConstants=HugeSharedStringConstants|true
109 detectorIDivResultCastToDouble=IDivResultCastToDouble|true
110 detectorImproperPropertiesUse=ImproperPropertiesUse|true
111 detectorInappropriateToStringUse=InappropriateToStringUse|true
112 detectorIncompatMask=IncompatMask|true
113 detectorInconsistentAnnotations=InconsistentAnnotations|true
114 detectorInconsistentKeyNameCasing=InconsistentKeyNameCasing|true
115 detectorIncorrectInternalClassUse=IncorrectInternalClassUse|true
116 detectorInefficientMemberAccess=InefficientMemberAccess|false
117 detectorInefficientStringBuffering=InefficientStringBuffering|true
118 detectorInefficientToArray=InefficientToArray|true
119 detectorInfiniteLoop=InfiniteLoop|true
120 detectorInfiniteRecursiveLoop=InfiniteRecursiveLoop|true
121 detectorInfiniteRecursiveLoop2=InfiniteRecursiveLoop2|false
122 detectorInheritanceTypeChecking=InheritanceTypeChecking|true
123 detectorInheritanceUnsafeGetResource=InheritanceUnsafeGetResource|true
124 detectorInitializationChain=InitializationChain|true
125 detectorInstantiateStaticClass=InstantiateStaticClass|true
126 detectorIntCast2LongAsInstant=IntCast2LongAsInstant|true
127 detectorInvalidJUnitTest=InvalidJUnitTest|true
128 detectorIteratorIdioms=IteratorIdioms|true
129 detectorJDBCVendorReliance=JDBCVendorReliance|true
130 detectorJUnitAssertionOddities=JUnitAssertionOddities|true
131 detectorLazyInit=LazyInit|true
132 detectorListIndexedIterating=ListIndexedIterating|true
133 detectorLiteralStringComparison=LiteralStringComparison|true
134 detectorLoadOfKnownNullValue=LoadOfKnownNullValue|true
135 detectorLocalSynchronizedCollection=LocalSynchronizedCollection|true
136 detectorLockedFields=LockedFields|false
137 detectorLoggerOddities=LoggerOddities|true
138 detectorLostExceptionStackTrace=LostExceptionStackTrace|true
139 detectorLostLoggerDueToWeakReference=LostLoggerDueToWeakReference|true
140 detectorManualArrayCopy=ManualArrayCopy|true
141 detectorMethodReturnCheck=MethodReturnCheck|true
142 detectorMethodReturnsConstant=MethodReturnsConstant|true
143 detectorMethods=Methods|true
144 detectorMisleadingOverloadModel=MisleadingOverloadModel|true
145 detectorMoreDumbMethods=MoreDumbMethods|true
146 detectorMultithreadedInstanceAccess=MultithreadedInstanceAccess|true
147 detectorMutableLock=MutableLock|true
148 detectorMutableStaticFields=MutableStaticFields|true
149 detectorNaming=Naming|true
150 detectorNeedlessAutoboxing=NeedlessAutoboxing|true
151 detectorNeedlessCustomSerialization=NeedlessCustomSerialization|true
152 detectorNeedlessInstanceRetrieval=NeedlessInstanceRetrieval|true
153 detectorNeedlessMemberCollectionSynchronization=NeedlessMemberCollectionSynchronization|true
154 detectorNonCollectionMethodUse=NonCollectionMethodUse|true
155 detectorNonFunctionalField=NonFunctionalField|true
156 detectorNonOwnedSynchronization=NonOwnedSynchronization|true
157 detectorNonRecycleableTaglibs=NonRecycleableTaglibs|true
158 detectorNonSymmetricEquals=NonSymmetricEquals|true
159 detectorNoteAnnotationRetention=NoteAnnotationRetention|true
160 detectorNoteCheckReturnValue=NoteCheckReturnValue|true
161 detectorNoteCheckReturnValueAnnotations=NoteCheckReturnValueAnnotations|true
162 detectorNoteDirectlyRelevantTypeQualifiers=NoteDirectlyRelevantTypeQualifiers|true
163 detectorNoteJCIPAnnotation=NoteJCIPAnnotation|true
164 detectorNoteNonNullAnnotations=NoteNonNullAnnotations|true
165 detectorNoteNonnullReturnValues=NoteNonnullReturnValues|true
166 detectorNoteSuppressedWarnings=NoteSuppressedWarnings|true
167 detectorNoteUnconditionalParamDerefs=NoteUnconditionalParamDerefs|true
168 detectorNumberConstructor=NumberConstructor|true
169 detectorOrphanedDOMNode=OrphanedDOMNode|true
170 detectorOverlyConcreteParameter=OverlyConcreteParameter|true
171 detectorOverridingEqualsNotSymmetrical=OverridingEqualsNotSymmetrical|true
172 detectorOverzealousCasting=OverzealousCasting|true
173 detectorParallelLists=ParallelLists|true
174 detectorPartiallyConstructedObjectAccess=PartiallyConstructedObjectAccess|true
175 detectorPoorlyDefinedParameter=PoorlyDefinedParameter|true
176 detectorPossibleConstantAllocationInLoop=PossibleConstantAllocationInLoop|true
177 detectorPossibleIncompleteSerialization=PossibleIncompleteSerialization|true
178 detectorPossibleMemoryBloat=PossibleMemoryBloat|true
179 detectorPossibleUnsuspectedSerialization=PossibleUnsuspectedSerialization|true
180 detectorPossiblyRedundantMethodCalls=PossiblyRedundantMethodCalls|true
181 detectorPreferZeroLengthArrays=PreferZeroLengthArrays|true
182 detectorPublicSemaphores=PublicSemaphores|true
183 detectorQuestionableBooleanAssignment=QuestionableBooleanAssignment|true
184 detectorReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass=ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass|true
185 detectorReadReturnShouldBeChecked=ReadReturnShouldBeChecked|true
186 detectorRedundantInterfaces=RedundantInterfaces|true
187 detectorReflectionOnObjectMethods=ReflectionOnObjectMethods|true
188 detectorReflectiveClasses=ReflectiveClasses|true
189 detectorRepeatedConditionals=RepeatedConditionals|true
190 detectorResolveAllReferences=ResolveAllReferences|false
191 detectorRuntimeExceptionCapture=RuntimeExceptionCapture|true
192 detectorSQLInLoop=SQLInLoop|true
193 detectorSection508Compliance=Section508Compliance|true
194 detectorSerializableIdiom=SerializableIdiom|true
195 detectorSideEffectConstructor=SideEffectConstructor|true
196 detectorSillynessPotPourri=SillynessPotPourri|true
197 detectorSloppyClassReflection=SloppyClassReflection|true
198 detectorSluggishGui=SluggishGui|true
199 detectorSpoiledChildInterfaceImplementor=SpoiledChildInterfaceImplementor|true
200 detectorSpuriousThreadStates=SpuriousThreadStates|true
201 detectorStartInConstructor=StartInConstructor|true
202 detectorStaticArrayCreatedInMethod=StaticArrayCreatedInMethod|true
203 detectorStaticCalendarDetector=StaticCalendarDetector|true
204 detectorStaticMethodInstanceInvocation=StaticMethodInstanceInvocation|true
205 detectorStringConcatenation=StringConcatenation|true
206 detectorSuperfluousInstanceOf=SuperfluousInstanceOf|true
207 detectorSuspiciousCloneAlgorithm=SuspiciousCloneAlgorithm|true
208 detectorSuspiciousClusteredSessionSupport=SuspiciousClusteredSessionSupport|true
209 detectorSuspiciousComparatorReturnValues=SuspiciousComparatorReturnValues|true
210 detectorSuspiciousGetterSetterUse=SuspiciousGetterSetterUse|true
211 detectorSuspiciousJDKVersionUse=SuspiciousJDKVersionUse|false
212 detectorSuspiciousNullGuard=SuspiciousNullGuard|true
213 detectorSuspiciousThreadInterrupted=SuspiciousThreadInterrupted|true
214 detectorSuspiciousUninitializedArray=SuspiciousUninitializedArray|true
215 detectorSuspiciousWaitOnConcurrentObject=SuspiciousWaitOnConcurrentObject|true
216 detectorSwitchFallthrough=SwitchFallthrough|true
217 detectorSyncCollectionIterators=SyncCollectionIterators|true
218 detectorSynchronizationOnSharedBuiltinConstant=SynchronizationOnSharedBuiltinConstant|true
219 detectorSynchronizeAndNullCheckField=SynchronizeAndNullCheckField|true
220 detectorSynchronizeOnClassLiteralNotGetClass=SynchronizeOnClassLiteralNotGetClass|true
221 detectorSynchronizingOnContentsOfFieldToProtectField=SynchronizingOnContentsOfFieldToProtectField|true
222 detectorTailRecursion=TailRecursion|true
223 detectorTestASM=TestASM|false
224 detectorTestDataflowAnalysis=TestDataflowAnalysis|false
225 detectorTestingGround=TestingGround|false
226 detectorTrainFieldStoreTypes=TrainFieldStoreTypes|true
227 detectorTrainNonNullAnnotations=TrainNonNullAnnotations|true
228 detectorTrainUnconditionalDerefParams=TrainUnconditionalDerefParams|true
229 detectorTristateBooleanPattern=TristateBooleanPattern|true
230 detectorURLProblems=URLProblems|true
231 detectorUncallableMethodOfAnonymousClass=UncallableMethodOfAnonymousClass|true
232 detectorUnnecessaryMath=UnnecessaryMath|true
233 detectorUnnecessaryNewNullCheck=UnnecessaryNewNullCheck|true
234 detectorUnnecessaryStoreBeforeReturn=UnnecessaryStoreBeforeReturn|true
235 detectorUnreadFields=UnreadFields|true
236 detectorUnrelatedCollectionContents=UnrelatedCollectionContents|true
237 detectorUnrelatedReturnValues=UnrelatedReturnValues|true
238 detectorUseAddAll=UseAddAll|true
239 detectorUseCharacterParameterizedMethod=UseCharacterParameterizedMethod|true
240 detectorUseEnumCollections=UseEnumCollections|true
241 detectorUseObjectEquals=UseObjectEquals|true
242 detectorUseSplit=UseSplit|true
243 detectorUseToArray=UseToArray|true
244 detectorUseVarArgs=UseVarArgs|true
245 detectorUselessSubclassMethod=UselessSubclassMethod|true
246 detectorVarArgsProblems=VarArgsProblems|true
247 detectorVolatileUsage=VolatileUsage|true
248 detectorWaitInLoop=WaitInLoop|true
249 detectorWeakExceptionMessaging=WeakExceptionMessaging|true
250 detectorWriteOnlyCollection=WriteOnlyCollection|true
251 detectorWrongMapIterator=WrongMapIterator|true
252 detectorXMLFactoryBypass=XMLFactoryBypass|true
253 detector_threshold=2
254 effort=default
255 excludefilter0=findbugsExclude.xml|true
256 filter_settings=Medium|BAD_PRACTICE,CORRECTNESS,I18N,MT_CORRECTNESS,PERFORMANCE,SECURITY,STYLE|false|15
257 filter_settings_neg=MALICIOUS_CODE,NOISE,EXPERIMENTAL|
258 run_at_full_build=false
0 #Fri Jun 03 22:22:24 CEST 2011
1 eclipse.preferences.version=1
2 runAnalysisAsExtraJob=true
0 eclipse.preferences.version=1
1 instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
2 org.eclipse.jdt.core.builder.cleanOutputFolder=clean
3 org.eclipse.jdt.core.builder.duplicateResourceTask=warning
4 org.eclipse.jdt.core.builder.invalidClasspath=abort
5 org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
6 org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
7 org.eclipse.jdt.core.circularClasspath=error
8 org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
9 org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
10 org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
11 org.eclipse.jdt.core.codeComplete.argumentPrefixes=
12 org.eclipse.jdt.core.codeComplete.argumentSuffixes=
13 org.eclipse.jdt.core.codeComplete.fieldPrefixes=
14 org.eclipse.jdt.core.codeComplete.fieldSuffixes=
15 org.eclipse.jdt.core.codeComplete.localPrefixes=
16 org.eclipse.jdt.core.codeComplete.localSuffixes=
17 org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
18 org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
19 org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
20 org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
21 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
22 org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull
23 org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
24 org.eclipse.jdt.core.compiler.annotation.nonnullisdefault=disabled
25 org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable
26 org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
27 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
28 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
29 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
30 org.eclipse.jdt.core.compiler.compliance=1.5
31 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
32 org.eclipse.jdt.core.compiler.debug.localVariable=generate
33 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
34 org.eclipse.jdt.core.compiler.doc.comment.support=disabled
35 org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
36 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
37 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
38 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
39 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
40 org.eclipse.jdt.core.compiler.problem.deadCode=warning
41 org.eclipse.jdt.core.compiler.problem.deprecation=warning
42 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
43 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
44 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
45 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
46 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
47 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
48 org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
49 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
50 org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
51 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
52 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
53 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
54 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
55 org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
56 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
57 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
58 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
59 org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
60 org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
61 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
62 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
63 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
64 org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
65 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
66 org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
67 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
68 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
69 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
70 org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
71 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
72 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
73 org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
74 org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
75 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
76 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
77 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
78 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
79 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
80 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
81 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
82 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
83 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
84 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
85 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
86 org.eclipse.jdt.core.compiler.problem.nullReference=warning
87 org.eclipse.jdt.core.compiler.problem.nullSpecInsufficientInfo=warning
88 org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
89 org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=ignore
90 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
91 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
92 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
93 org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
94 org.eclipse.jdt.core.compiler.problem.potentialNullSpecViolation=error
95 org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
96 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
97 org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
98 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
99 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
100 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
101 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
102 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
103 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
104 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
105 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
106 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
107 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
108 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
109 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
110 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
111 org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
112 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
113 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
114 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
115 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
116 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
117 org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
118 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
119 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
120 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
121 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
122 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
123 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
124 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
125 org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
126 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
127 org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
128 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
129 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
130 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
131 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
132 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
133 org.eclipse.jdt.core.compiler.source=1.5
134 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
135 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,HIGH
136 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,MUSTFIX
137 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
138 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
139 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
140 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
141 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
142 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
143 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
144 org.eclipse.jdt.core.formatter.alignment_for_assignment=0
145 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
146 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
147 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
148 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
149 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
150 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
151 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
152 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
153 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
154 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
155 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
156 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
157 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
158 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
159 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
160 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
161 org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
162 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
163 org.eclipse.jdt.core.formatter.blank_lines_after_package=1
164 org.eclipse.jdt.core.formatter.blank_lines_before_field=1
165 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
166 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
167 org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
168 org.eclipse.jdt.core.formatter.blank_lines_before_method=1
169 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
170 org.eclipse.jdt.core.formatter.blank_lines_before_package=0
171 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
172 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
173 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
174 org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
175 org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
176 org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
177 org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
178 org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
179 org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
180 org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
181 org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
182 org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
183 org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
184 org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
185 org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
186 org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
187 org.eclipse.jdt.core.formatter.comment.format_block_comments=true
188 org.eclipse.jdt.core.formatter.comment.format_comments=true
189 org.eclipse.jdt.core.formatter.comment.format_header=false
190 org.eclipse.jdt.core.formatter.comment.format_html=true
191 org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
192 org.eclipse.jdt.core.formatter.comment.format_line_comments=true
193 org.eclipse.jdt.core.formatter.comment.format_source_code=true
194 org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
195 org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
196 org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
197 org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
198 org.eclipse.jdt.core.formatter.comment.line_length=80
199 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
200 org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
201 org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
202 org.eclipse.jdt.core.formatter.compact_else_if=true
203 org.eclipse.jdt.core.formatter.continuation_indentation=2
204 org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
205 org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
206 org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
207 org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
208 org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
209 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
210 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
211 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
212 org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
213 org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
214 org.eclipse.jdt.core.formatter.indent_empty_lines=false
215 org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
216 org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
217 org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
218 org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
219 org.eclipse.jdt.core.formatter.indentation.size=4
220 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
221 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
222 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
223 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
224 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
225 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
226 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
227 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
228 org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
229 org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
230 org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
231 org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
232 org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
233 org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
234 org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
235 org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
236 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
237 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
238 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
239 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
240 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
241 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
242 org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
243 org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
244 org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
245 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
246 org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
247 org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
248 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
249 org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
250 org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
251 org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
252 org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
253 org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
254 org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
255 org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
256 org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
257 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
258 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
259 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
260 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
261 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
262 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
263 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
264 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
265 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
266 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
267 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
268 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
269 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
270 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
271 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
272 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
273 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
274 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
275 org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
276 org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
277 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
278 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
279 org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
280 org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
281 org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
282 org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
283 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
284 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
285 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
286 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
287 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
288 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
289 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
290 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
291 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
292 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
293 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
294 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
295 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
296 org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
297 org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
298 org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
299 org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
300 org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
301 org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
302 org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
303 org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
304 org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
305 org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
306 org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
307 org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
308 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
309 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
310 org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
311 org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
312 org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
313 org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
314 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
315 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
316 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
317 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
318 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
319 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
320 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
321 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
322 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
323 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
324 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
325 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
326 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
327 org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
328 org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
329 org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
330 org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
331 org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
332 org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
333 org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
334 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
335 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
336 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
337 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
338 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
339 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
340 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
341 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
342 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
343 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
344 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
345 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
346 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
347 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
348 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
349 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
350 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
351 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
352 org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
353 org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
354 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
355 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
356 org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
357 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
358 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
359 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
360 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
361 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
362 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
363 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
364 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
365 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
366 org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
367 org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
368 org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
369 org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
370 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
371 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
372 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
373 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
374 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
375 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
376 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
377 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
378 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
379 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
380 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
381 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
382 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
383 org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
384 org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
385 org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
386 org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
387 org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
388 org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
389 org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
390 org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
391 org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
392 org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
393 org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
394 org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
395 org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
396 org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
397 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
398 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
399 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
400 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
401 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
402 org.eclipse.jdt.core.formatter.join_lines_in_comments=true
403 org.eclipse.jdt.core.formatter.join_wrapped_lines=true
404 org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
405 org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
406 org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
407 org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
408 org.eclipse.jdt.core.formatter.lineSplit=130
409 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
410 org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
411 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
412 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
413 org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
414 org.eclipse.jdt.core.formatter.tabulation.char=space
415 org.eclipse.jdt.core.formatter.tabulation.size=4
416 org.eclipse.jdt.core.formatter.use_on_off_tags=false
417 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
418 org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
419 org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
420 org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
421 org.eclipse.jdt.core.incompatibleJDKLevel=ignore
422 org.eclipse.jdt.core.incompleteClasspath=error
0 eclipse.preferences.version=1
1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
2 formatter_profile=_FindBugs
3 formatter_settings_version=12
4 org.eclipse.jdt.ui.exception.name=e
5 org.eclipse.jdt.ui.gettersetter.use.is=true
6 org.eclipse.jdt.ui.javadoc=true
7 org.eclipse.jdt.ui.keywordthis=false
8 org.eclipse.jdt.ui.overrideannotation=true
9 org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\n * FindBugs - Find Bugs in Java programs\n * Copyright (C) 2003-2008 University of Maryland\n * \n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2.1 of the License, or (at your option) any later version.\n * \n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n * \n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the Free Software\n * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n */\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
10 sp_cleanup.add_default_serial_version_id=true
11 sp_cleanup.add_generated_serial_version_id=false
12 sp_cleanup.add_missing_annotations=true
13 sp_cleanup.add_missing_deprecated_annotations=true
14 sp_cleanup.add_missing_methods=false
15 sp_cleanup.add_missing_nls_tags=false
16 sp_cleanup.add_missing_override_annotations=true
17 sp_cleanup.add_missing_override_annotations_interface_methods=false
18 sp_cleanup.add_serial_version_id=false
19 sp_cleanup.always_use_blocks=true
20 sp_cleanup.always_use_parentheses_in_expressions=false
21 sp_cleanup.always_use_this_for_non_static_field_access=false
22 sp_cleanup.always_use_this_for_non_static_method_access=false
23 sp_cleanup.convert_to_enhanced_for_loop=false
24 sp_cleanup.correct_indentation=false
25 sp_cleanup.format_source_code=false
26 sp_cleanup.format_source_code_changes_only=false
27 sp_cleanup.make_local_variable_final=false
28 sp_cleanup.make_parameters_final=false
29 sp_cleanup.make_private_fields_final=true
30 sp_cleanup.make_type_abstract_if_missing_method=false
31 sp_cleanup.make_variable_declarations_final=true
32 sp_cleanup.never_use_blocks=false
33 sp_cleanup.never_use_parentheses_in_expressions=true
34 sp_cleanup.on_save_use_additional_actions=true
35 sp_cleanup.organize_imports=true
36 sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
37 sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
38 sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
39 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
40 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
41 sp_cleanup.remove_private_constructors=true
42 sp_cleanup.remove_trailing_whitespaces=true
43 sp_cleanup.remove_trailing_whitespaces_all=true
44 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
45 sp_cleanup.remove_unnecessary_casts=true
46 sp_cleanup.remove_unnecessary_nls_tags=false
47 sp_cleanup.remove_unused_imports=true
48 sp_cleanup.remove_unused_local_variables=false
49 sp_cleanup.remove_unused_private_fields=true
50 sp_cleanup.remove_unused_private_members=false
51 sp_cleanup.remove_unused_private_methods=true
52 sp_cleanup.remove_unused_private_types=true
53 sp_cleanup.sort_members=false
54 sp_cleanup.sort_members_all=false
55 sp_cleanup.use_blocks=false
56 sp_cleanup.use_blocks_only_for_return_and_throw=false
57 sp_cleanup.use_parentheses_in_expressions=false
58 sp_cleanup.use_this_for_non_static_field_access=false
59 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
60 sp_cleanup.use_this_for_non_static_method_access=false
61 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
0 Manifest-Version: 1.0
1 Main-class: edu.umd.cs.findbugs.LaunchAppropriateUI
2 Bundle-ManifestVersion: 2
3 Bundle-Name: findbugs
4 Bundle-SymbolicName: findbugs
5 Bundle-Version: 1.0.0
6 Bundle-ClassPath: findbugs.jar,
7 lib/AppleJavaExtensions.jar,
8 lib/bcel.jar,
9 lib/dom4j-1.6.1.jar,
10 lib/junit.jar,
11 lib/asm-3.3.jar,
12 lib/asm-tree-3.3.jar,
13 lib/asm-commons-3.3.jar,
14 lib/jaxen-1.1.1.jar,
15 lib/jFormatString.jar,
16 lib/commons-lang-2.4.jar,
17 lib/jsr305.jar
18 Bundle-Localization: plugin
19 Export-Package: edu.umd.cs.findbugs,
20 edu.umd.cs.findbugs.annotations,
21 edu.umd.cs.findbugs.anttask,
22 edu.umd.cs.findbugs.architecture,
23 edu.umd.cs.findbugs.asm,
24 edu.umd.cs.findbugs.ba,
25 edu.umd.cs.findbugs.ba.bcp,
26 edu.umd.cs.findbugs.ba.ca,
27 edu.umd.cs.findbugs.ba.ch,
28 edu.umd.cs.findbugs.ba.constant,
29 edu.umd.cs.findbugs.ba.deref,
30 edu.umd.cs.findbugs.ba.generic,
31 edu.umd.cs.findbugs.ba.heap,
32 edu.umd.cs.findbugs.ba.interproc,
33 edu.umd.cs.findbugs.ba.jsr305,
34 edu.umd.cs.findbugs.ba.npe,
35 edu.umd.cs.findbugs.ba.obl,
36 edu.umd.cs.findbugs.ba.type,
37 edu.umd.cs.findbugs.ba.vna,
38 edu.umd.cs.findbugs.bcel,
39 edu.umd.cs.findbugs.bugReporter,
40 edu.umd.cs.findbugs.charsets,
41 edu.umd.cs.findbugs.classfile,
42 edu.umd.cs.findbugs.classfile.analysis,
43 edu.umd.cs.findbugs.classfile.engine,
44 edu.umd.cs.findbugs.classfile.engine.asm,
45 edu.umd.cs.findbugs.classfile.engine.bcel,
46 edu.umd.cs.findbugs.classfile.impl,
47 edu.umd.cs.findbugs.cloud,
48 edu.umd.cs.findbugs.cloud.username,
49 edu.umd.cs.findbugs.config,
50 edu.umd.cs.findbugs.detect,
51 edu.umd.cs.findbugs.filter,
52 edu.umd.cs.findbugs.formatStringChecker,
53 edu.umd.cs.findbugs.graph,
54 edu.umd.cs.findbugs.gui,
55 edu.umd.cs.findbugs.gui2,
56 edu.umd.cs.findbugs.internalAnnotations,
57 edu.umd.cs.findbugs.io,
58 edu.umd.cs.findbugs.jaif,
59 edu.umd.cs.findbugs.launchGUI,
60 edu.umd.cs.findbugs.log,
61 edu.umd.cs.findbugs.ml,
62 edu.umd.cs.findbugs.model,
63 edu.umd.cs.findbugs.plan,
64 edu.umd.cs.findbugs.plugins,
65 edu.umd.cs.findbugs.props,
66 edu.umd.cs.findbugs.sourceViewer,
67 edu.umd.cs.findbugs.tools,
68 edu.umd.cs.findbugs.tools.html,
69 edu.umd.cs.findbugs.tools.junit,
70 edu.umd.cs.findbugs.tools.xml,
71 edu.umd.cs.findbugs.util,
72 edu.umd.cs.findbugs.visitclass,
73 edu.umd.cs.findbugs.workflow,
74 edu.umd.cs.findbugs.xml,
75 javax.annotation,
76 javax.annotation.concurrent,
77 javax.annotation.meta,
78 org.apache.bcel,
79 org.apache.bcel.classfile,
80 org.apache.bcel.generic,
81 org.apache.bcel.util,
82 org.apache.bcel.verifier,
83 org.apache.bcel.verifier.exc,
84 org.apache.bcel.verifier.statics,
85 org.apache.bcel.verifier.structurals,
86 org.dom4j,
87 org.objectweb.asm,
88 org.objectweb.asm.commons,
89 org.objectweb.asm.signature,
90 org.objectweb.asm.tree
91 Require-Bundle: org.apache.ant
92 Bundle-RequiredExecutionEnvironment: J2SE-1.5
0 To get started, see doc/index.html and doc/manual/index.html
1
2 The FindBugs source license is in the file LICENSE.txt
3
4 Both the name FindBugs and the FindBugs bug mark are
5 trademarked by the University of Maryland.
6
7 The Apache BCEL license is in the file LICENSE-bcel.txt
8
9 The ASM license is in the file LICENSE-ASM.txt
10
11 The dom4j license is in the file LICENSE-dom4j.txt
12
13 The AppleJavaExtensions license is in the file LICENSE-AppleJavaExtensions.txt
14
15 The Docbook 4.2 XML DTD license is in the file LICENSE-docbook.txt
16
17 The JSR-305 reference implementation license is in LICENSE-jsr305.txt
18
19 The Jaxen license is in LICENSE-jaxen.txt
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project default="javadoc">
2 <target name="javadoc">
3 <javadoc access="public" author="true" classpath="lib/bcel.jar:lib/junit.jar:lib/dom4j-full.jar:lib/AppleJavaExtensions.jar" destdir="doc/annotationDoc" doctitle="FindBugs Annotation Documentation" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" packagenames="edu.umd.cs.findbugs.annotations" source="1.5" sourcepath="src/tools:src/java:src/junit" splitindex="true" use="true" version="true"/>
4 </target>
5 </project>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project default="javadoc">
2 <target name="javadoc">
3 <javadoc access="protected" author="true" classpath="lib/bcel.jar:lib/junit.jar:lib/dom4j-full.jar:lib/AppleJavaExtensions.jar" destdir="doc/apiDoc" doctitle="FindBugs API Documentation" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" packagenames="edu.umd.cs.findbugs.detect,edu.umd.cs.findbugs.visitclass,edu.umd.cs.findbugs.ba.vna,edu.umd.cs.findbugs.ba.bcp,edu.umd.cs.findbugs.graph,edu.umd.cs.findbugs.ba.ch,edu.umd.cs.findbugs.ba.obl,edu.umd.cs.findbugs.ba.constant,edu.umd.cs.findbugs.ba.ca,edu.umd.cs.findbugs.filter,edu.umd.cs.findbugs.ba.rta,edu.umd.cs.findbugs.gui,edu.umd.cs.findbugs.ba.ir,edu.umd.cs.findbugs.plan,edu.umd.cs.findbugs.xml,edu.umd.cs.findbugs.io,edu.umd.cs.findbugs.ba.heap,edu.umd.cs.findbugs.ba.type,edu.umd.cs.findbugs.model,edu.umd.cs.findbugs.annotations,edu.umd.cs.findbugs.ba.interproc,edu.umd.cs.findbugs.props" source="1.5" sourcefiles="src/java/edu/umd/cs/findbugs/ba/npe/UnconditionalDerefSet.java,src/java/edu/umd/cs/findbugs/SortedBugCollection.java,src/java/edu/umd/cs/findbugs/PluginLoader.java,src/java/edu/umd/cs/findbugs/SourceLineAnnotation.java,src/java/edu/umd/cs/findbugs/ba/LiveLocalStoreDataflow.java,src/java/edu/umd/cs/findbugs/ba/BetterCFGBuilder2.java,src/java/edu/umd/cs/findbugs/ba/InstanceMethod.java,src/java/edu/umd/cs/findbugs/ml/GenerateUIDs.java,src/java/edu/umd/cs/findbugs/ba/npe/RedundantBranch.java,src/java/edu/umd/cs/findbugs/ba/ZipSourceFileDataSource.java,src/java/edu/umd/cs/findbugs/workflow/Filter.java,src/java/edu/umd/cs/findbugs/XMLBugReporter.java,src/java/edu/umd/cs/findbugs/AnalysisError.java,src/java/edu/umd/cs/findbugs/BugAnnotationUtil.java,src/java/edu/umd/cs/findbugs/ba/type2/UnknownSupertypesException.java,src/java/edu/umd/cs/findbugs/ba/TargetEnumeratingVisitor.java,src/java/edu/umd/cs/findbugs/MineBugHistory.java,src/java/edu/umd/cs/findbugs/ba/AbstractClassMember.java,src/java/edu/umd/cs/findbugs/ResourceCreationPoint.java,src/java/edu/umd/cs/findbugs/InstructionScannerDriver.java,src/java/edu/umd/cs/findbugs/BugCollectionBugReporter.java,src/java/edu/umd/cs/findbugs/ba/InstanceField.java,src/java/edu/umd/cs/findbugs/ba/type2/ReturnAddressType.java,src/java/edu/umd/cs/findbugs/SelfCalls.java,src/java/edu/umd/cs/findbugs/ClassifyBugs.java,src/java/edu/umd/cs/findbugs/ba/Target.java,src/java/edu/umd/cs/findbugs/AppVersion.java,src/java/edu/umd/cs/findbugs/RandomSubset.java,src/java/edu/umd/cs/findbugs/DetectorFactory.java,src/java/edu/umd/cs/findbugs/ba/AbstractMethod.java,src/java/edu/umd/cs/findbugs/ba/ReturnPathAnalysis.java,src/java/edu/umd/cs/findbugs/ba/npe/NonNullParamProperty.java,src/java/edu/umd/cs/findbugs/BugCode.java,src/java/edu/umd/cs/findbugs/ba/type2/ReferenceType.java,src/java/edu/umd/cs/findbugs/ba/LockDataflow.java,src/java/edu/umd/cs/findbugs/BugCollection.java,src/java/edu/umd/cs/findbugs/config/CommandLine.java,src/java/edu/umd/cs/findbugs/SAXBugCollectionHandler.java,src/java/edu/umd/cs/findbugs/ba/type2/InheritanceGraphEdgeTypes.java,src/java/edu/umd/cs/findbugs/ba/BytecodeScanner.java,src/java/edu/umd/cs/findbugs/ba/AssignedFieldMap.java,src/java/edu/umd/cs/findbugs/ba/MissingClassException.java,src/java/edu/umd/cs/findbugs/ba/type2/DoubleExtraType.java,src/java/edu/umd/cs/findbugs/ba/type2/ClassResolver.java,src/java/edu/umd/cs/findbugs/ba/Edge.java,src/java/edu/umd/cs/findbugs/ba/type2/Type.java,src/java/edu/umd/cs/findbugs/ba/Hierarchy.java,src/java/edu/umd/cs/findbugs/ba/URLClassPath.java,src/java/edu/umd/cs/findbugs/ba/XMethod.java,src/java/edu/umd/cs/findbugs/CountClasses.java,src/java/edu/umd/cs/findbugs/ba/LockAnalysis.java,src/java/edu/umd/cs/findbugs/SuppressionMatcher.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullValueFrameModelingVisitor.java,src/java/edu/umd/cs/findbugs/ba/InnerClassAccessMap.java,src/java/edu/umd/cs/findbugs/ba/XField.java,src/java/edu/umd/cs/findbugs/ba/AnalysisFeatures.java,src/java/edu/umd/cs/findbugs/ba/XMethodFactory.java,src/java/edu/umd/cs/findbugs/FindBugsMessageFormat.java,src/java/edu/umd/cs/findbugs/ResourceTrackingDetector.java,src/java/edu/umd/cs/findbugs/ba/ReversePostfixOrder.java,src/java/edu/umd/cs/findbugs/ba/ResourceValueAnalysisTestDriver.java,src/java/edu/umd/cs/findbugs/PackageWarningSuppressor.java,src/java/edu/umd/cs/findbugs/InterproceduralFirstPassDetector.java,src/java/edu/umd/cs/findbugs/ba/CFG.java,src/java/edu/umd/cs/findbugs/ba/PruneInfeasibleExceptionEdges2.java,src/java/edu/umd/cs/findbugs/BugAnnotation.java,src/java/edu/umd/cs/findbugs/ba/ResourceValue.java,src/java/edu/umd/cs/findbugs/Detector.java,src/java/edu/umd/cs/findbugs/DetectorFactoryChooser.java,src/java/edu/umd/cs/findbugs/ba/JavaClassAndMethod.java,src/java/edu/umd/cs/findbugs/ba/type2/SpecialTypeSignatures.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullValueAnalysis.java,src/java/edu/umd/cs/findbugs/ba/BackwardDataflowAnalysis.java,src/java/edu/umd/cs/findbugs/PrintingBugReporter.java,src/java/edu/umd/cs/findbugs/ba/type2/NullType.java,src/java/edu/umd/cs/findbugs/ba/type2/TypeRepository.java,src/java/edu/umd/cs/findbugs/OpcodeStack.java,src/java/edu/umd/cs/findbugs/ba/type2/LongExtraType.java,src/java/edu/umd/cs/findbugs/workflow/DefectDensity.java,src/java/edu/umd/cs/findbugs/StringAnnotation.java,src/java/edu/umd/cs/findbugs/ba/SimplePathEnumerator.java,src/java/edu/umd/cs/findbugs/BugReporter.java,src/java/edu/umd/cs/findbugs/ba/DFSCFGPrinter.java,src/java/edu/umd/cs/findbugs/TextUIBugReporter.java,src/java/edu/umd/cs/findbugs/ba/ClassHash.java,src/java/edu/umd/cs/findbugs/config/UserPreferences.java,src/java/edu/umd/cs/findbugs/ba/DataflowTestDriver.java,src/java/edu/umd/cs/findbugs/ba/RepositoryClassParser.java,src/java/edu/umd/cs/findbugs/ba/ClassMember.java,src/java/edu/umd/cs/findbugs/ba/type2/BetterTypeFrame.java,src/java/edu/umd/cs/findbugs/ba/ClassNotFoundExceptionParser.java,src/java/edu/umd/cs/findbugs/ba/AssertionMethods.java,src/java/edu/umd/cs/findbugs/PluginException.java,src/java/edu/umd/cs/findbugs/XDocsBugReporter.java,src/java/edu/umd/cs/findbugs/BugReporterObserver.java,src/java/edu/umd/cs/findbugs/ba/type2/StandardTypeMerger.java,src/java/edu/umd/cs/findbugs/ba/LockSet.java,src/java/edu/umd/cs/findbugs/ba/BasicBlock.java,src/java/edu/umd/cs/findbugs/ba/MethodHash.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullValueAnalysisFeatures.java,src/java/edu/umd/cs/findbugs/FieldAnnotation.java,src/java/edu/umd/cs/findbugs/ba/type2/BetterTypeFrameModelingVisitor.java,src/java/edu/umd/cs/findbugs/ba/ClassContext.java,src/java/edu/umd/cs/findbugs/CategorizeBugs.java,src/java/edu/umd/cs/findbugs/BugProperty.java,src/java/edu/umd/cs/findbugs/VersionInsensitiveBugComparator.java,src/java/edu/umd/cs/findbugs/ProjectStats.java,src/java/edu/umd/cs/findbugs/Tokenizer.java,src/java/edu/umd/cs/findbugs/ba/SignatureParser.java,src/java/edu/umd/cs/findbugs/ba/ResourceValueAnalysis.java,src/java/edu/umd/cs/findbugs/CountBugs2.java,src/java/edu/umd/cs/findbugs/FindBugs.java,src/java/edu/umd/cs/findbugs/AbstractBugCollection.java,src/java/edu/umd/cs/findbugs/ba/npe/NonNullReturnValueAnnotationChecker.java,src/java/edu/umd/cs/findbugs/ba/MethodUnprofitableException.java,src/java/edu/umd/cs/findbugs/workflow/Update.java,src/java/edu/umd/cs/findbugs/Plugin.java,src/java/edu/umd/cs/findbugs/CountBugs.java,src/java/edu/umd/cs/findbugs/ba/SourceFinder.java,src/java/edu/umd/cs/findbugs/StatelessDetector.java,src/java/edu/umd/cs/findbugs/ba/StackDepthAnalysis.java,src/java/edu/umd/cs/findbugs/ba/npe/UnconditionalDerefAnalysis.java,src/java/edu/umd/cs/findbugs/ba/EdgeChooser.java,src/java/edu/umd/cs/findbugs/ClassAnnotation.java,src/java/edu/umd/cs/findbugs/ba/LineNumberMap.java,src/java/edu/umd/cs/findbugs/InstructionScanner.java,src/java/edu/umd/cs/findbugs/ba/PostDominatorsAnalysis.java,src/java/edu/umd/cs/findbugs/SortingBugReporter.java,src/java/edu/umd/cs/findbugs/FindBugsAnalysisFeatures.java,src/java/edu/umd/cs/findbugs/ba/StackDepth.java,src/java/edu/umd/cs/findbugs/BugInstance.java,src/java/edu/umd/cs/findbugs/ba/npe/UnconditionalDerefDataflow.java,src/java/edu/umd/cs/findbugs/ba/ClassObserver.java,src/java/edu/umd/cs/findbugs/CallGraph.java,src/java/edu/umd/cs/findbugs/TrainingDetector.java,src/java/edu/umd/cs/findbugs/AliasedWarnings.java,src/java/edu/umd/cs/findbugs/ba/ReverseDepthFirstSearch.java,src/java/edu/umd/cs/findbugs/AddMessages.java,src/java/edu/umd/cs/findbugs/ba/FrameDataflowAnalysis.java,src/java/edu/umd/cs/findbugs/DetectorFactoryCollection.java,src/java/edu/umd/cs/findbugs/ba/CFGBuilderException.java,src/java/edu/umd/cs/findbugs/PackageStats.java,src/java/edu/umd/cs/findbugs/WarningComparator.java,src/java/edu/umd/cs/findbugs/EmacsBugReporter.java,src/java/edu/umd/cs/findbugs/Lookup.java,src/java/edu/umd/cs/findbugs/ba/type2/BasicType.java,src/java/edu/umd/cs/findbugs/FindExamples.java,src/java/edu/umd/cs/findbugs/BugAnnotationVisitor.java,src/java/edu/umd/cs/findbugs/ba/AbstractDataflowAnalysis.java,src/java/edu/umd/cs/findbugs/GraphIS2FalsePositives.java,src/java/edu/umd/cs/findbugs/ba/EdgeTypes.java,src/java/edu/umd/cs/findbugs/ba/AbstractDataflow.java,src/java/edu/umd/cs/findbugs/config/ProjectFilterSettings.java,src/java/edu/umd/cs/findbugs/ba/type2/ArrayType.java,src/java/edu/umd/cs/findbugs/ba/LiveLocalStoreAnalysis.java,src/java/edu/umd/cs/findbugs/ba/type2/ObjectType.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullValueDataflow.java,src/java/edu/umd/cs/findbugs/ba/npe/NullDerefAndRedundantComparisonFinder.java,src/java/edu/umd/cs/findbugs/ba/RepositoryLookupFailureCallback.java,src/java/edu/umd/cs/findbugs/ba/Location.java,src/java/edu/umd/cs/findbugs/DelegatingBugReporter.java,src/java/edu/umd/cs/findbugs/ba/type2/BCELRepositoryClassResolver.java,src/java/edu/umd/cs/findbugs/ba/type2/InheritanceGraph.java,src/java/edu/umd/cs/findbugs/ba/InvalidBytecodeException.java,src/java/edu/umd/cs/findbugs/BugPattern.java,src/java/edu/umd/cs/findbugs/ba/DataflowValueChooser.java,src/java/edu/umd/cs/findbugs/ShowHelp.java,src/java/edu/umd/cs/findbugs/ba/SourceFile.java,src/java/edu/umd/cs/findbugs/Token.java,src/java/edu/umd/cs/findbugs/ba/type2/TypeMerger.java,src/java/edu/umd/cs/findbugs/ba/BlockTypeAnalysis.java,src/java/edu/umd/cs/findbugs/ba/CompoundMethodChooser.java,src/java/edu/umd/cs/findbugs/FuzzyBugComparator.java,src/java/edu/umd/cs/findbugs/ba/StaticField.java,src/java/edu/umd/cs/findbugs/ba/AnalysisContext.java,src/java/edu/umd/cs/findbugs/ba/DataflowAnalysisException.java,src/java/edu/umd/cs/findbugs/ba/CFGBuilder.java,src/java/edu/umd/cs/findbugs/ba/StaticMethod.java,src/java/edu/umd/cs/findbugs/ba/type2/BottomType.java,src/java/edu/umd/cs/findbugs/ba/ReturnPath.java,src/java/edu/umd/cs/findbugs/ba/DataflowCFGPrinter.java,src/java/edu/umd/cs/findbugs/ba/JavaClassAndMethodChooser.java,src/java/edu/umd/cs/findbugs/ExitCodes.java,src/java/edu/umd/cs/findbugs/ByteCodePatternDetector.java,src/java/edu/umd/cs/findbugs/ba/ResourceValueFrame.java,src/java/edu/umd/cs/findbugs/FindBugsProgress.java,src/java/edu/umd/cs/findbugs/ba/Dataflow.java,src/java/edu/umd/cs/findbugs/ba/Frame.java,src/java/edu/umd/cs/findbugs/AbstractBugReporter.java,src/java/edu/umd/cs/findbugs/ba/ReverseDFSOrder.java,src/java/edu/umd/cs/findbugs/ba/DFSEdgeTypes.java,src/java/edu/umd/cs/findbugs/ba/type2/InheritanceGraphEdge.java,src/java/edu/umd/cs/findbugs/SloppyBugComparator.java,src/java/edu/umd/cs/findbugs/JavaVersionException.java,src/java/edu/umd/cs/findbugs/ba/ResourceTracker.java,src/java/edu/umd/cs/findbugs/FieldWarningSuppressor.java,src/java/edu/umd/cs/findbugs/InstructionScannerGenerator.java,src/java/edu/umd/cs/findbugs/RecursiveFileSearch.java,src/java/edu/umd/cs/findbugs/HTMLBugReporter.java,src/java/edu/umd/cs/findbugs/XMLWriteableWithMessages.java,src/java/edu/umd/cs/findbugs/QueryBugAnnotations.java,src/java/edu/umd/cs/findbugs/ba/npe/NonNullParamPropertyDatabase.java,src/java/edu/umd/cs/findbugs/ba/MethodChooser.java,src/java/edu/umd/cs/findbugs/ba/Debug.java,src/java/edu/umd/cs/findbugs/IntAnnotation.java,src/java/edu/umd/cs/findbugs/FilterBugReporter.java,src/java/edu/umd/cs/findbugs/FatalException.java,src/java/edu/umd/cs/findbugs/CallGraphNode.java,src/java/edu/umd/cs/findbugs/ba/AbstractDominatorsAnalysis.java,src/java/edu/umd/cs/findbugs/CountBugsFast.java,src/java/edu/umd/cs/findbugs/BugHistory.java,src/java/edu/umd/cs/findbugs/ba/SourceFileDataSource.java,src/java/edu/umd/cs/findbugs/ba/FileSourceFileDataSource.java,src/java/edu/umd/cs/findbugs/AddAnnotation.java,src/java/edu/umd/cs/findbugs/ba/InnerClassAccess.java,src/java/edu/umd/cs/findbugs/ba/AbstractBlockOrder.java,src/java/edu/umd/cs/findbugs/MethodWarningSuppressor.java,src/java/edu/umd/cs/findbugs/ba/DominatorsAnalysis.java,src/java/edu/umd/cs/findbugs/I18N.java,src/java/edu/umd/cs/findbugs/ba/type2/TypeVisitor.java,src/java/edu/umd/cs/findbugs/ba/type2/UnknownTypeException.java,src/java/edu/umd/cs/findbugs/ba/ExceptionHandlerMap.java,src/java/edu/umd/cs/findbugs/ml/SplitCamelCaseIdentifier.java,src/java/edu/umd/cs/findbugs/Version.java,src/java/edu/umd/cs/findbugs/ba/PruneUnconditionalExceptionThrowerEdges.java,src/java/edu/umd/cs/findbugs/JavaVersion.java,src/java/edu/umd/cs/findbugs/ba/AnalysisException.java,src/java/edu/umd/cs/findbugs/ba/SignatureConverter.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullValue.java,src/java/edu/umd/cs/findbugs/config/AnalysisFeatureSetting.java,src/java/edu/umd/cs/findbugs/ba/AbstractFrameModelingVisitor.java,src/java/edu/umd/cs/findbugs/CallSite.java,src/java/edu/umd/cs/findbugs/ba/npe/NonNullParamViolation.java,src/java/edu/umd/cs/findbugs/ba/npe/MayReturnNullPropertyDatabase.java,src/java/edu/umd/cs/findbugs/InvalidSequenceIntervalException.java,src/java/edu/umd/cs/findbugs/ba/type2/SubtypeQueryResult.java,src/java/edu/umd/cs/findbugs/ba/type2/TopType.java,src/java/edu/umd/cs/findbugs/ba/DebugRepositoryLookupFailureCallback.java,src/java/edu/umd/cs/findbugs/PrintAppVersion.java,src/java/edu/umd/cs/findbugs/AnalysisLocal.java,src/java/edu/umd/cs/findbugs/ba/ResourceValueFrameModelingVisitor.java,src/java/edu/umd/cs/findbugs/ba/type2/InvalidSignatureException.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullConditionDecision.java,src/java/edu/umd/cs/findbugs/ba/npe/IsNullValueFrame.java,src/java/edu/umd/cs/findbugs/SwitchHandler.java,src/java/edu/umd/cs/findbugs/ba/type2/BetterTypeAnalysis.java,src/java/edu/umd/cs/findbugs/ba/BlockOrder.java,src/java/edu/umd/cs/findbugs/MergeResults.java,src/java/edu/umd/cs/findbugs/CallGraphEdge.java,src/java/edu/umd/cs/findbugs/ResourceCollection.java,src/java/edu/umd/cs/findbugs/ba/npe/NonNullContractCollector.java,src/java/edu/umd/cs/findbugs/ba/npe/NonNullSpecification.java,src/java/edu/umd/cs/findbugs/ClassWarningSuppressor.java,src/java/edu/umd/cs/findbugs/ba/ForwardDataflowAnalysis.java,src/java/edu/umd/cs/findbugs/FindBugsCommandLine.java,src/java/edu/umd/cs/findbugs/ba/CFGBuilderFactory.java,src/java/edu/umd/cs/findbugs/Project.java,src/java/edu/umd/cs/findbugs/ba/AbstractField.java,src/java/edu/umd/cs/findbugs/ba/npe/NullDerefAndRedundantComparisonCollector.java,src/java/edu/umd/cs/findbugs/ba/BlockType.java,src/java/edu/umd/cs/findbugs/UnionResults.java,src/java/edu/umd/cs/findbugs/ba/PruneInfeasibleExceptionEdges.java,src/java/edu/umd/cs/findbugs/NewResults.java,src/java/edu/umd/cs/findbugs/PackageMemberAnnotation.java,src/java/edu/umd/cs/findbugs/ba/DataflowAnalysis.java,src/java/edu/umd/cs/findbugs/ml/ConvertToARFF.java,src/java/edu/umd/cs/findbugs/BytecodeScanningDetector.java,src/java/edu/umd/cs/findbugs/ba/DepthFirstSearch.java,src/java/edu/umd/cs/findbugs/ClassScreener.java,src/java/edu/umd/cs/findbugs/NonReportingDetector.java,src/java/edu/umd/cs/findbugs/WarningSuppressor.java,src/java/edu/umd/cs/findbugs/ba/CFGPrinter.java,src/java/edu/umd/cs/findbugs/MethodAnnotation.java,src/java/edu/umd/cs/findbugs/ba/type2/ClassType.java,src/java/edu/umd/cs/findbugs/ba/ReturnPathDataflow.java,src/java/edu/umd/cs/findbugs/ba/LockChecker.java,src/java/edu/umd/cs/findbugs/ba/URLClassPathRepository.java" sourcepath="src/tools:src/java:src/junit" splitindex="true" use="true" version="true"/>
4 </target>
5 </project>
0 This is a folder for jars required for BUILDING, not dependencies of FindBugs itself!
0 # User Configuration:
1 # This section must be modified to reflect your system.
2
3 source.findbugs.jar = src/java/,\
4 src/antTask/,\
5 src/tools/,\
6 src/junit/,\
7 src/gui/,\
8 etc
9 local.software.home =/fs/pugh/pugh
10 #local.software.home =/user/daveho/local
11
12 # Set this to the directory containing the DocBook Modular XSL Stylesheets
13 # from http://docbook.sourceforge.net/projects/xsl/
14
15 xsl.stylesheet.home =${local.software.home}/docbook-xsl-1.76.1
16
17 # Set this to the directory containing the svnant Ant jars. These are
18 # needed for the srcdist target and to get the svn revision number
19 # for the revision number of dev builds.
20 # http://subclipse.tigris.org/files/documents/906/43359/svnant-1.2.1.zip
21
22 # svnant.home =${local.software.home}/svnant-1.2.1
23
24 # Set this to the directory where Saxon (http://saxon.sourceforge.net/)
25 # is installed.
26
27 saxon.home =${local.software.home}/saxon-6.5.5
28
29 # Set this to the directory where FOP (http://xml.apache.org/fop/)
30 # is installed. (Note: this is disabled for now.)
31
32 fop.home =${local.software.home}/java/fop-0.20.5rc2
33
34 # Set this to the directory where Eclipse (http://www.eclipse.org/)
35 # is installed. This only required if you want to build the FindBugs
36 # Eclipse plugin.
37 eclipse.home =${local.software.home}/java/eclipse-2.1.3
38
39 java14.rt =/export/home/pugh/work/j2sdk1.4.0/jre/lib/rt.jar
40
41 dblatex.img.fix=while(<>){s,([A-Za-z-]*\.png\}),manual/\1,g;print;}
42
43 #/export/home/pugh/JSR305-ri/build/classes
44
45 pluginsSrc.dir=../plugins/
46 serverSrc.dir=../server/
47 findbugsTestCases.dir=../findbugsTestCases
0 <!--
1 FindBugs Ant build script.
2 Based on original FindBugs Ant Script by Mike Fagan.
3 Rewritten 1/5/2005 by David Hovemeyer.
4 -->
5
6 <project name="findbugs" default="build">
7
8 <!--
9 The local.properties properties file contains the location of eclipsePlugin.dir
10
11 This value is likely to be different for each checkout of the plugin,
12 so the local.properties file is not managed by cvs
13
14 -->
15 <property file="local.properties" />
16
17 <property file="build.properties" />
18
19 <property name="jar.dir" value="lib"/>
20 <property name="plugin.dir" value="plugin"/>
21 <property name="build.dir" value="build"/>
22 <property name="junit.dir" value="build/junit"/>
23 <property name="classes.dir" value="build/classes"/>
24 <property name="eclipseClasses.dir" value="classesEclipse"/>
25 <property name="junitclasses.dir" value="build/junitclasses"/>
26 <property name="scripts.dir" value="bin"/>
27 <property name="src.dir" value="src/java"/>
28 <property name="src5.dir" value="src/gui"/>
29 <property name="toolsrc.dir" value="src/tools"/>
30 <property name="anttasksrc.dir" value="src/antTask"/>
31 <property name="scriptsrc.dir" value="src/scripts"/>
32 <property name="patch.dir" value="src/patches"/>
33 <property name="xslsrc.dir" value="src/xsl"/>
34 <property name="junitsrc.dir" value="src/junit"/>
35 <property name="docsrc.dir" value="src/doc"/>
36 <property name="samplesrc.dir" value="src/sampleXml"/>
37 <property name="etc.dir" value="etc"/>
38 <property name="test.dir" value="test"/>
39 <property name="doc.dir" value="doc"/>
40 <property name="web.dir" value="web"/>
41 <property name="apiDoc.dir" value="apiJavaDoc"/>
42 <property name="annotationDoc.dir" value="annotationJavaDoc"/>
43 <property name="jnlp.dir" value="jnlp"/>
44 <property name="jsr305.dir" value="../JSR305-ri"/>
45 <property name="pkg.base" value="edu/umd/cs/findbugs"/>
46 <property name="engine.jar" value="${jar.dir}/findbugs.jar"/>
47 <property name="oneFourCompatibility.jar" value="${build.dir}/oneFourCompatibility.jar"/>
48 <property name="annotations.jar" value="${jar.dir}/annotations.jar"/>
49 <property name="test.jar" value="${test.dir}/dumb.jar"/>
50 <property name="sampleoutput.dir" value="build/sampleoutput"/>
51 <property name="junittests.jar" value="build/junittests.jar"/>
52 <property name="anttask.jar" value="${jar.dir}/findbugs-ant.jar"/>
53 <property name="scripts.props" value="etc/script.properties"/>
54 <property name="scripts.stamp" value="${build.dir}/scripts.stamp"/>
55 <property name="allClassFiles.jar" value="${build.dir}/allClassFiles.jar"/>
56 <property name="doc.props.file" value="${etc.dir}/doc.properties"/>
57 <property name="svnrnum" value="Unknown"/>
58 <property name="version.props.file" value="${build.dir}/classes/edu/umd/cs/findbugs/version.properties"/>
59
60 <path id="findbugs.classpath">
61 <pathelement location="${jar.dir}/bcel.jar"/>
62 <pathelement location="${jar.dir}/dom4j-1.6.1.jar"/>
63 <pathelement location="${jar.dir}/AppleJavaExtensions.jar"/>
64 <pathelement location="${jar.dir}/junit.jar"/>
65 <pathelement location="${jar.dir}/asm-3.3.jar"/>
66 <pathelement location="${jar.dir}/asm-commons-3.3.jar"/>
67 <pathelement location="${jar.dir}/asm-tree-3.3.jar"/>
68 <pathelement location="${jar.dir}/jaxen-1.1.1.jar"/>
69 <pathelement location="${jar.dir}/jsr305.jar"/>
70 <pathelement location="${jar.dir}/jFormatString.jar"/>
71 <pathelement location="${jar.dir}/commons-lang-2.4.jar"/>
72 <pathelement location="${jar.dir}/jcip-annotations.jar"/>
73 </path>
74
75 <path id="tools.classpath">
76 <pathelement location="${classes.dir}"/>
77 <pathelement location="${jar.dir}/findbugs.jar"/>
78 <pathelement location="${jar.dir}/jdepend-2.9.jar"/>
79 <path refid="findbugs.classpath"/>
80 </path>
81
82 <path id="svn.classpath">
83 <pathelement location="${svnant.home}/lib/svnant.jar"/>
84 <pathelement location="${svnant.home}/lib/svnClientAdapter.jar"/>
85 <pathelement location="${svnant.home}/lib/svnkit.jar"/>
86 <pathelement location="${svnant.home}/lib/ganymed.jar"/>
87 <pathelement location="${svnant.home}/lib/svnjavahl.jar"/>
88 <pathelement location="${svnant.home}/lib/jna.jar"/>
89 </path>
90
91
92 <patternset id="codebase.data.pats">
93 <include name="**/*.properties"/>
94 <include name="**/*.png"/>
95 <include name="**/*.html"/>
96 <include name="**/*.db"/>
97 </patternset>
98
99 <patternset id="doc.src.pats">
100 <include name="**/*.html"/>
101 <include name="**/*.txt"/>
102 <include name="**/*.xml"/>
103 <include name="**/*.xsl"/>
104 </patternset>
105
106 <patternset id="doc.img.pats">
107 <include name="**/*.png"/>
108 <include name="**/*.css"/>
109 <include name="**/*.txt"/>
110 <include name="**/*.pdf"/>
111 </patternset>
112
113 <fileset id="plugin.jars" dir="${plugin.dir}" includes="*.jar"/>
114 <property name="prop.plugin.jars" refid="plugin.jars"/>
115
116
117 <!-- Default target builds scripts and jars, allowing execution using
118 the working directory as FINDBUGS_HOME. Also build test case jarfile. -->
119 <target name="build" depends="jars,scripts,anttask"/>
120
121 <!-- Rebuild from scratch. -->
122 <target name="rebuild" depends="clean,build"/>
123
124 <target name="mondo" depends="jars">
125 <jar destfile="build/mondo.jar"
126 manifest="etc/MANIFEST-findbugs-mondo.MF">
127 <zipfileset src="${jar.dir}/bcel.jar"/>
128 <zipfileset src="${jar.dir}/dom4j-1.6.1.jar"/>
129 <zipfileset src="${jar.dir}/AppleJavaExtensions.jar"/>
130 <zipfileset src="${jar.dir}/junit.jar"/>
131 <zipfileset src="${jar.dir}/asm-3.3.jar"/>
132 <zipfileset src="${jar.dir}/asm-commons-3.3.jar"/>
133 <zipfileset src="${jar.dir}/asm-tree-3.3.jar"/>
134 <zipfileset src="${jar.dir}/jaxen-1.1.1.jar"/>
135 <zipfileset src="${jar.dir}/jsr305.jar"/>
136 <zipfileset src="${jar.dir}/jFormatString.jar"/>
137 <zipfileset src="${jar.dir}/commons-lang-2.4.jar"/>
138 <zipfileset src="${jar.dir}/findbugs.jar"/>
139 </jar>
140 </target>
141
142 <!-- Compile Java source files, and copy other files (properties,
143 images, html, XSL stylesheets) that need to be part of the codebase. -->
144 <target name="classes" depends="init">
145
146 <!-- Compile Java source files. -->
147 <echo level="info" message="compiling findbugs"/>
148 <javac
149 destdir="${classes.dir}"
150 source="1.5"
151 target="1.5"
152 includeantruntime="false"
153 encoding="ISO-8859-1"
154 deprecation="off"
155 debug="on">
156 <compilerarg value="-Xlint:unchecked"/>
157 <src path="${src.dir}"/>
158 <src path="${src5.dir}"/>
159 <classpath refid="findbugs.classpath"/>
160 </javac>
161 <native2ascii encoding="Cp1252"
162 dest = "${classes.dir}"
163 src= "${src.dir}"
164 includes = "${pkg.base}/**/*_de.properties"
165 />
166 <!-- Copy codebase data files. -->
167 <echo level="info" message="copying data files"/>
168 <copy todir="${classes.dir}">
169 <fileset dir="${src.dir}">
170 <patternset refid="codebase.data.pats"/>
171 </fileset>
172 <fileset dir="${src5.dir}">
173 <patternset refid="codebase.data.pats"/>
174 </fileset>
175 <fileset dir="${xslsrc.dir}">
176 <include name="*.xsl"/>
177 </fileset>
178 </copy>
179 <!-- Compile JUnit test cases. -->
180 <echo level="info" message="compiling junit test cases"/>
181 <javac srcdir="${junitsrc.dir}"
182 destdir="${junitclasses.dir}"
183 source="1.5"
184 target="1.5"
185 includeantruntime="false"
186 encoding="ISO-8859-1"
187 deprecation="off"
188 debug="on">
189 <classpath refid="tools.classpath"/>
190 </javac>
191 <!-- Compile tools. -->
192 <echo level="info" message="compiling tools"/>
193 <javac srcdir="${toolsrc.dir}"
194 destdir="${classes.dir}"
195 source="1.5"
196 target="1.5"
197 includeantruntime="false"
198 encoding="ISO-8859-1"
199 debug="on"
200 deprecation="off"
201 excludes="${pkg.base}/tools/patcomp/">
202 <compilerarg value="-Xlint:unchecked"/>
203 <classpath refid="tools.classpath"/>
204 </javac>
205 <!-- Compile Ant task. -->
206 <echo level="info" message="compiling ant task"/>
207 <javac srcdir="${anttasksrc.dir}"
208 destdir="${classes.dir}"
209 source="1.5"
210 target="1.5"
211 includeantruntime="false"
212 encoding="ISO-8859-1"
213 deprecation="off"
214 debug="on">
215 <classpath>
216 <path refid="tools.classpath"/>
217 <pathelement location="${ant.core.lib}"/>
218 </classpath>
219 </javac>
220 </target>
221
222 <!-- Validate findbugs.xml and messagesXXX.xml files. -->
223 <target name="validate">
224 <xmlvalidate lenient="false" failonerror="yes">
225 <attribute name="http://apache.org/xml/features/validation/schema" value="true"/>
226 <attribute name="http://xml.org/sax/features/namespaces" value="true"/>
227 <fileset dir="${etc.dir}" includes="*.xml" excludes="checkstyle.xml"/>
228 </xmlvalidate>
229 </target>
230
231 <target name="validatesamplexmloutput" depends="runanttask">
232 <copy todir="${sampleoutput.dir}" overwrite="true">
233 <fileset dir="${samplesrc.dir}">
234 <include name="*.xml"/>
235 </fileset>
236 </copy>
237 <schemavalidate failonerror="yes" noNamespaceFile="${etc.dir}/bugcollection.xsd">
238 <attribute name="http://xml.org/sax/features/namespaces" value="true"/>
239 <fileset dir="${sampleoutput.dir}" includes="*.xml"/>
240 </schemavalidate>
241 </target>
242
243 <target name="validatesamplehtmloutput" depends="applystylesheets">
244 <xmlvalidate failonerror="no">
245 <attribute name="http://apache.org/xml/features/validation/schema" value="true"/>
246 <attribute name="http://xml.org/sax/features/namespaces" value="true"/>
247 <fileset dir="${sampleoutput.dir}" includes="plain.html"/>
248 </xmlvalidate>
249 </target>
250
251 <target name="validatesampleoutput" depends="validatesamplexmloutput"/>
252
253 <!-- Build jar files. -->
254 <target name="allClassFilesJar" depends="classes,validate,version">
255 <jar destfile="${allClassFiles.jar}">
256 <fileset dir="${classes.dir}">
257 <include name="**/*.class"/>
258 <include name="**/*.properties"/>
259 <include name="**/*.db"/>
260 <include name="**/*.xsl"/>
261 </fileset>
262 </jar>
263 </target>
264
265 <target name="jars" depends="classes,version">
266 <copy todir="${eclipseClasses.dir}" overwrite="true">
267 <fileset dir="${etc.dir}">
268 <include name="*.xsd"/>
269 <include name="bugrank.txt"/>
270 <include name="findbugs.xml"/>
271 <include name="messages*.xml"/>
272 <include name="*.properties"/>
273 </fileset>
274 </copy>
275
276
277 <!-- Main engine and command line jar file. -->
278 <jar destfile="${engine.jar}"
279 manifest="etc/MANIFEST-findbugs.MF">
280 <!-- Compiled classes, properties files. -->
281 <fileset dir="${classes.dir}">
282 <exclude name="${pkg.base}/tools/**"/>
283 <exclude name="${pkg.base}/tools/**"/>
284 <exclude name="${pkg.base}/antTask/**"/>
285 <!-- Exclude JUnit tests. -->
286 <!--
287 <exclude name="**/*Test.class"/>
288 -->
289 <include name="**/*.class"/>
290 <include name="**/*.properties"/>
291 <include name="**/*.db"/>
292 <include name="**/*.xsl"/>
293 <include name="**/*.png"/>
294 <include name="**/*.html"/>
295
296 </fileset>
297 <fileset dir="${etc.dir}">
298 <include name="*.xsd"/>
299 <include name="bugrank.txt"/>
300 <include name="findbugs.xml"/>
301 <include name="messages*.xml"/>
302 </fileset>
303 </jar>
304
305 <!-- Annotations jar file. -->
306 <jar destfile="${annotations.jar}"
307 manifest="${etc.dir}/MANIFEST-findbugs-annotations.MF"
308 >
309 <fileset dir="${classes.dir}">
310 <include name="**/annotations/*.class"/>
311 </fileset>
312 <fileset dir="${src.dir}">
313 <include name="**/annotations/*.java"/>
314 </fileset>
315 <zipfileset src="${jar.dir}/jcip-annotations.jar" excludes="META-INF/**,**/*.html"/>
316 <zipfileset src="${jar.dir}/jsr305.jar" excludes="META-INF/**,**/*.html"/>
317 </jar>
318 </target>
319
320 <!--
321 Create one giant executable Jar file containing
322 Findbugs, textui and gui, detectors, and all required
323 libraries.
324 -->
325 <target name="fulljar" depends="classes,validate,version">
326 <property name="fullJarName" value="findbugs-full-${release.number}.jar"/>
327 <jar destfile="${jar.dir}/${fullJarName}" manifest="etc/MANIFEST-findbugs-full.MF">
328 <fileset dir="${classes.dir}">
329 <exclude name="${pkg.base}/tools/**"/>
330 <exclude name="${pkg.base}/antTask/**"/>
331 <include name="**/*.class"/>
332 <include name="**/*.properties"/>
333 <include name="**/*.db"/>
334 <include name="**/*.xsl"/>
335 <include name="${pkg.base}/sourceViewer/**/*.class"/>
336 <include name="${pkg.base}/gui/**/*.png"/>
337 <include name="${pkg.base}/gui/**/*.html"/>
338 <include name="${pkg.base}/gui2/**/*.png"/>
339 <include name="${pkg.base}/gui2/**/*.html"/>
340 </fileset>
341 <fileset dir="${etc.dir}">
342 <include name="bugrank.txt"/>
343 <include name="findbugs.xml"/>
344 <include name="bugrank.txt"/>
345 <include name="messages*.xml"/>
346 </fileset>
347
348 <zipfileset src="${jar.dir}/bcel.jar" excludes="META-INF/**"/>
349
350 <zipfileset src="${jar.dir}/asm-3.3.jar" excludes="META-INF/**"/>
351 <zipfileset src="${jar.dir}/asm-analysis-3.3.jar" excludes="META-INF/**"/>
352 <zipfileset src="${jar.dir}/asm-commons-3.3.jar" excludes="META-INF/**"/>
353 <zipfileset src="${jar.dir}/asm-tree-3.3.jar" excludes="META-INF/**"/>
354 <zipfileset src="${jar.dir}/asm-util-3.3.jar" excludes="META-INF/**"/>
355 <zipfileset src="${jar.dir}/asm-xml-3.3.jar" excludes="META-INF/**"/>
356
357 <zipfileset src="${jar.dir}/dom4j-1.6.1.jar" excludes="META-INF/**"/>
358 <zipfileset src="${jar.dir}/jaxen-1.1.1.jar" excludes="META-INF/**"/>
359 <zipfileset src="${jar.dir}/jsr305.jar" excludes="META-INF/**"/>
360 <zipfileset src="${jar.dir}/jFormatString.jar" excludes="META-INF/**"/>
361 <zipfileset src="${jar.dir}/commons-lang-2.4.jar" excludes="META-INF/**"/>
362 </jar>
363 </target>
364
365
366 <!-- Generate front-end scripts. -->
367 <target name="scripts" depends="init">
368 <loadproperties srcFile="${scripts.props}"/>
369
370 <filterset id="script.filters">
371 <filter token="GET_FBHOME" value="${script.get.fbhome}" />
372 <filter token="SET_DEFAULT_JAVA" value="${script.set.default.java}"/>
373 <filter token="WRAP_JAVA" value="${script.wrap.java}"/>
374 <filter token="WRAP_JAR" value="${script.wrap.jar}"/>
375 <filter token="DEFINE_ESCAPE_ARG" value="${script.define.escape_arg}"/>
376 </filterset>
377
378 <copy todir="${scripts.dir}" overwrite="true">
379 <fileset dir="${scriptsrc.dir}/standard"/>
380 <filterset refid="script.filters"/>
381 </copy>
382
383 <copy todir="${scripts.dir}" overwrite="true">
384 <fileset dir="${scriptsrc.dir}/windows"/>
385 </copy>
386
387 <copy todir="${scripts.dir}/deprecated" overwrite="true">
388 <fileset dir="${scriptsrc.dir}/deprecated"/>
389 <filterset refid="script.filters"/>
390 </copy>
391
392 <copy todir="${scripts.dir}/experimental" overwrite="true">
393 <fileset dir="${scriptsrc.dir}/experimental"/>
394 <filterset refid="script.filters"/>
395 </copy>
396
397 <!-- Make the Unix scripts executable. -->
398 <chmod dir="${scripts.dir}" perm="a+x" includes="**/*" excludes="**/*.bat"/>
399
400 <fixcrlf srcdir="${scripts.dir}" includes="**/*.bat" eol="crlf"/>
401
402 <touch file="${scripts.stamp}"/>
403 </target>
404
405
406
407 <!-- Ant task jar file. -->
408 <target name="anttask" depends="classes">
409 <jar destfile="${anttask.jar}">
410 <fileset dir="${classes.dir}">
411 <include name="${pkg.base}/anttask/**"/>
412 </fileset>
413 <fileset dir="${anttasksrc.dir}">
414 <include name="${pkg.base}/anttask/*.properties"/>
415 </fileset>
416 </jar>
417 </target>
418
419 <!-- JUnit test cases -->
420 <target name="junittests" depends="classes">
421 <jar destfile="${junittests.jar}">
422 <fileset dir="${junitclasses.dir}">
423 <include name="**"/>
424 </fileset>
425 </jar>
426 </target>
427
428
429 <target name="applystylesheets" depends="jars,runanttask">
430 <property name="findbugs.home" value="." />
431 <java classname="edu.umd.cs.findbugs.PrintingBugReporter"
432 fork="true"
433 failonerror="true"
434 output="${sampleoutput.dir}/fancy.html"
435 maxmemory="400m">
436 <classpath>
437 <pathelement location="${jar.dir}/findbugs.jar"/>
438 </classpath>
439 <jvmarg value="-ea"/>
440 <jvmarg value="-Dfindbugs.home=${findbugs.home}"/>
441 <arg value="-html:fancy.xsl"/>
442 <arg value="${sampleoutput.dir}/bcel.xml"/>
443 </java>
444 <java classname="edu.umd.cs.findbugs.PrintingBugReporter"
445 fork="true"
446 failonerror="true"
447 output="${sampleoutput.dir}/default.html"
448 maxmemory="400m">
449 <classpath>
450 <pathelement location="${jar.dir}/findbugs.jar"/>
451 </classpath>
452 <jvmarg value="-ea"/>
453 <jvmarg value="-Dfindbugs.home=${findbugs.home}"/>
454 <arg value="-html:default.xsl"/>
455 <arg value="${sampleoutput.dir}/bcel.xml"/>
456 </java>
457 <java classname="edu.umd.cs.findbugs.PrintingBugReporter"
458 fork="true"
459 failonerror="true"
460 output="${sampleoutput.dir}/plain.html"
461 maxmemory="400m">
462 <classpath>
463 <pathelement location="${jar.dir}/findbugs.jar"/>
464 </classpath>
465 <jvmarg value="-ea"/>
466 <jvmarg value="-Dfindbugs.home=${findbugs.home}"/>
467 <arg value="-html:plain.xsl"/>
468 <arg value="${sampleoutput.dir}/bcel.xml"/>
469 </java>
470 <java classname="edu.umd.cs.findbugs.PrintingBugReporter"
471 fork="true"
472 failonerror="true"
473 output="${sampleoutput.dir}/summary.html"
474 maxmemory="400m">
475 <classpath>
476 <pathelement location="${jar.dir}/findbugs.jar"/>
477 </classpath>
478 <jvmarg value="-ea"/>
479 <jvmarg value="-Dfindbugs.home=${findbugs.home}"/>
480 <arg value="-html:summary.xsl"/>
481 <arg value="${sampleoutput.dir}/bcel.xml"/>
482 </java>
483
484
485
486
487 </target>
488 <target name="runanttask" depends="anttask,jars">
489 <property name="findbugs.home" value="." />
490 <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpath="${anttask.jar}"/>
491 <findbugs home="."
492 output="xml:withMessages"
493 jvmargs="-ea -Xmx1200m"
494 projectName="Byte code Engineering Library (BCEL)"
495 outputFile="${sampleoutput.dir}/bcel.xml"
496 >
497 <class location="${jar.dir}/bcel.jar" />
498 </findbugs>
499 <findbugs home="."
500 output="xml:withMessages"
501 cloud="edu.umd.cs.findbugs.cloud.appengine.findbugs-cloud"
502 jvmargs="-ea -Xmx1200m"
503 projectName="Byte code Engineering Library (BCEL)"
504 outputFile="${sampleoutput.dir}/bcel-cloud-appengine.xml" >
505 <class location="${jar.dir}/bcel.jar" />
506 </findbugs>
507 <!--
508 <findbugs home="."
509 output="xml:withMessages"
510 cloud="edu.umd.cs.findbugs.cloud.appengine.findbugs-cloud"
511 jvmargs="-ea -Xmx1200m"
512 projectName="Byte code Engineering Library (BCEL)"
513 outputFile="${sampleoutput.dir}/bcel-cloud.xml" >
514 <class location="${jar.dir}/bcel.jar" />
515 </findbugs>
516 -->
517
518 <!--
519 <findbugs home="${findbugs.home}"
520 output="xml"
521 jvmargs="-ea -Xmx940m"
522 outputFile="${sampleoutput.dir}/bcel-3.xml"
523 projectFile="${sampleoutput.dir}/bcel.fbp"
524 applySuppression="true"
525 />
526
527 <convertXmlToText
528 home="${findbugs.home}"
529 jvmargs="-ea -Xmx940m"
530 input="${sampleoutput.dir}/bcel-3.xml"
531 output="${sampleoutput.dir}/bcel-3.txt"
532 applySuppression="true"
533 />
534 -->
535
536
537 <setBugDatabaseInfo home="."
538 withMessages="true"
539 name="Set name test"
540 input="${sampleoutput.dir}/bcel.xml"
541 output="${sampleoutput.dir}/bcel-2.xml"
542 />
543 </target>
544
545 <target name="findbugscheck" depends="anttask,junittests,jars">
546 <property name="findbugs.home" value="." />
547 <ant dir="${pluginsSrc.dir}/findbugsCommunalCloud" target="install" inheritAll="false" />
548 <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpath="${anttask.jar}"/>
549 <findbugs home="."
550 output="xml:withMessages"
551 cloud="edu.umd.cs.findbugs.cloud.appengine.findbugs-cloud"
552 jvmargs="-ea -Xmx1200m -Dfindbugs.failOnCloudError=true -Dfindbugs.cloud.token=238b6fc80cec17ec"
553 excludeFilter="findbugsExclude.xml"
554 projectName="FindBugs"
555 maxRank="20"
556 timeout="1800000"
557 outputFile="${build.dir}/findbugscheckAll.xml" >
558 <class location="${classes.dir}" />
559 <sourcePath path="src/java:src/gui:src/junit:src/tools"/>
560 <auxClasspath refid="tools.classpath"/>
561 <auxClasspath path="lib/ant.jar"/>
562 </findbugs>
563 <filterBugs home="."
564 withMessages="true"
565 notAProblem="false"
566 jvmargs="-ea -Xmx1200m"
567 input="${build.dir}/findbugscheckAll.xml"
568 output="${build.dir}/findbugscheck.xml" >
569 </filterBugs>
570 </target>
571
572 <target name="findbugscheck-cloud-fails" depends="anttask,junittests,jars">
573 <property name="findbugs.home" value="." />
574 <ant dir="${pluginsSrc.dir}/findbugsCommunalCloud" target="install" inheritAll="false" />
575 <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpath="${anttask.jar}"/>
576 <findbugs home="."
577 output="xml:withMessages"
578 cloud="edu.umd.cs.findbugs.cloud.appengine.findbugs-cloud"
579 jvmargs="-ea -Xmx1200m -Dfindbugs.failOnCloudError=true -Dwebcloud.host=example.com"
580 excludeFilter="findbugsExclude.xml"
581 projectName="FindBugs"
582 maxRank="20"
583 timeout="1800000"
584 outputFile="${build.dir}/findbugscheck.xml" >
585 <class location="${classes.dir}" />
586 <sourcePath path="src/java:src/gui:src/junit:src/tools"/>
587 <auxClasspath refid="tools.classpath"/>
588 </findbugs>
589 </target>
590
591 <target name="findbugsTestCases.check">
592 <condition property="findbugsTestCases.exists">
593 <available file="${findbugsTestCases.dir}" type="dir"/>
594 </condition>
595 </target>
596
597 <target name="findbugsTestCases" depends="anttask,junittests,jars,findbugsTestCases.check" if="findbugsTestCases.exists">
598 <property name="findbugs.home" value="." />
599 <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpath="${anttask.jar}"/>
600 <findbugs home="."
601 output="xml"
602 jvmargs="-ea -Xmx1200m"
603 projectName="FindBugsTestCases"
604 timeout="1800000"
605 outputFile="${sampleoutput.dir}/findbugsTestCases.xml" >
606 <class location="${findbugsTestCases.dir}/build/classes" />
607 </findbugs>
608 </target>
609
610 <!-- Download, install a plugin and run it on BCEL. This is useful
611 as a check for whether changes to FindBugs have broken its
612 interface with plugins. Note that the generated .xml file is
613 kept in the ${sampleoutput.dir} for later perusal. -->
614 <target name="plugincheck" depends="anttask">
615 <property name="findbugs.home" value="." />
616 <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpath="${anttask.jar}"/>
617 <!-- download the plugin -->
618 <echo message="curl ${plugincheck.jar} -o ${plugin.dir}/${plugincheck.jar}"/>
619 <!-- won't work everywhere, but I can't find an easy alternative -->
620 <exec executable="curl" failonerror="true">
621 <arg value="${plugincheck.url}"/>
622 <arg value="-o"/>
623 <arg value="${plugin.dir}/${plugincheck.jar}"/>
624 </exec>
625 <!-- run FindBugs w/ plugin on BCEL -->
626 <antcall target="runanttask"/>
627 <delete file="${plugin.dir}/${plugincheck.jar}"/>
628 <!-- keep warning file -->
629 <move file="${sampleoutput.dir}/bcel.xml" tofile="${sampleoutput.dir}/bcel.xml.${plugincheck.jar}"/>
630 </target>
631
632 <!-- Check for plugin fb-contrib-3.2.5.jar -->
633 <target name="plugincheck_fbcontrib" depends="anttask">
634 <delete file="${plugin.dir}/fb-contrib-3.2.5.jar" quiet="true"/>
635 <antcall target="runanttask"/>
636 <move file="${sampleoutput.dir}/bcel.xml" tofile="${sampleoutput.dir}/bcel.xml.core"/>
637 <antcall target="plugincheck">
638 <param name="plugincheck.url" value="http://umn.dl.sourceforge.net/sourceforge/fb-contrib/fb-contrib-3.2.5.jar"/>
639 <param name="plugincheck.jar" value="fb-contrib-3.2.5.jar"/>
640 </antcall>
641 </target>
642
643 <target name="foundFindbugsTestCases" depends="findbugsTestCases.check" unless="findbugsTestCases.exists">
644 <echo>FindBugs test cases not found at ${findbugsTestCases.dir}</echo>
645 <echo>Skipping test cases that depend on them</echo>
646 </target>
647
648 <target name="compileFindbugsTestCases" depends="findbugsTestCases.check" if="findbugsTestCases.exists">
649 <ant dir="${findbugsTestCases.dir}" target="classes" inheritAll="false" />
650 </target>
651
652 <!-- Run JUnit test cases -->
653 <target name="test" depends="runjunit,foundFindbugsTestCases"/>
654
655 <target name="runjunit" depends="junittests,jars,compileFindbugsTestCases">
656 <echo>Running JUnit test cases for FindBugs...</echo>
657 <delete dir="${junit.dir}"/>
658 <mkdir dir="${junit.dir}"/>
659 <junit fork="yes" printsummary="true">
660 <jvmarg value="-ea"/>
661 <jvmarg value="-Dfindbugs.home=."/>
662 <jvmarg value="-DfindbugsTestCases.home=${findbugsTestCases.dir}"/>
663 <formatter type="xml"/> <!-- Hudson reads generated xml -->
664 <classpath refid="tools.classpath"/>
665 <classpath>
666 <pathelement path="${junitclasses.dir}"/>
667 </classpath>
668 <!-- junit needs fileset to point to .java files (not .class) -->
669 <batchtest todir="${junit.dir}">
670 <fileset dir="${junitsrc.dir}">
671 <include name="**/*Test.java"/>
672 <include name="**/Test*.java"/>
673 <exclude name="**/Abstract*Test*.java"/>
674 </fileset>
675 </batchtest>
676 </junit>
677 </target>
678
679 <target name="checkstyle">
680 <taskdef resource="checkstyletask.properties"
681 classpath="build-lib/checkstyle-all-5.1.jar"/>
682 <checkstyle config="etc/checkstyle.xml" failonviolation="false">
683 <fileset dir="src/java"/>
684 <fileset dir="src/gui"/>
685 <fileset dir="src/junit"/>
686 <fileset dir="${findbugsTestCases.dir}/src"/>
687
688 <fileset dir="${pluginsSrc.dir}/webCloudClient/src"/>
689 <fileset dir="${pluginsSrc.dir}/jira/src"/>
690 <fileset dir="${pluginsSrc.dir}/googlecode/src"/>
691 <fileset dir="${pluginsSrc.dir}/jdbcCloudClient/src"/>
692
693 <fileset dir="${serverSrc.dir}/appengine/src"/>
694 <fileset dir="${serverSrc.dir}/common/src"/>
695
696 <formatter type="xml" tofile="build/checkstyle-result.xml"/>
697
698 </checkstyle>
699 </target>
700
701 <target name="smoketest" depends="scripts,findbugscheck,runjunit,validate,validatesampleoutput"/>
702
703
704 <!-- Get version properties. -->
705 <target name="version" depends="classes,-get-svn-revision" >
706 <echo>${svnrnum}</echo>
707 <java classpathref="tools.classpath"
708 output="${version.props.file}"
709 classname="edu.umd.cs.findbugs.Version"
710 failonerror="true">
711 <arg value="-props"/>
712 <sysproperty key="svn.revision" value="${svnrnum}"/>
713 </java>
714
715 <loadproperties srcfile="${version.props.file}"/>
716 <copy todir="${classes.dir}" file="${version.props.file}"/>
717 <loadproperties srcfile="${version.props.file}"/>
718 </target>
719
720 <target name="-get-svn-revision" if="svnant.home">
721 <taskdef resource="org/tigris/subversion/svnant/svnantlib.xml"
722 classpathref="svn.classpath"/>
723 <svn svnkit="false" javahl="false">
724 <status path="." revisionProperty="svnrnum"/>
725 </svn>
726 <echo>${svnrnum}</echo>
727 </target>
728
729
730 <target name="checkdocs">
731 <!-- FIXME: check whether docs are up to date -->
732 </target>
733
734 <!-- Generate formatted documentation. -->
735 <target name="docs" depends="classes,version,bugdesc,checkdocs" unless="docs.uptodate">
736 <loadproperties srcFile="${doc.props.file}"/>
737
738 <!-- Generate HTML docs (the website). -->
739 <antcall target="generatedocs">
740 <param name="docoutput.dir" value="${doc.dir}"/>
741 <param name="googleanalytics.fragment" value=""/>
742 </antcall>
743 <property name="webdocs.uptodate" value="true"/>
744
745 <!-- Generate HTML version of manual. -->
746 <antcall target="generatemanual">
747 <param name="docoutput.dir" value="${doc.dir}"/>
748 <param name="googleanalytics.fragment" value=""/>
749 </antcall>
750 <property name="manual.uptodate" value="true"/>
751
752 <!-- Generate PDF version of manual. -->
753 <antcall target="generatepdfmanual">
754 <param name="docoutput.dir" value="${doc.dir}"/>
755 </antcall>
756 <property name="pdfmanual.uptodate" value="true"/>
757 </target>
758
759 <target name="checkweb">
760 <!-- FIXME: check whether web docs are up to date -->
761 </target>
762
763 <target name="web" depends="classes,version,web0,bugdesc,checkweb,apiJavadoc"/>
764 <!-- Generate website. -->
765 <target name="web0" depends="apiJavadoc">
766 <loadproperties srcFile="${doc.props.file}"/>
767
768 <antcall target="generatedocs">
769 <param name="docoutput.dir" value="${web.dir}"/>
770 <param name="googleanalytics.fragment" value="${doc.html.googleanalytics}"/>
771 </antcall>
772 <property name="webdocs.uptodate" value="true"/>
773
774 <antcall target="generatemanual">
775 <param name="docoutput.dir" value="${web.dir}"/>
776 <param name="googleanalytics.fragment" value="${doc.html.googleanalytics}"/>
777 </antcall>
778 <property name="manual.uptodate" value="true"/>
779
780 <!-- move javadocs from 'apiJavadoc' target (could use <copy/> instead of <move/>, but slower) -->
781 <move todir="${web.dir}/api">
782 <fileset dir="${apiDoc.dir}"/>
783 </move>
784 <mkdir dir="${web.dir}/xsl"/>
785 <copy todir="${web.dir}/xsl">
786 <fileset dir="${xslsrc.dir}">
787 <include name="*.xsl"/>
788 </fileset>
789 </copy>
790 </target>
791
792 <!--
793 Generate all bug description HTML files.
794 -->
795 <target name="bugdesc" depends="jars" unless="bugdesc.uptodate">
796 <loadproperties srcFile="${doc.props.file}"/>
797 <!-- Generate bug descriptions. -->
798 <antcall target="generatebugdesc">
799 <param name="bugdesc.output" value="${docsrc.dir}/bugDescriptions.html"/>
800 <param name="bugdesc.title" value="FindBugs Bug Descriptions"/>
801 <param name="bugdesc.prologue" value="${doc.html.gen.bugDescriptions.prologue}"/>
802 <param name="bugdesc.unabridged" value="false"/>
803 </antcall>
804 <antcall target="generatebugdesc">
805 <param name="bugdesc.output" value="${docsrc.dir}/allBugDescriptions.html"/>
806 <param name="bugdesc.title" value="FindBugs Bug Descriptions (Unabridged)"/>
807 <param name="bugdesc.prologue" value="${doc.html.gen.allBugDescriptions.prologue}"/>
808 <param name="bugdesc.unabridged" value="true"/>
809 </antcall>
810 </target>
811
812 <!--
813 Generate a single bug description HTML file.
814
815 Input Params:
816 bugdesc.output - bug description file to create
817 bugdesc.title - title of document
818 bugdesc.prologue - text at beginning of bug description file
819 bugdesc.unabridged - true if generating all bug descriptions,
820 false if only default-enabled
821 -->
822 <target name="generatebugdesc">
823 <java classname="edu.umd.cs.findbugs.tools.html.PrettyPrintBugDescriptions"
824 fork="true"
825 logError="true"
826 output="${bugdesc.output}">
827 <jvmarg value="-ea"/>
828 <jvmarg value="-Dfindbugs.home=."/>
829 <jvmarg value="-Dfindbugs.desc.unabridged=${bugdesc.unabridged}"/>
830 <classpath refid="tools.classpath"/>
831 <arg value="${bugdesc.title}"/>
832 <arg value="${doc.html.gen.header}"/>
833 <arg value="${doc.html.gen.beginBody}"/>
834 <arg value="${bugdesc.prologue}"/>
835 <arg value="${doc.html.gen.endBody}"/>
836 </java>
837 </target>
838
839 <!--
840 Generate documentation files by performing token substitutions
841 based on property values. This will construct viewable HTML
842 from the raw documentation sources, as well as the XML/XSL files
843 ready to be formatted as HTML by the docbook-XSL stylesheet
844 package.
845
846 Input Params:
847 docoutput.dir - output directory for generated documents
848 googleanalytics.fragment - HTML fragment for google analytics
849 (empty if not formatting for website)
850 -->
851 <target name="generatedocs" unless="webdocs.uptodate">
852 <mkdir dir="${docoutput.dir}"/>
853 <mkdir dir="${docoutput.dir}/ja"/>
854
855 <!-- Filter set used for generating text substitution values for
856 documentation. -->
857 <filterset id="doc.filters">
858 <filter token="VERSION" value="${release.number}" />
859 <filter token="RELEASE_DATE" value="${release.date}" />
860 <filter token="ECLIPSE_UI_VERSION" value="${eclipse.ui.version}" />
861 <filter token="WEBSITE" value="${findbugs.website}"/>
862 <filter token="DOWNLOADS_WEBSITE" value="${findbugs.downloads.website}"/>
863 <filter token="HTML_XSL_STYLESHEET" value="${xsl.stylesheet.home}/html/chunk.xsl" />
864 <filter token="FO_XSL_STYLESHEET" value="${xsl.stylesheet.home}/fo/docbook.xsl"/>
865 <!--
866 <filter token="ECLIPSE_XSL_STYLESHEET" value="${eclipse.xsl.stylesheet}" />
867 -->
868 <filter token="HTML_SIDEBAR" value="${doc.html.sidebar}"/>
869 <filter token="HTML_FOOTER" value="${doc.html.footer}"/>
870 <filter token="GOOGLE_ANALYTICS" value="${googleanalytics.fragment}"/>
871 </filterset>
872
873 <!-- Generate files, substituting token values based on properties -->
874 <copy todir="${docoutput.dir}">
875 <filterset>
876 <filterset refid="doc.filters"/>
877 </filterset>
878 <fileset dir="${docsrc.dir}">
879 <patternset refid="doc.src.pats"/>
880 </fileset>
881 </copy>
882
883 <!-- overwrite UTF-8 files -->
884 <copy todir="${docoutput.dir}" encoding="UTF-8" overwrite="true">
885 <filterset>
886 <filterset refid="doc.filters"/>
887 </filterset>
888 <fileset dir="${docsrc.dir}">
889 <include name="manual_*.xml"/>
890 </fileset>
891 </copy>
892
893 <copy todir="${docoutput.dir}">
894 <fileset dir="${docsrc.dir}">
895 <patternset refid="doc.img.pats"/>
896 </fileset>
897 </copy>
898
899 <copy todir="${docoutput.dir}/ja/manual">
900 <fileset dir="${docsrc.dir}/manual">
901 <patternset refid="doc.img.pats"/>
902 </fileset>
903 </copy>
904
905 </target>
906
907 <!--
908 Format the manual as HTML.
909
910 Input Params:
911 docoutput.dir - the directory containing the generated HTML/XML/XSL files
912 (must be a child of the project root directory)
913 -->
914 <target name="generatemanual" unless="manual.uptodate">
915 <echo>Generating HTML version of manual</echo>
916 <echo>Running saxon: ${saxon.home}/saxon.jar</echo>
917 <java fork="true" dir="${docoutput.dir}" failonerror="true" classname="com.icl.saxon.StyleSheet" >
918 <classpath>
919 <pathelement location="${saxon.home}/saxon.jar"/>
920 <pathelement path="${java.class.path}"/>
921 </classpath>
922 <arg value="manual.xml" />
923 <arg value="manual.xsl" />
924 </java>
925
926 <java fork="true" dir="${docoutput.dir}/ja" failonerror="true" classname="com.icl.saxon.StyleSheet" >
927 <classpath>
928 <pathelement location="${saxon.home}/saxon.jar"/>
929 <pathelement path="${java.class.path}"/>
930 </classpath>
931 <arg value="../manual_ja.xml" />
932 <arg value="../manual.xsl" />
933 </java>
934 </target>
935
936 <!--
937 Format the manual as PDF.
938 Requires dblatex http://sourceforge.net/projects/dblatex,
939 pdflatex, and perl to be installed.
940
941 Input Params:
942 docoutput.dir - the directory containing the generated HTML/XML/XSL files
943 (must be a child of the project root directory)
944 -->
945 <target name="generatepdfmanual" if="doc.generate.pdf" unless="pdfmanual.uptodate">
946 <echo>Generating PDF version of manual</echo>
947 <!--
948 <echo>Running saxon: ${saxon.home}/saxon.jar</echo>
949 <java fork="true" dir="${docoutput.dir}" failonerror="true" classname="com.icl.saxon.StyleSheet" >
950 <classpath>
951 <pathelement location="${saxon.home}/saxon.jar"/>
952 <pathelement path="${java.class.path}"/>
953 </classpath>
954 <arg value="-o"/>
955 <arg value="manual.fo"/>
956 <arg value="manual.xml" />
957 <arg value="manual-fo.xsl" />
958 </java>
959 <exec dir="${docoutput.dir}" executable="${fop.home}/fop">
960 <arg value="-fo"/>
961 <arg value="manual.fo"/>
962 <arg value="-pdf"/>
963 <arg value="manual.pdf"/>
964 </exec>
965 -->
966 <echo>Running dblatex...</echo>
967 <exec dir="${docoutput.dir}" executable="dblatex">
968 <arg value="-t"/>
969 <arg value="tex"/>
970 <arg value="-o"/>
971 <arg value="manual-raw.tex"/>
972 <arg value="manual.xml"/>
973 </exec>
974 <echo>Fixing dblatex output...</echo>
975 <exec dir="${docoutput.dir}" executable="/usr/bin/perl" output="${docoutput.dir}/manual.tex">
976 <arg value="-e"/>
977 <arg value="while(&lt;&gt;){s,([A-Za-z-]*\.png\}),manual/\1,g;print;}"/>
978 <arg value="manual-raw.tex"/>
979 </exec>
980 <echo>Running pdflatex...</echo>
981 <antcall target="pdflatex-manual"/>
982 <echo>Done.</echo>
983 </target>
984
985 <target name="pdflatex-manual">
986 <exec dir="${docoutput.dir}" executable="pdflatex">
987 <arg value="manual.tex"/>
988 </exec>
989 </target>
990
991 <!-- Generate jnlp jars -->
992 <target name="jnlp" depends="jars">
993 <copy todir="${jnlp.dir}" file="${engine.jar}"/>
994 <copy todir="${jnlp.dir}" file="${jar.dir}/bcel.jar"/>
995 <copy todir="${jnlp.dir}" file="${jar.dir}/jsr305.jar"/>
996 <copy todir="${jnlp.dir}" file="${jar.dir}/asm-3.3.jar"/>
997 <copy todir="${jnlp.dir}" file="${jar.dir}/asm-commons-3.3.jar"/>
998 <copy todir="${jnlp.dir}" file="${jar.dir}/asm-tree-3.3.jar"/>
999 <copy todir="${jnlp.dir}" file="${jar.dir}/dom4j-1.6.1.jar"/>
1000 <copy todir="${jnlp.dir}" file="${jar.dir}/jaxen-1.1.1.jar"/>
1001 <copy todir="${jnlp.dir}" file="${jar.dir}/jFormatString.jar"/>
1002 <copy todir="${jnlp.dir}" file="${jar.dir}/commons-lang-2.4.jar"/>
1003 <copy todir="${jnlp.dir}" file="${jar.dir}/AppleJavaExtensions.jar"/>
1004 <copy todir="${jnlp.dir}" file="${docsrc.dir}/buggy-sm.png"/>
1005 <copy todir="${jnlp.dir}">
1006 <fileset refid="plugin.jars"/>
1007 </copy>
1008 <copy todir="${jnlp.dir}">
1009 <fileset dir="${plugin.dir}">
1010 <exclude name="README"/>
1011 </fileset>
1012 </copy>
1013 <echo file="${plugin.dir}/pluginlist.properties">${prop.plugin.jars}</echo>
1014 <jar destfile="${jnlp.dir}/findbugs.jar" update="yes">
1015 <fileset dir="${etc.dir}">
1016 <include name="systemProperties.properties"/>
1017 <include name="my.java.policy"/>
1018 </fileset>
1019 <fileset dir="${plugin.dir}">
1020 <include name="*.properties"/>
1021 <include name="*.txt"/>
1022 </fileset>
1023 </jar>
1024 <input message="Enter keystore password:" addproperty="password"/>
1025 <signjar keystore="findbugs.keystore" alias="findbugs" storepass="${password}" keypass="${password}">
1026 <fileset dir="${jnlp.dir}">
1027 <include name="**/*.jar"/>
1028 </fileset>
1029 </signjar>
1030 <java classpathref="tools.classpath"
1031 classname="edu.umd.cs.findbugs.tools.CheckClassfileVersion"
1032 failonerror="true">
1033 <arg value="jnlp"/>
1034 </java>
1035 </target>
1036
1037 <target name="sign" depends="jars">
1038 <input message="Enter keystore password:" addproperty="password"/>
1039 <signjar keystore="findbugs.keystore" alias="findbugs" storepass="${password}" keypass="${password}">
1040 <fileset dir="${jnlp.dir}">
1041 <include name="**/*.jar"/>
1042 </fileset>
1043 </signjar>
1044 <java classpathref="tools.classpath"
1045 classname="edu.umd.cs.findbugs.tools.CheckClassfileVersion"
1046 failonerror="true">
1047 <arg value="jnlp"/>
1048 </java>
1049 </target>
1050
1051
1052 <!-- Generate binary and source distributions. -->
1053 <target name="dist" depends="clean,bindist,srcdist,web" description="Complete distribution except for jnlp"/>
1054
1055 <!-- Generate binary distribution (both .zip and .tar.gz) -->
1056 <target name="bindist" depends="clean,validate,rebuild,docs" description="Binary distribution">
1057 <ant dir="${pluginsSrc.dir}/bugCollectionCloud" target="install" inheritAll="false" />
1058 <ant dir="${pluginsSrc.dir}/findbugsCommunalCloud" target="install" inheritAll="false" />
1059 <ant dir="${pluginsSrc.dir}/poweruser" target="install" inheritAll="false" />
1060 <ant dir="${pluginsSrc.dir}/noUpdateChecks" target="install" inheritAll="false" />
1061 <java classpathref="tools.classpath"
1062 classname="edu.umd.cs.findbugs.tools.CheckClassfileVersion"
1063 failonerror="true">
1064 <arg value="lib"/>
1065 <arg value="plugin"/>
1066 </java>
1067 <patternset id="bindist.miscfile.pats">
1068 <include name="README.txt"/>
1069 <include name="LICENSE*.txt"/>
1070 <include name="bin/*.bat"/>
1071 <include name="lib/buggy.icns"/>
1072 <include name="src/xsl/*.xsl"/> <!-- Bug #1187977 -->
1073 </patternset>
1074
1075 <patternset id="bindist.jar.pats">
1076 <include name="lib/*.jar"/>
1077 <include name="plugin/webCloudClient.jar"/>
1078 <include name="plugin/findbugsCommunalCloud.jar"/>
1079 <include name="plugin/README"/>
1080 <include name="plugin"/>
1081 <include name="optionalPlugin/poweruser.jar"/>
1082 <include name="optionalPlugin/noUpdateChecks.jar"/>
1083 <include name="optionalPlugin/bugCollectionCloud.jar"/>
1084 <include name="optionalPlugin/README"/>
1085 <include name="optionalPlugin"/>
1086 <exclude name="lib/AppleJavaExtensions.jar"/>
1087 <exclude name="lib/junit.jar"/>
1088 <exclude name="lib/plastic.jar"/>
1089 </patternset>
1090
1091 <patternset id="bindist2.jar.pats">
1092 <include name="lib/*.jar"/>
1093 <include name="plugin/noUpdateChecks.jar"/>
1094 <include name="plugin/README"/>
1095 <include name="plugin"/>
1096 <include name="optionalPlugin/webCloudClient.jar"/>
1097 <include name="optionalPlugin/findbugsCommunalCloud.jar"/>
1098 <include name="optionalPlugin/poweruser.jar"/>
1099 <include name="optionalPlugin/bugCollectionCloud.jar"/>
1100 <include name="optionalPlugin/README"/>
1101 <include name="optionalPlugin"/>
1102 <exclude name="lib/AppleJavaExtensions.jar"/>
1103 <exclude name="lib/junit.jar"/>
1104 <exclude name="lib/plastic.jar"/>
1105 </patternset>
1106
1107 <patternset id="bindist.unixscript.pats">
1108 <include name="bin/*"/>
1109 <include name="bin/experimental/*"/>
1110 <include name="bin/deprecated/*"/>
1111 <exclude name="bin/*.bat"/>
1112 </patternset>
1113
1114 <zip destfile="${build.dir}/findbugs-${release.number}.zip" compress="true">
1115 <zipfileset prefix="findbugs-${release.number}" dir=".">
1116 <patternset refid="bindist.miscfile.pats"/>
1117 </zipfileset>
1118 <zipfileset prefix="findbugs-${release.number}" dir="." filemode="555">
1119 <patternset refid="bindist.unixscript.pats"/>
1120 </zipfileset>
1121 <zipfileset prefix="findbugs-${release.number}" dir=".">
1122 <patternset refid="bindist.jar.pats"/>
1123 </zipfileset>
1124 <zipfileset prefix="findbugs-${release.number}/doc" dir="${doc.dir}">
1125 <patternset refid="doc.src.pats"/>
1126 <patternset refid="doc.img.pats"/>
1127 </zipfileset>
1128 </zip>
1129
1130 <tar destfile="${build.dir}/findbugs-${release.number}.tar.gz" compression="gzip">
1131 <tarfileset prefix="findbugs-${release.number}" dir=".">
1132 <patternset refid="bindist.miscfile.pats"/>
1133 </tarfileset>
1134 <tarfileset prefix="findbugs-${release.number}" dir="." mode="555">
1135 <patternset refid="bindist.unixscript.pats"/>
1136 </tarfileset>
1137 <tarfileset prefix="findbugs-${release.number}" dir=".">
1138 <patternset refid="bindist.jar.pats"/>
1139 </tarfileset>
1140 <tarfileset prefix="findbugs-${release.number}/doc" dir="${doc.dir}">
1141 <patternset refid="doc.src.pats"/>
1142 <patternset refid="doc.img.pats"/>
1143 </tarfileset>
1144 </tar>
1145
1146 <move file="optionalPlugin/noUpdateChecks.jar" todir="plugin"/>
1147
1148 <zip destfile="${build.dir}/findbugs-noUpdateChecks-${release.number}.zip" compress="true">
1149 <zipfileset prefix="findbugs-${release.number}" dir=".">
1150 <patternset refid="bindist.miscfile.pats"/>
1151 </zipfileset>
1152 <zipfileset prefix="findbugs-${release.number}" dir="." filemode="555">
1153 <patternset refid="bindist.unixscript.pats"/>
1154 </zipfileset>
1155 <zipfileset prefix="findbugs-${release.number}" dir=".">
1156 <patternset refid="bindist2.jar.pats"/>
1157 </zipfileset>
1158 <zipfileset prefix="findbugs-${release.number}/doc" dir="${doc.dir}">
1159 <patternset refid="doc.src.pats"/>
1160 <patternset refid="doc.img.pats"/>
1161 </zipfileset>
1162 </zip>
1163
1164 <tar destfile="${build.dir}/findbugs-noUpdateChecks-${release.number}.tar.gz" compression="gzip">
1165 <tarfileset prefix="findbugs-${release.number}" dir=".">
1166 <patternset refid="bindist.miscfile.pats"/>
1167 </tarfileset>
1168 <tarfileset prefix="findbugs-${release.number}" dir="." mode="555">
1169 <patternset refid="bindist.unixscript.pats"/>
1170 </tarfileset>
1171 <tarfileset prefix="findbugs-${release.number}" dir=".">
1172 <patternset refid="bindist2.jar.pats"/>
1173 </tarfileset>
1174 <tarfileset prefix="findbugs-${release.number}/doc" dir="${doc.dir}">
1175 <patternset refid="doc.src.pats"/>
1176 <patternset refid="doc.img.pats"/>
1177 </tarfileset>
1178 </tar>
1179
1180 <move file="plugin/noUpdateChecks.jar" todir="optionalPlugin"/>
1181
1182 </target>
1183
1184 <!-- Build source distribution. -->
1185 <target name="srcdist" description="Source distribution" unless="doNotExportSrc">
1186 <echo>
1187 ${svnant.home}
1188 </echo>
1189 <mkdir dir="${build.dir}/src"/>
1190 <delete dir="${build.dir}/src/findbugs-${release.number}"/>
1191 <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svn.classpath"/>
1192
1193 <svn username="guest" password="" javahl="false">
1194 <!-- Use 'export' rather than 'checkout' to exclude the .svn stuff -->
1195 <export srcUrl="http://findbugs.googlecode.com/svn/trunk/findbugs"
1196 revision="HEAD"
1197 destPath="${build.dir}/src/findbugs-${release.number}"/>
1198 </svn>
1199
1200 <zip destfile="${build.dir}/findbugs-${release.number}-source.zip" compress="true">
1201 <zipfileset dir="${build.dir}/src" includes="findbugs-${release.number}/**"/>
1202 <zipfileset prefix="findbugs-${release.number}/doc" dir="${doc.dir}">
1203 <patternset refid="doc.src.pats"/>
1204 <patternset refid="doc.img.pats"/>
1205 </zipfileset>
1206 </zip>
1207 </target>
1208
1209 <!-- Delete generated files. -->
1210 <target name="clean">
1211 <delete dir="${scripts.dir}"/>
1212 <delete dir="${build.dir}"/>
1213 <delete dir="${doc.dir}"/>
1214 <delete dir="${web.dir}"/>
1215 <delete dir="${apiDoc.dir}"/>
1216 <delete file="${engine.jar}"/>
1217 <delete dir="${annotationDoc.dir}"/>
1218 <delete file="${anttask.jar}" failonerror="false"/>
1219 <delete failonerror="false">
1220 <fileset dir="plugin" includes="*.jar"/>
1221 </delete>
1222 <mkdir dir="optionalPlugin"/> <!-- avoid an error on the next line -->
1223 <delete failonerror="false">
1224 <fileset dir="optionalPlugin" includes="*.jar"/>
1225 </delete>
1226 </target>
1227
1228 <target name="init" depends="properties">
1229 <mkdir dir="${scripts.dir}"/>
1230 <mkdir dir="${build.dir}"/>
1231 <mkdir dir="${doc.dir}"/>
1232 <mkdir dir="${web.dir}"/>
1233 <mkdir dir="${classes.dir}"/>
1234 <mkdir dir="${junitclasses.dir}"/>
1235 <mkdir dir="${apiDoc.dir}"/>
1236 <mkdir dir="${annotationDoc.dir}"/>
1237 <mkdir dir="${plugin.dir}"/>
1238 <mkdir dir="${sampleoutput.dir}"/>
1239 </target>
1240
1241 <target name="properties">
1242 <!-- set different doc targets if the global doc property is set -->
1243 <condition property="webdocs.uptodate">
1244 <isset property="docs.uptodate"/>
1245 </condition>
1246 <condition property="manual.uptodate">
1247 <isset property="docs.uptodate"/>
1248 </condition>
1249 <condition property="pdfmanual.uptodate">
1250 <isset property="docs.uptodate"/>
1251 </condition>
1252 <condition property="apidoc.uptodate">
1253 <isset property="docs.uptodate"/>
1254 </condition>
1255 </target>
1256
1257 <target name="apiJavadoc" depends="version" unless="apidoc.uptodate">
1258 <javadoc access="protected"
1259 author="true"
1260 packagenames="*"
1261 destdir="${apiDoc.dir}"
1262 doctitle="FindBugs API Documentation"
1263 Header="&lt;b&gt;FindBugs&amp;trade; ${release.number}&lt;/b&gt;"
1264 Windowtitle="FindBugs ${release.number} API"
1265 bottom="&lt;font size='-1'&gt;&lt;a href='http://findbugs.sourceforge.net/' target='_parent'&gt;FindBugs&lt;/a&gt;&amp;trade; is licenced under the LGPL. Copyright &amp;copy; 2006 University of Maryland.&lt;/font&gt;"
1266 nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar= "false" notree="false"
1267 sourcepath="src/java:src/gui" splitindex="true" use="true" version="true">
1268 <classpath refid="findbugs.classpath"/>
1269 </javadoc>
1270 </target>
1271
1272 <target name="annotationJavadoc">
1273 <javadoc access="public"
1274 classpath="lib/bcel.jar:lib/junit.jar:lib/dom4j-1.6.1.jar:lib/jsr305.jar:lib/AppleJavaExtensions.jar"
1275 destdir="${annotationDoc.dir}"
1276 packagenames="edu.umd.cs.findbugs.annotations"
1277 doctitle="FindBugs Annotation Documentation"
1278 nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar= "false" notree="false"
1279 sourcepath="src/gui" splitindex="true" use="true" version="true"/>
1280 </target>
1281
1282 <!-- Download, patch, and build a modified BCEL 5.2. Install resulting bcel.jar in lib. -->
1283 <target name="patchbcel">
1284 <delete dir="${build.dir}/bcel-5.2-src"/>
1285 <delete file="${build.dir}/bcel-5.2-src.zip"/>
1286 <get src="http://www.apache.org/dist/jakarta/bcel/source/bcel-5.2-src.zip"
1287 dest="${build.dir}/bcel-5.2-src.zip"
1288 verbose="on"/>
1289 <unzip src="${build.dir}/bcel-5.2-src.zip" dest="${build.dir}/bcel-5.2-src"/>
1290 <delete file="${build.dir}/bcel-5.2-src/bcel-5.2/build.xml"/>
1291 <patch patchfile="${patch.dir}/bcel.diff" dir="${build.dir}/bcel-5.2-src/bcel-5.2" strip="7"/>
1292 <ant dir="${build.dir}/bcel-5.2-src/bcel-5.2" inheritAll="false"/>
1293 <copy file="${build.dir}/bcel-5.2-src/bcel-5.2/bcel.jar" tofile="${jar.dir}/bcel.jar"/>
1294 </target>
1295
1296 <!--
1297 Rebuild jar305.jar.
1298 JSR305-ri must be checked out "next to" findbugs,
1299 and must have its classes built.
1300 -->
1301 <target name="jsr305.jar">
1302 <jar destfile="${jar.dir}/jsr305.jar">
1303 <fileset dir="${jsr305.dir}/build/classes">
1304 <include name="**/*.class"/>
1305 </fileset>
1306 <fileset dir="${jsr305.dir}/src/main/java">
1307 <include name="**/*.java"/>
1308 </fileset>
1309 </jar>
1310 </target>
1311
1312 <target name="srcJar" description="build source jar file">
1313 <jar jarfile="findbugs-src.jar" compress="true">
1314 <fileset dir="${src.dir}"/>
1315 <fileset dir="${src5.dir}"/>
1316 <fileset dir="${toolsrc.dir}"/>
1317 <fileset dir="${anttasksrc.dir}"/>
1318 <fileset dir="${junitsrc.dir}"/>
1319 <fileset dir=".">
1320 <include name="LICENSE*.txt"/>
1321 </fileset>
1322 </jar>
1323
1324 </target>
1325 </project>
1326
1327 <!-- vim:set ts=4: -->
0 Decoupling FindBugs from BCEL
1
2 Document history:
3 DHH 7/3/2006: Created
4
5 Goals:
6
7 - eliminate tight coupling between FindBugs and BCEL
8
9 - Allow other bytecode frameworks (such as ASM and maybe Soot) to
10 be used by detectors
11
12 *** Detectors could even do their own scanning on the raw classfile
13 data, without any bytecode framework
14 (on either stream or byte array)
15
16 - Allow visitor-based detectors to use information from
17 dataflow analysis framework.
18
19
20 Issues:
21
22 - We are reliant on BCEL's Constants and Visitor classes
23
24 - The bytecode analysis (ba) package makes heavy use of
25 BCEL tree-based reprentation (generic package) and also
26 the BCEL Repository and type classes (both of which have
27 significant shortcomings). The detectors which use
28 the bytecode analysis package are also tightly coupled
29 to these classes.
30
31
32 Strategy:
33
34 - Change the basic visitation strategy to remove dependence
35 on the BCEL Repository and JavaClass classes.
36
37 *** We should develop our own CodeBase and Repository abstractions
38
39 - The visitor classes and detectors will probably be the easiest
40 to convert. We can develop our own Visitor/DismantleBytecode
41 interfaces, which can be concretely implemented using ASM,
42 (or any other bytecode framework). Obviously the detectors
43 should not be aware which bytecode framework is being used.
44
45 We will probably need to add our own equivalent of the
46 BCEL Constants interface. We will need some kind of
47 general classfile representation package (to hide framework-specific
48 details).
49
50 - After visitor-based detectors are working using new visitor framework,
51 start work on developing new classes/APIs for more sophisticated
52 (e.g., dataflow) analysis. We should try to separate WHAT information
53 is computed (types, values, nullness, etc.) from HOW the
54 information is computed. Clients (Detectors) should only be coupled
55 to the classes representing WHAT is computed.
56
57 Notes:
58
59 - We should standardize on VM (slashed) type descriptors in all places
60 where a JVM type is being referred to. Dotted classnames should
61 go away except when displaying such types to the user.
62
63 *** This is how ASM represents types -> efficient
64
65 *** We should probably develop a richer type abstraction eventually
66 for the dataflow-based detectors, etc.
0 Visiting and caching classes and analyses
1
2 Document history:
3 DHH 7/3/2006: Created
4
5 Goal: implement a mechanism for visiting classes (and caching
6 classfile representations and analyses) that is not tightly coupled
7 to any particular bytecode framework.
8
9 *** Avoid duplicating work if possible.
10
11 *** "Multicast" visitors?
12
13 Sketch of algorithm
14
15 1. user provides list of codebases to analyze, along with
16 the aux classpath and source path
17
18 2. scan to identify classes within the codebases
19
20 Need to scan enough information to build global type repository:
21 i.e., identify supertype/subtype relationships.
22
23 3. compute execution plan
24
25 4. run execution plan
26
27 *** detectors (really, visitors) are invoked with the
28 _unique descriptor_ of the class being visited.
29 (Should identify class name and code base)
30
31 *** things a detector can do (these are not mutually exclusive: any combination
32 is possible):
33
34 1. Register as wanting to inspect the class using a DismantleBytecode.
35 Initially, we can create one DismantleBytecode per detector.
36 Later we can group detectors wanting to dismantle bytecode that
37 are contiguous in the execution plan in order to "multicast"
38 the classfile visitation/dismantling.
39
40 [Maybe we should eliminate the distinction between BetterVisitor/
41 PreorderVisitor/DismantleBytecode, and just have a single implementation
42 that dismantles bytecode. Detectors that don't care about bytecode
43 can simply have a no-op sawOpcode(), etc.]
44
45 Note that detectors do not extend DismantleBytecode. Instead
46 they implement an interface (describing the visitation methods)
47 and register themselves with a DismantleBytecode object.
48 (Internally, the DismantleBytecode object has a list of visitors (detectors)
49 that are called back on each event.)
50
51 2. Request a tree-based representation of the class. I guess
52 we will have to develop our own framework-independent
53 representation.
54
55 3. Request analyses of the class or methods in the class.
56 These are cached to avoid computing them redundantly.
57
58 Classes and infrastructure needed:
59
60 CodeBase (a jar file, nested jar file, directory, URL, etc.)
61 ClassPath (a list of CodeBases)
62 ClassDescriptor (uniquely identify a class in a CodeBase)
63 MethodDescriptor (uniquely identify a method in a class)
64 FieldDescriptor (uniquely identify a field in a class)
65 TypeDescriptor (a type)
66 TypeRepository (global type repository)
67
68
69 IClassVisitor (interface defining vistation methods)
70 IDismantleBytecode (interface allowing an IClassVisitor to register
71 itself as wanting to dismantle the class that the
72 IDismantleBytecode object represents)
73 *** perhaps we should call this something different to distinguish
74 it from the previous inheritance-based DismantleBytecode class
75
76 BetterVisitor
77 PreorderVisitor
78 DismantleBytecode
79 --- These are all abstract implementations of IClassVisitor.
80 They can be subclassed by detectors to ease the transition
81 away from the current (BCEL-based) visitor framework.
82
83 --- better idea: one class called AbstractClassVisitor that is
84 a no-op implementation of IClassVisitor. All
85 visitor-based detectors change to inherit from AbstractClassVisitor
86 (or possibly a subclass that automates some of the work
87 of connecting to the IDismantleBytecode object).
88
89 ASMDismantleBytecode (dismantle bytecode using the ASM framework)
0 TEX_SRCS = architecture.tex
1 PDFS = $(TEX_SRCS:.tex=.pdf)
2
3 %.pdf : %.tex
4 pdflatex $*
5 pdflatex $*
6
7 all : $(PDFS)
8
9 clean :
10 rm -f *.aux *.log
11
12 depend :
13 ./mkdep.pl $(TEX_SRCS) > depend.mak
14
15 depend.mak :
16 touch depend.mak
17
18 include depend.mak
0 \documentclass[11pt]{article}
1 \usepackage{fullpage}
2 \usepackage{graphicx}
3 \usepackage{url}
4 \usepackage{hyperref}
5
6 \title{The Architecture of FindBugs}
7 \author{David Hovemeyer}
8 \date{}
9
10 \newcommand{\Note}[1]{
11 \begin{quote}
12 \fbox{
13 \parbox{.5in}{
14 \includegraphics[width=.4in]{attention}
15 }
16 \parbox{5in}{
17 {\bf Note}: #1
18 }
19 }
20 \end{quote}
21 }
22
23 \newcommand{\Indent}{\hskip .25in}
24 \newcommand{\ForEach}{{\bf for each}}
25 \newcommand{\Do}{{\bf do}}
26 \newcommand{\If}{{\bf if}}
27 \newcommand{\Then}{{\bf then}}
28 \newcommand{\EndFor}{{\bf end for}}
29 \newcommand{\EndIf}{{\bf end if}}
30
31 \begin{document}
32
33 \maketitle
34 \tableofcontents
35
36 \section*{Introduction}
37
38 This document presents a medium-level overview of the architecture
39 of FindBugs. It should be helpful for anyone trying to understand how
40 the tool works and how to extend its capabilities.
41
42 This information is accurate as of FindBugs version 0.9.4.
43 The document revision is
44 \begin{quote}
45 \verb+$Revision: 1.7 $+
46 \end{quote}
47
48 Note that FindBugs has fairly complete javadoc API documentation.
49 The {\tt apiJavadoc} target in the Ant build.xml file will generate
50 this documentation in the {\tt apiJavaDoc} subdirectory.
51
52 \section{Walkthrough}
53
54 This section will walk through an analysis session,
55 such as an invocation of the command line interface or the analysis
56 started by the ``Find Bugs!'' button in the Swing GUI.
57
58 \subsection{The FindBugs class}
59
60 To start, we create an instance of the FindBugs class.
61 The FindBugs class serves as the main engine that sets up and executes the
62 analysis. The FindBugs constructor takes
63 two parameters: a BugReporter and a Project.
64
65 The BugReporter receives all warnings generated by the analysis.
66 Several bug reporter implementations exist in order to support various
67 output formats. The XMLBugReporter class is perhaps the most useful;
68 it can save generated warnings in a format that can be reloaded without
69 loss of information.
70
71 A Project represents the software artifact to be analyzed.
72 The main information in the Project is a list of files and directories
73 containing classes to analyze. These classes are the ``application classes''.
74 The Project also contains a list of
75 files and directories containing classes that are {\em referenced}
76 by the application classes, but which should not themselves be analyzed.
77 These are the ``auxiliary classpath'' classes. Finally, the Project also contains
78 a list of source directories and archives: this list can be consulted to
79 find the source code for a range of instructions reported in a warning.
80
81 \subsection{Configuring the FindBugs object}
82
83 There are lots of ways for the user to configure the analysis parameters.
84 Some examples:
85 \begin{itemize}
86 \item Which detectors are enabled and disabled
87 \item Default reporting threshold (low, medium, high)
88 \item Which bug categories to report (correctness, multithreaded correctness,
89 malicious code vulnerability, etc.)
90 \item Rule-based filtering of warnings
91 \item The analysis effort level: greater effort means more bugs found and longer running time
92 \end{itemize}
93
94 These parameters are generally configured using accessor methods which
95 modify fields in the FindBugs object. The UserPreferences class serves
96 to organize many of these parameters into a single object.
97
98 \subsection{FindBugs.execute()}
99
100 Once the FindBugs object has been created and configured, the execute() method
101 starts the analysis.
102
103 \subsubsection{The Analysis Context}
104
105 First, an AnalysisContext object is created. This object is the repository for
106 all global information pertaining to the current analysis session.
107 Examples of information stored in the analysis context:
108 \begin{itemize}
109 \item The Subtypes object representing the class hierarchy
110 \item Databases of interprocedural analysis facts
111 \end{itemize}
112
113 In addition, a number of methods supporting access to the classpath and the
114 repository of application classes are available in the AnalysisContext class.
115 Although these tasks can be done using static methods in the BCEL
116 Repository class, eventually we would like to decouple FindBugs from BCEL
117 and its deeply flawed Repository implementation. Therefore, any classpath
118 or class hierarchy queries should be done via the AnalysisContext.
119
120 Another way to look at AnalysisContext is that it allows FindBugs to do
121 whole-program analysis. Most FindBugs analysis is local: but as deeper
122 analysis is implemented in FindBugs (e.g., interprocedural analysis,
123 whole-program call graph construction, etc.), this functionality should
124 be available from the AnalysisContext.
125
126 Originally, the reference to the AnalysisContext object was explicitly
127 passed to all bug detector objects using a setAnalysisContext() method.
128 More recently, the AnalysisContext is stored in an InheritableThreadLocal, and is accessible
129 from a static method, AnalysisContext.currentAnalysisContext().
130
131 \subsubsection{Analysis Features and Training Databases}
132
133 Once the AnalysisContext has been created, the ``analysis features'' are configured.
134 Analysis features are configuration properties stored in the AnalysisContext that
135 affect how the analysis is performed.
136
137 Around the same time as configuration of analysis features, training
138 databases are created and configured. A training database records analysis facts
139 pertaining to a particular method or field, and allows information collected
140 in one analysis run to be re-used in a later run. For example, methods that
141 unconditionally dereference method parameters can be recorded in one run,
142 and loaded in a later run. Any time a null value is passed for an unconditionally
143 dereferenced parameter, FindBugs can issue a warning about a possible null pointer
144 dereference. Training databases are thus a simple way to do limited interprocedural
145 analysis.
146
147 \subsubsection{Execution Plan}
148
149 The next main task of the execute() method is to create an execution plan.
150 FindBugs has recently acquired the ability to define ordering constraints
151 among bug detectors, including the ability to specify that a detector must
152 run in an earlier or later pass than another detector.
153 The execution plan explicitly organizes bug detectors into passes,
154 and orders the execution of detectors within passes.
155 Analysis passes can be used in much the same way as training databases:
156 information about methods and fields is collected in an earlier pass
157 and then used in a later pass. The advantage over training databases
158 is that both passes run in the context of a single
159 invocation of FindBugs.
160 It is also sometimes useful to specify that within a single analysis pass,
161 one detector runs before another. With a single pass, each analyzed class
162 is considered (in no particular order). The detectors in the pass are
163 applied to the class in order. Therefore, by specifying an ordering
164 constraint between two detectors, the earlier detector can collect information
165 on the class that can then be used by a later detector (or detectors).
166
167 \Note{
168 The implementation of ExecutionPlan and related classes is needlessly complicated,
169 and should probably be rewritten at some point.
170 }
171
172 \subsubsection{Scanning for Application Classes}
173
174 After it creates the execution plan, the next task of execute() is
175 to determine which classes will be analyzed. This is done by scanning
176 all class files, archive files, and directories specified to be part of
177 the analyzed application by the Project. As each class is scanned,
178 it is parsed into a BCEL JavaClass object and placed in the BCEL Repository
179 (via the AnalysisContext).
180 Thus, all application classes are in memory during the entire analysis.
181 (This is one reason why FindBugs requires a lot of memory.)
182
183 \Note{
184 The BCEL Repository is implemented using static fields and static methods.
185 This makes FindBugs non-reentrant, so it is not possible to create two
186 FindBugs objects and perform two separate analysis sessions at the same time.
187 Unfortunately, BCEL uses the static Repository extensively in its
188 internal implementation, meaning that the Repository is very tightly coupled
189 with the rest of of BCEL.
190 The only long-term solution to this problem is to drop BCEL.
191 (Which we should do anyway.)
192 }
193
194 One subtlety of the class scanning process is that we look for
195 Class-Path attributes in Jar manifests in order to discover referenced
196 libraries. When analyzing Java bytecode, it is often necessary to inspect
197 classes that are referenced by analyzed code in order to make the analysis
198 as accurate as possible. For example, when analyzing a method call,
199 you can't tell what exceptions can be thrown unless you can examine the
200 classfile of the class specified as the receiver of the method. Another reason
201 that referenced classes are necessary is that any analysis of the inheritance
202 hierarchy (including the analysis needed to perform type inference on
203 class files) requires access to referenced classes. Thus, FindBugs wants
204 the auxiliary classpath to be as complete as possible. The additional codebases
205 discovered from class scanning are themselves examined for additional classpath
206 references: in the end, we should have the transitive closure of codebases
207 referenced in this way. Hopefully, the user has also made an effort to
208 explicitly specify referenced classes.
209
210 \subsubsection{Performing the Analysis}
211
212 \begin{figure}
213 \begin{tabbing}
214 \ForEach\ analysis pass in the execution plan \Do \\
215 \Indent \= \ForEach\ application class \Do \\
216 \> \Indent \= \ForEach\ detector in the analysis pass \Do \\
217 \> \> \Indent \= request ClassContext for the class from the AnalysisContext\\
218 \> \> \> apply the detector to the ClassContext\\
219 \> \> \EndFor \\
220 \> \EndFor \\
221 \EndFor
222 \end{tabbing}
223 \caption{Performing the analysis using the execution plan.}\label{fig:performingTheAnalysis}
224 \end{figure}
225
226 Once the execution plan is in place and all of the application classes have been collected,
227 we're ready to perform the analysis. This is done according to the
228 pseudo-code shown in Figure~\ref{fig:performingTheAnalysis}.
229
230 Each bug detector is an object implementing the Detector interface,
231 which specifies a visitClassContext() method. This method takes
232 an instance of ClassContext created from the analyzed class. The ClassContext serves
233 as a cache for analysis results from a single class, because many
234 kinds of analysis (such as type inference) are used by many detectors.
235 By performing an analysis only once and then sharing it among multiple
236 detectors, we decrease CPU time at the expense of increasing memory use.
237 (ClassContext is described in more detail in Section~\ref{sec:bytecodeAnalysisPackage}.)
238
239 \subsubsection{Finishing Up}
240
241 After all analysis passes have executed, we call finish() and
242 reportQueuedErrors() on the BugReporter, and then clear the BCEL Repository
243 (since w