initialize with upstream version of 2.0.2
yesx
8 years ago
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 | 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!⏎ |
Binary diff not shown
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(<>){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="<b>FindBugs&trade; ${release.number}</b>" | |
1264 | Windowtitle="FindBugs ${release.number} API" | |
1265 | bottom="<font size='-1'><a href='http://findbugs.sourceforge.net/' target='_parent'>FindBugs</a>&trade; is licenced under the LGPL. Copyright &copy; 2006 University of Maryland.</font>" | |
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 |